Panduan Instalasi CloudPanel
VM Web & Database Server — Migrasi dari cPanel / Shared Hosting ke Proxmox Self-Hosted
Ubuntu 22.04 LTS (Fresh Install)
CloudPanel (latest)
Nginx
MySQL 8.0
Multi-version: 7.4, 8.1, 8.2, 8.3
Cloudflare (Eksternal)
Tidak digunakan
Let's Encrypt via Cloudflare DNS Challenge
1. Persiapan Sebelum Instalasi
1.1 Spesifikasi VM yang Direkomendasikan
| Komponen | Minimum | Rekomendasi |
|---|---|---|
| CPU | 2 Core | 4 Core |
| RAM | 2 GB | 4–8 GB |
| Disk | 30 GB | 50–100 GB (SSD) |
| OS | Ubuntu 22.04 LTS | Ubuntu 22.04 LTS |
| Network | 1 NIC | 1 NIC + IP Statis |
1.2 Persiapan di Cloudflare
Sebelum instalasi, pastikan hal berikut sudah siap di akun Cloudflare:
- Semua domain sudah dipindahkan nameserver ke Cloudflare
- Buat API Token khusus untuk CloudPanel (bukan Global API Key)
- Catat Zone ID untuk setiap domain
Cara Membuat API Token Cloudflare:
- Login ke
dash.cloudflare.com - Klik nama profile (kanan atas) > My Profile > API Tokens
- Klik Create Token > pilih Edit zone DNS (template)
- Pada Permissions:
Zone > DNS > Edit - Pada Zone Resources:
Include > Specific zone> pilih domain kamu - Klik Continue to summary > Create Token
- Salin token yang muncul — hanya tampil sekali!
2. Membuat VM di Proxmox
2.1 Langkah Pembuatan VM
Di Proxmox, masuk ke local storage > ISO Images > Download from URL
https://releases.ubuntu.com/22.04/ubuntu-22.04.3-live-server-amd64.isoKlik Create VM di Proxmox, isi konfigurasi berikut:
| Parameter | Nilai |
|---|---|
| VM ID | Contoh: 102 |
| Name | vm-web (atau sesuai konvensi) |
| OS | Ubuntu 22.04 ISO (yang sudah di-download) |
| System | Default (BIOS: SeaBIOS atau OVMF) |
| CPU | 4 Cores (Type: host) |
| Memory | 4096 MB (4 GB) atau lebih |
| Disk | 80 GB, storage: local-lvm, format: raw |
| Network | VirtIO, Bridge: vmbr0 |
Boot VM dari ISO, ikuti wizard instalasi Ubuntu Server. Perhatikan:
- Pilih Ubuntu Server (minimized) untuk hemat resource
- Pada network, pilih DHCP dulu — nanti kita set static IP
- Aktifkan OpenSSH Server saat ditanya
- Tidak perlu install snap packages tambahan
Setelah Ubuntu terinstall, konfigurasi IP statis via cloud-init atau netplan.
sudo nano /etc/netplan/00-installer-config.yaml
network:
version: 2
ethernets:
ens18: # sesuaikan nama interface
dhcp4: no
addresses:
- 192.168.1.100/24 # IP statis VM kamu
routes:
- to: default
via: 192.168.1.1 # gateway router
nameservers:
addresses: [1.1.1.1, 8.8.8.8]
sudo netplan apply
3. Instalasi CloudPanel
3.1 Update Sistem
Sebelum install CloudPanel, pastikan sistem up-to-date:
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget
3.2 Instalasi CloudPanel
CloudPanel menyediakan skrip instalasi otomatis. Jalankan sebagai root:
curl -sSL https://installer.cloudpanel.io/ce/v2/install.sh | \
sudo CLOUD=other bash
Setelah selesai, CloudPanel dapat diakses di:
https://<IP-VM>:8443
3.3 Setup Awal CloudPanel
Saat pertama kali membuka CloudPanel:
- Buat admin user (username & password)
- Masukkan email untuk notifikasi
- Pilih timezone:
Asia/Jakarta - Klik Create User
3.4 Install PHP Multi-Version
Masuk ke CloudPanel Admin > PHP Settings, lalu install:
- PHP 7.4 — untuk WordPress lama atau app legacy
- PHP 8.1 — stabil, cocok untuk WordPress & Laravel
- PHP 8.2 — untuk project baru
- PHP 8.3 — opsional, terbaru
4. Konfigurasi Firewall
4.1 Port yang Perlu Dibuka
| Port | Protokol | Kegunaan |
|---|---|---|
| 22 | TCP | SSH — akses terminal (batasi ke IP tertentu jika bisa) |
| 80 | TCP | HTTP — web traffic & SSL challenge |
| 443 | TCP | HTTPS — web traffic terenkripsi |
| 8443 | TCP | CloudPanel Admin Panel |
| 3306 | TCP | MySQL — opsional, hanya buka jika perlu akses remote |
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 8443/tcp
sudo ufw enable
sudo ufw status
5. Menambahkan Domain & Website
5.1 Alur Penambahan Domain Baru
5.2 Menambah WordPress Site
- Di CloudPanel, klik Add Site
- Isi Domain Name: contoh.com
- Pilih Site Type: WordPress
- Pilih PHP Version: 8.1 (atau sesuai kebutuhan)
- Isi username & password database (atau biarkan auto-generate)
- Klik Create
CloudPanel akan otomatis membuat virtual host Nginx, database MySQL baru, direktori web di /home/<user>/htdocs/<domain>, dan user sistem Linux tersendiri per site.
5.3 Konfigurasi DNS di Cloudflare
| Type | Name | Content | Proxy Status |
|---|---|---|---|
| A | @ | <IP Publik Server> | Proxied (orange) |
| A | www | <IP Publik Server> | Proxied (orange) |
| A | subdomain | <IP Publik Server> | Proxied (orange) |
5.4 Aktifkan SSL (Let's Encrypt)
CloudPanel menggunakan Cloudflare DNS Challenge untuk SSL. Ini bekerja bahkan jika port 80 tidak aktif dari internet.
- Di CloudPanel, buka site yang baru dibuat
- Klik SSL/TLS > Actions > New Let's Encrypt Certificate
- Pilih DNS Provider: Cloudflare
- Masukkan Cloudflare API Token yang sudah dibuat
- Klik Create & Install Certificate
6. Migrasi WordPress dari cPanel
6.1 Metode: All-in-One WP Migration
Di hosting lama (cPanel):
- Install plugin: All-in-One WP Migration
- Klik Export > Export to File
- Download file
.wpressyang dihasilkan
Di server baru (CloudPanel):
- Install WordPress fresh di site yang sudah dibuat
- Install plugin: All-in-One WP Migration
- Klik Import > Import from File
- Upload file
.wpressdari langkah sebelumnya - Tunggu proses selesai, lalu update permalink
6.2 Migrasi Manual (Alternatif)
Langkah 1 — Export database dari cPanel:
mysqldump -u <user> -p <database_name> > backup.sql
Langkah 2 — Transfer file WordPress:
# Zip file WordPress di hosting lama:
zip -r wordpress-backup.zip /public_html/
# Download via SCP ke server baru:
scp user@old-host:/home/user/wordpress-backup.zip \
/home/cloudpanel-user/htdocs/domain.com/
Langkah 3 — Import database di CloudPanel:
mysql -u <db_user> -p <db_name> < backup.sql
Langkah 4 — Update wp-config.php:
define('DB_NAME', 'nama_database_baru');
define('DB_USER', 'user_database_baru');
define('DB_PASSWORD', 'password_baru');
define('DB_HOST', 'localhost');
Langkah 5 — Update URL di database (WP-CLI):
# Install WP-CLI (jika belum ada):
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar && sudo mv wp-cli.phar /usr/local/bin/wp
# Update URL site:
cd /home/<user>/htdocs/<domain>
wp search-replace 'https://old-domain.com' 'https://new-domain.com' --all-tables
7. Deploy Laravel di CloudPanel
7.1 Buat Site untuk Laravel
- Di CloudPanel, klik Add Site
- Pilih Site Type:
Generic - Isi Domain dan pilih PHP Version: 8.1 atau 8.2
- Klik Create
/public.7.2 Konfigurasi Document Root
- Di CloudPanel, buka site Laravel
- Klik Nginx Configuration
- Ubah root dari
/htdocs/domain.comke/htdocs/domain.com/public - Klik Save
7.3 Deploy Laravel via Git
# Masuk ke direktori site
cd /home/<user>/htdocs/domain.com
# Clone repository
git clone https://github.com/username/project.git .
# Install dependencies
composer install --no-dev --optimize-autoloader
# Setup environment
cp .env.example .env
php artisan key:generate
# Sesuaikan .env dengan database dari CloudPanel
nano .env
# Jalankan migrasi
php artisan migrate --force
# Set permissions
chmod -R 755 storage bootstrap/cache
chown -R <user>:www-data storage bootstrap/cache
8. Tools Pendukung
8.1 WP-CLI
# Install WP-CLI
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp
# Contoh penggunaan:
wp core update # update WordPress
wp plugin update --all # update semua plugin
wp db optimize # optimasi database
wp cache flush # flush cache
8.2 Composer
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
composer --version
8.3 Backup Otomatis
CloudPanel memiliki fitur backup bawaan. Masuk ke Admin Panel > Backups:
- Konfigurasi jadwal backup (harian/mingguan)
- Pilih destinasi: local, S3, SFTP, atau Dropbox
- Backup mencakup files dan database sekaligus
9. Checklist Setelah Instalasi
9.1 Checklist Instalasi
- VM dibuat dengan IP statis di Proxmox
- Ubuntu 22.04 LTS terinstall dan diupdate
- CloudPanel berhasil diinstall dan diakses via port 8443
- Admin user CloudPanel sudah dibuat
- PHP multi-version sudah diinstall (7.4, 8.1, 8.2)
- UFW firewall aktif dan port yang diperlukan sudah dibuka
- Cloudflare API Token sudah disiapkan
- WP-CLI terinstall
- Composer terinstall
9.2 Checklist per Domain
- Site sudah dibuat di CloudPanel
- DNS A Record sudah diset di Cloudflare
- DNS sudah propagasi (cek via whatsmydns.net)
- SSL Let's Encrypt sudah aktif (tidak ada warning browser)
- WordPress / Laravel bisa diakses via domain
- Login admin WordPress berhasil
- Email (jika ada) diarahkan ke Gmail/Google Workspace
- Backup pertama sudah dijalankan
10. Troubleshooting Umum
| Masalah | Solusi |
|---|---|
| CloudPanel tidak bisa diakses port 8443 | Cek UFW: sudo ufw status. Cek apakah CloudPanel service running: sudo systemctl status clp |
| SSL gagal dibuat | Pastikan API Token Cloudflare memiliki permission DNS Edit. Cek log di CloudPanel > SSL |
| WordPress 500 Error setelah migrasi | Cek file permission, cek wp-config.php, cek error log Nginx di CloudPanel |
| Database tidak bisa diakses | Pastikan nama DB, user, password di wp-config.php sesuai dengan yang ada di CloudPanel |
| Upload file besar gagal di WordPress | Naikkan upload_max_filesize dan post_max_size di PHP Settings CloudPanel |
| Nginx 502 Bad Gateway di Laravel | Cek PHP-FPM service, pastikan document root mengarah ke folder /public |

Posting Komentar
oke