Situs
WordPress, aplikasi PHP, atau situs statis di server Anda sendiri, dengan HTTPS otomatis, akses berkas lewat SFTP, dan cadangan harian. Situs dari cPanel bisa dipindahkan beserta databasenya, dan situs bisa dipindah ke server lain tanpa henti lama.
Untuk siapa
Situs dibuat untuk pemilik aplikasi yang dulu memakai cPanel hanya untuk menjalankan situs atau aplikasinya sendiri, bukan untuk perusahaan hosting yang menjual akun ke banyak pelanggan. Fokusnya fungsi yang benar-benar dipakai: pasang situs, domain dan HTTPS, unggah berkas, database, dan cadangan.
Situs menyambung dengan fitur Saka lain: database bisa di server yang sama atau di klaster database multi-lokasi, dan situs bisa diletakkan di belakang load balancer.
Jenis situs
| Jenis | Isi | Database |
|---|---|---|
| WordPress | Terpasang otomatis dan siap dipakai (bahasa Indonesia atau English). Sandi admin dibuat acak dan ditampilkan di panel. | Ya |
| PHP | Apache dengan PHP 8.2, 8.3, atau 8.4, dan .htaccess berjalan. Untuk Laravel, CodeIgniter, atau aplikasi PHP lain; unggah berkas lewat SFTP. | Ya |
| Statis (HTML) | Halaman HTML/CSS/JS dilayani langsung oleh server web. Paling ringan. | Tidak |
| Pindahkan dari cPanel | Masuk ke cPanel lama (seperti Transfer Tool di WHM), atau pakai berkas cadangan cPanel atau arsip situs. Berkas dan database dipindahkan, WordPress disesuaikan otomatis. Lihat Pindah dari cPanel. | Ya |
Membuat situs
Syarat server: sudah tersambung ke Saka, port 80 dan 443 bebas (tidak dipakai nginx atau apache lain), dan RAM minimal 1 GB.
- Buka menu Situs di panel, lalu tekan + Buat situs.
- Jenis. Pilih WordPress, PHP, Statis (HTML), atau Pindahkan dari cPanel.
- Server. Pilih server tujuan dari daftar server yang tersambung.
- Domain. Tulis domain, misalnya
tokokue.idataublog.tokokue.id. Untuk domain utama, centang Sertakan juga www bila perlu. Satu domain hanya boleh dipakai satu situs di akun Anda. - PHP & database (bukan untuk situs statis). Pilih versi PHP (8.3 disarankan), bahasa WordPress, dan tempat database: Database di server ini atau Klaster database.
- Nama situs, misalnya "Toko Kue Ibu". Untuk WordPress, nama ini juga menjadi judul situs (bisa diubah di WordPress).
- Tekan Buat situs (atau Pindahkan situs untuk pindahan cPanel).
Situs biasanya siap dalam 2-5 menit. Pertama kali di satu server sedikit lebih lama karena PHP disiapkan dulu; pindahan cPanel tergantung ukuran cadangan. Anda juga dikabari lewat Telegram. Bila gagal, halaman detail menampilkan penyebabnya; hapus situs itu lalu coba lagi.
Domain, DNS, dan HTTPS
Setelah situs dibuat, arahkan domain ke server di pengelola DNS domain Anda (tempat membeli domain, atau Cloudflare). Kartu Domain & HTTPS di halaman detail menunjukkan catatan yang perlu dibuat:
tokokue.id. A 203.0.113.10
www.tokokue.id. A 203.0.113.10
; opsional, bila server punya IPv6:
tokokue.id. AAAA 2001:db8::10- A record ke IPv4 server wajib. AAAA record ke IPv6 server opsional, untuk pengunjung IPv6.
- Kolom DNS per domain menunjukkan mengarah, ke IP lain, atau belum ada. Kolom HTTPS menunjukkan aktif atau menunggu DNS.
- HTTPS aktif sendiri dalam beberapa menit setelah DNS mengarah. Sertifikat Let's Encrypt dibuat per domain dan diperbarui otomatis.
- Domain bisa diubah atau ditambah lewat Ubah / tambah domain (satu per baris, yang pertama menjadi alamat utama). Pada WordPress, bila alamat utama diganti, alamat di isi WordPress ikut diganti otomatis.
Matikan dulu awan oranye (pilih "DNS only", awan abu-abu) sampai HTTPS di Saka aktif.
Berkas lewat SFTP
Setiap situs punya akun SFTP sendiri. Buka kartu Akses di halaman detail dan tekan Tampilkan sandi untuk melihat host, port, pengguna, dan sandinya.
- Pakai FileZilla, WinSCP, atau Cyberduck dengan protokol SFTP.
- Folder situs adalah
/www. Berkas yang diunggah ke sana langsung dilayani. - Akun ini terkurung: hanya bisa melihat folder situs itu, tidak bisa membuka shell, dan tidak bisa melihat berkas server lain.
- Aplikasi PHP berjalan sebagai pengguna situs itu sendiri, jadi berkas yang dibuat WordPress atau aplikasi Anda tetap bisa diubah lewat SFTP.
Database
| Pilihan | Isi | Kapan dipakai |
|---|---|---|
| Database di server ini (disarankan) | MariaDB 11.8 di server yang sama, satu database dan pengguna khusus per situs, hanya bisa diakses dari server itu. | Situs biasa, satu server. |
| Klaster database | Saka membuat database dan pengguna khusus situs ini di klaster MariaDB Anda, dan memasang proxy Saka di server situs. Koneksi lewat TLS; bila satu server database mati, proxy pindah ke node yang sehat. | Situs yang harus tetap hidup walau satu server database mati. |
Klaster yang bisa dipilih adalah klaster MariaDB yang sudah siap dan berjalan di server lain (server situs tidak boleh menjadi anggota klaster itu). Pada WordPress, sambungan TLS ke klaster sudah diatur otomatis. Detail sambungan database (host, nama, pengguna, sandi) ada di kartu Akses. Untuk melihat dan mengubah isi database, pakai phpMyAdmin.
phpMyAdmin
Situs WordPress dan PHP punya phpMyAdmin sendiri. Di kartu Akses, tekan Buka phpMyAdmin; phpMyAdmin terbuka di tab baru dan langsung masuk.
- Tanpa port terbuka. phpMyAdmin dibuka lewat terowongan dasbor Saka (sama seperti dasbor OpenClaw): agent menyambung keluar, dan tidak ada port yang dibuka di server Anda.
- Masuk otomatis sebagai pengguna database situs itu, dan hanya melihat database situs itu. Anda tidak perlu mengetik sandi database.
- Mati sendiri setelah 3 jam. Tekan tombolnya lagi bila masih perlu.
- Pertama kali dibuka di satu server bisa butuh ±30 detik karena image phpMyAdmin diunduh dulu.
- Berlaku untuk database di server ini maupun di klaster database (sambungan TLS). Situs statis tidak punya database, jadi tidak punya phpMyAdmin.
Lewat API: POST /api/v1/situs/{id}/phpmyadmin menjawab {"url"}, tautan masuk sekali pakai yang berlaku 60 detik. phpMyAdmin tidak tersedia lewat MCP.
Cadangan dan pulihkan
- Harian otomatis. Berkas dan database dicadangkan setiap hari ke satu berkas
.tar.gzdi server Anda. 7 cadangan harian terakhir disimpan. Cadangan harian pertama dibuat dalam 24 jam. - Manual. Tekan Cadangkan sekarang di kartu Cadangan kapan saja (5 terakhir disimpan).
- Pulihkan. Tekan Pulihkan di baris cadangan yang dipilih. Berkas dan database situs diganti dengan isi cadangan itu. Sebelumnya, keadaan sekarang selalu dicadangkan dulu (jenis "sebelum pemulihan"), jadi pemulihan masih bisa dibatalkan dengan memulihkan cadangan itu.
Cadangan disimpan di server yang sama dengan situsnya. Untuk perlindungan dari server yang rusak total, simpan juga salinan di tempat lain (lihat Segera).
Pindah dari cPanel
Pilih jenis Pindahkan dari cPanel saat membuat situs. Ada dua cara pindah.
Cara 1: Masuk ke cPanel lama (disarankan)
Seperti Transfer Tool di WHM, tetapi cukup dengan login akun cPanel. Saka membuat backup penuh di cPanel lama, menunggu sampai selesai, mengunduhnya ke server baru, menghapus berkas backup itu dari cPanel lama, lalu memasangnya.
- Alamat cPanel lama: domain atau IP server lama, misalnya
tokolama.com. Port 2083 dipakai otomatis (boleh ditulis dengan:portsendiri). - Username cPanel dan Sandi cPanel (sandi akun cPanel, bukan sandi WHM atau root).
- Bila akun memakai verifikasi dua langkah (2FA), centang pilihan API token dan isi token dari cPanel (Security, lalu Manage API Tokens). Token bisa dihapus lagi setelah pindah.
- Centang Lewati pemeriksaan sertifikat HTTPS cPanel hanya bila sertifikat cPanel lama self-signed.
- Sandi tidak disimpan. Sandi atau token hanya diteruskan ke server Anda untuk sekali proses ini dan tidak ditulis ke disk.
- Server baru harus bisa menjangkau port 2083 server lama. Bila tidak, pastikan firewall server lama mengizinkannya.
- Lamanya tergantung ukuran akun: cPanel perlu waktu membuat backup, lalu berkasnya diunduh.
Cara 2: Pakai berkas backup
- Di cPanel lama, buka Backup (atau Backup Wizard), pilih Download a Full Account Backup, lalu tunggu sampai berkas
backup-….tar.gzselesai dibuat. - Isi salah satu:
- Tautan unduhan berkas cadangan (harus bisa dibuka dari internet), atau
- Path berkas di server tujuan, setelah Anda mengunggahnya ke
/root,/home, atau/tmp, misalnya/root/backup-….tar.gz.
Arsip situs biasa juga bisa: .zip atau .tar.gz berisi folder situs, dengan atau tanpa berkas .sql.
Yang dikerjakan Saka
- Arsip dibuka dengan aman: symlink dan path yang keluar dari folder diabaikan, dan isinya dibatasi 20 GB. Ruang disk diperiksa dulu.
- Isi
public_htmlmenjadi berkas situs (termasuk.htaccess). - Untuk WordPress, database yang diimpor dipilih dari
DB_NAMEdiwp-config.php. Pengaturan database diwp-config.phpdisesuaikan ke database baru, dan alamat lama di database diganti ke domain baru (https://domain utama). - Database lain di cadangan tidak diimpor, tetapi dilaporkan namanya.
- Bila bukan WordPress, database utama tetap diimpor, dan Anda diberi tahu host, nama database, dan pengguna baru untuk disesuaikan sendiri di pengaturan aplikasi.
Semua temuan ini ditampilkan di kotak Catatan pemindahan di halaman detail situs. Untuk WordPress pindahan, masuk dengan akun admin WordPress lama Anda.
Pindah ke server lain
Untuk ganti VPS (misalnya ke server yang lebih besar atau di lokasi lain) tanpa repot. Isi situs disalin langsung ke server baru, dan situs lama tetap melayani pengunjung sampai Anda siap. Syaratnya, server tujuan sudah tersambung ke akun Saka yang sama dan port 80/443-nya bebas.
- Salin. Di halaman detail situs, buka kartu Pindahkan ke server lain. Pilih Server tujuan dan PHP di server baru (versi PHP boleh diganti, misalnya naik ke 8.4). Untuk WordPress, centang Perbarui WordPress, plugin, dan tema saat dipindah bila ingin. Tekan Salin ke server baru. Situs lama tetap berjalan; Anda dikabari lewat Telegram saat salinan siap. Salin ulang boleh ditekan kapan saja untuk menyegarkan salinan.
- Pindahkan sekarang. Situs lama menampilkan halaman pemeliharaan (HTTP 503) sebentar, perubahan terakhir disalin, lalu situs aktif di server baru. Bila Anda memilih pembaruan WordPress, inti WordPress, plugin, tema, dan bahasa diperbarui dengan cadangan dulu; bila situs rusak setelahnya, situs kembali otomatis ke keadaan sebelum pembaruan. Bila langkah ini gagal, situs lama aktif lagi.
- Ubah DNS. Ubah A record domain ke IP server baru di pengelola DNS domain Anda. Kolom DNS di kartu Domain & HTTPS berubah menjadi mengarah setelah itu.
- Selesaikan. Setelah DNS mengarah, tekan Selesaikan (hapus di server lama). Situs di server lama dihapus; cadangan terakhirnya disimpan di
/rootserver lama.
Batalkan bisa dipakai sebelum diselesaikan. Sebelum Pindahkan sekarang, salinan di server baru dihapus dan situs lama tidak berubah. Sesudahnya, tombol Batalkan, kembali ke server lama mengaktifkan situs lagi di server lama dan menghapus salinan di server baru; perubahan di server baru sejak dipindah akan hilang, dan A record yang sudah diubah perlu dikembalikan ke IP server lama.
Cara kerjanya
- Langsung dari server ke server lewat HTTPS, tidak lewat Saka. Server lama membuka pengirim sementara dengan sertifikat sekali pakai; Saka meneruskan sidik jari sertifikat itu ke server baru, jadi server baru hanya mau menerima dari pengirim yang benar.
- Port pengirim dipilih acak, hanya dibuka untuk IP server tujuan, memakai token acak, dan mati sendiri paling lambat setelah 1 jam.
- Nama database, pengguna, sandi, dan akun SFTP tetap sama, jadi pengaturan aplikasi tidak perlu diubah.
- Situs dengan klaster database: database tidak disalin, karena server baru disambungkan ke klaster yang sama (proxy Saka dipasang di server baru).
Di belakang load balancer
Bila ada load balancer mode proxy yang sudah siap dan meneruskan domain situs ke server ini, situs otomatis dilayani lewat penyeimbang: pengunjung masuk lewat penyeimbang, dan HTTPS dipegang penyeimbang. Kolom HTTPS lalu menunjukkan di load balancer. Pengaturan ini diterapkan ulang otomatis saat load balancer dibuat, dihapus, atau IP penyeimbang berubah.
Versi PHP
Pilih PHP 8.2, 8.3, atau 8.4. Di kartu PHP, pilih versi lalu tekan Ganti versi. Situs dimulai ulang dengan versi baru dalam beberapa detik; versi yang belum pernah dipakai di server itu disiapkan dulu (±1-2 menit).
Pengaturan PHP
Di kartu yang sama ada Pengaturan PHP, setara MultiPHP INI Editor di cPanel tanpa menyentuh berkas:
- Batas unggah (
upload_max_filesize, 2 sampai 2048 MB;post_max_sizeikut disesuaikan). Bawaan 64 MB. - Batas memori (
memory_limit, 64 sampai 2048 MB, paling banyak tiga perempat RAM server). Batas memori kontainer situs ikut dinaikkan. Bawaan 256 MB. - Waktu eksekusi (
max_execution_timedanmax_input_time, 10 sampai 3600 detik). Bawaan 120 detik. - max_input_vars (1000 sampai 100000), sering dibutuhkan menu WordPress yang panjang. Bawaan 3000.
- Zona waktu (
date.timezone, mis. Asia/Jakarta). Bawaan UTC. - Tampilkan error PHP (
display_errors): hanya untuk mencari masalah, matikan lagi setelahnya.
Tekan Simpan pengaturan; situs dimulai ulang beberapa detik. Lewat API: PATCH /api/v1/situs/{id} dengan php_ini; lewat MCP: alat situs_atur_php.
Hapus situs
Di bagian Zona berbahaya, tekan Hapus situs lalu ketik nama situs untuk menegaskan. Berkas, database, akun SFTP, dan semua cadangan situs itu di server dihapus. Domain dan server tidak disentuh.
Centang Simpan cadangan terakhir dulu di /root server (disarankan) agar satu cadangan terakhir disalin ke /root sebelum situs dihapus. Bila penyalinan gagal, situs tidak dihapus.
Saat Lepas server, semua situs di server itu ikut dibersihkan; dengan pilihan menyimpan cadangan, cadangan tiap situs disalin ke /root.
Yang sengaja tidak dibuat
- Hosting email. Pakai penyedia email pilihan Anda. Bantuan pengaturan DNS email menyusul.
- Akun reseller atau WHM. Situs untuk pemilik aplikasi, bukan untuk menjual hosting.
- Menu teknis satu per satu seperti zone editor atau MIME types.
Keamanan
- Sandi hanya di server Anda. Sandi database, SFTP, dan admin WordPress disimpan di server (berkas hanya bisa dibaca root) dan dibaca panel saat Anda menekan Tampilkan sandi. Sandi ini tidak pernah diberikan ke agent AI lewat MCP. Sandi atau API token cPanel lama hanya diteruskan sekali ke server Anda dan tidak disimpan.
- Pengaturan SSH root tidak berubah. Saka menambahkan pengaturan SFTP khusus untuk akun situs, lalu membandingkan pengaturan SSH untuk root sebelum dan sesudahnya. Bila ada yang berubah, perubahan dibatalkan. Root tetap tanpa login sandi bila sebelumnya begitu.
- Terpisah per situs. Setiap situs PHP atau WordPress berjalan di kontainer sendiri yang hanya mendengarkan di
127.0.0.1; pengunjung masuk lewat satu server web dengan HTTPS di port 80/443. - Tercatat. Membuat, mengubah, mencadangkan, memulihkan, dan menghapus situs tercatat di riwayat tugas server.
Lewat agent AI (MCP) dan API
Alat MCP
| Alat | Fungsi |
|---|---|
situs_daftar | Daftar situs di semua server, dengan domain dan keadaannya. |
situs_buat | Membuat situs WordPress, PHP, atau statis, dengan database lokal atau klaster, atau pindah dari cPanel (sumber berisi berkas cadangan, atau cpanel untuk masuk ke cPanel lama). Agent wajib mengonfirmasi rencananya kepada Anda dulu. |
situs_status | Keadaan situs: HTTPS dan arah DNS per domain, ukuran, daftar cadangan, akun SFTP. Tanpa sandi. |
situs_cadangkan | Membuat cadangan sekarang. |
situs_atur_php | Mengubah pengaturan PHP: batas unggah, memori, waktu eksekusi, max_input_vars, zona waktu, tampilkan error. |
situs_pindah_salin | Langkah pertama pindah ke server lain: menyalin situs ke server tujuan (boleh dengan PHP lain, opsional pembaruan WordPress). Situs lama tetap berjalan. |
situs_ubah_siapkan | Langkah 1 dari 2 untuk pulihkan, hapus, pindah_sekarang, pindah_selesai, atau pindah_batal: pratinjau dan token konfirmasi (10 menit). |
situs_ubah | Langkah 2 dari 2: menjalankan aksi itu dengan token, hanya setelah Anda menyetujui pratinjau. |
Tidak ada alat MCP untuk membaca sandi situs. Lihat Sambungkan AI (MCP).
Endpoint API
| Metode | Jalur | Keterangan |
|---|---|---|
GET | /situs | Daftar situs (bisa disaring dengan ?server_id=). |
POST | /situs | Buat situs. Isian {"nama", "server_id", "jenis", "domain", "php", "bahasa", "db", "klaster_id", "sumber", "cpanel"}. |
GET | /situs/{id} | Detail dan status (DNS, HTTPS, cadangan, SFTP tanpa sandi, pindah bila sedang dipindah). |
PATCH | /situs/{id} | Ubah nama, domain, versi PHP, atau pengaturan PHP. Isian {"nama", "domain", "php", "php_ini"}. |
DELETE | /situs/{id} | Hapus. Isian {"konfirmasi": "<nama situs>", "simpan_cadangan": true}. |
POST | /situs/{id}/rahasia | Baca sandi database, SFTP, dan admin WordPress langsung dari server. |
POST | /situs/{id}/cadangan | Cadangkan sekarang. |
POST | /situs/{id}/pulihkan | Pulihkan. Isian {"berkas": "<nama cadangan>", "konfirmasi": "<nama situs>"}. |
POST | /situs/{id}/phpmyadmin | Nyalakan phpMyAdmin situs. Jawaban {"url"}, tautan masuk sekali pakai (60 detik). |
POST | /situs/{id}/pindah | Salin ke server lain. Isian {"server_id", "php", "perbarui_wp"}. |
POST | /situs/{id}/pindah/sekarang | Pindahkan sekarang. Isian {"konfirmasi": "<nama situs>"}. |
POST | /situs/{id}/pindah/selesai | Selesaikan: hapus situs di server lama (cadangan terakhir di /root). |
POST | /situs/{id}/pindah/batal | Batalkan pemindahan; situs tetap atau kembali di server lama. |
curl -s -X POST https://app.saka.work/api/v1/situs \
-H "Authorization: Bearer $SAKA_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"nama": "Toko Kue Ibu",
"server_id": "srv_aaaaaaaaaaaaaaaa",
"jenis": "wordpress",
"domain": ["tokokue.id", "www.tokokue.id"],
"php": "8.3",
"bahasa": "id",
"db": "lokal"
}'jenis: wordpress, php, atau statis (pindahan cPanel memakai php dengan sumber, atau dengan cpanel: {"host", "pengguna", "sandi"}, atau "token" sebagai ganti sandi, dan "abaikan_tls": true untuk sertifikat self-signed). php: 8.2, 8.3 (bawaan), atau 8.4. db: lokal (bawaan) atau klaster dengan klaster_id. Jawaban 202 berisi situs dengan keadaan: "dibuat"; pantau dengan GET /situs/{id} sampai siap atau gagal. Rincian umum ada di API REST.
Segera
Situs di dua lokasi yang tetap hidup walau satu lokasi mati (salinan berkas antar server, load balancer, dan klaster database), cadangan ke penyimpanan S3 milik Anda dan unduh cadangan dari panel, pembaruan WordPress dan plugin kapan saja dengan kembali otomatis bila rusak (saat ini sudah tersedia ketika pindah ke server lain), serta bantuan DNS email (MX, SPF, DKIM, DMARC) untuk penyedia email pilihan Anda.
Butuh hal lain? Usulkan lewat menu Minta fitur di panel (lihat Minta fitur & bantuan migrasi).