Panduan Instalasi CloudPanel + Migrasi Wordpress + Deploy Laravel

Panduan Instalasi CloudPanel

VM Web & Database Server — Migrasi dari cPanel / Shared Hosting ke Proxmox Self-Hosted

OS Target
Ubuntu 22.04 LTS (Fresh Install)
Control Panel
CloudPanel (latest)
Web Server
Nginx
Database
MySQL 8.0
PHP
Multi-version: 7.4, 8.1, 8.2, 8.3
DNS
Cloudflare (Eksternal)
Mail Server
Tidak digunakan
SSL
Let's Encrypt via Cloudflare DNS Challenge

1. Persiapan Sebelum Instalasi

1.1 Spesifikasi VM yang Direkomendasikan

KomponenMinimumRekomendasi
CPU2 Core4 Core
RAM2 GB4–8 GB
Disk30 GB50–100 GB (SSD)
OSUbuntu 22.04 LTSUbuntu 22.04 LTS
Network1 NIC1 NIC + IP Statis
⚠️ Pastikan VM dibuat dengan IP Statis di Proxmox. CloudPanel membutuhkan IP yang tidak berubah untuk konfigurasi domain & SSL.

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:

  1. Login ke dash.cloudflare.com
  2. Klik nama profile (kanan atas) > My Profile > API Tokens
  3. Klik Create Token > pilih Edit zone DNS (template)
  4. Pada Permissions: Zone > DNS > Edit
  5. Pada Zone Resources: Include > Specific zone > pilih domain kamu
  6. Klik Continue to summary > Create Token
  7. Salin token yang muncul — hanya tampil sekali!
💡 Simpan API Token di tempat aman (password manager). Token ini akan dipakai di setiap penambahan domain di CloudPanel untuk proses SSL otomatis.

2. Membuat VM di Proxmox

2.1 Langkah Pembuatan VM

1
Download ISO Ubuntu 22.04
Di Proxmox, masuk ke local storage > ISO Images > Download from URL
https://releases.ubuntu.com/22.04/ubuntu-22.04.3-live-server-amd64.iso
2
Buat VM Baru
Klik Create VM di Proxmox, isi konfigurasi berikut:
ParameterNilai
VM IDContoh: 102
Namevm-web (atau sesuai konvensi)
OSUbuntu 22.04 ISO (yang sudah di-download)
SystemDefault (BIOS: SeaBIOS atau OVMF)
CPU4 Cores (Type: host)
Memory4096 MB (4 GB) atau lebih
Disk80 GB, storage: local-lvm, format: raw
NetworkVirtIO, Bridge: vmbr0
3
Instalasi Ubuntu Server
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
4
Set Static IP
Setelah Ubuntu terinstall, konfigurasi IP statis via cloud-init atau netplan.
💡 Jika VM dibuat dengan cloud-init di Proxmox, set IP statis melalui tab Cloud-Init di VM, bukan edit netplan langsung. Ini menghindari konflik konfigurasi.
Edit konfigurasi 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
⚠️ Proses instalasi memakan waktu 5–15 menit tergantung kecepatan internet. Jangan tutup terminal atau matikan VM saat proses berlangsung.

Setelah selesai, CloudPanel dapat diakses di:

https://<IP-VM>:8443
💡 CloudPanel menggunakan port 8443 dengan HTTPS. Browser akan menampilkan peringatan SSL karena self-signed cert — ini normal. Klik Advanced > Proceed.

3.3 Setup Awal CloudPanel

Saat pertama kali membuka CloudPanel:

  1. Buat admin user (username & password)
  2. Masukkan email untuk notifikasi
  3. Pilih timezone: Asia/Jakarta
  4. 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
💡 Setiap site di CloudPanel bisa menggunakan versi PHP yang berbeda. Ini sangat berguna untuk migrasi bertahap.

4. Konfigurasi Firewall

4.1 Port yang Perlu Dibuka

PortProtokolKegunaan
22TCPSSH — akses terminal (batasi ke IP tertentu jika bisa)
80TCPHTTP — web traffic & SSL challenge
443TCPHTTPS — web traffic terenkripsi
8443TCPCloudPanel Admin Panel
3306TCPMySQL — 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
🔒 Port 3306 (MySQL) sebaiknya TIDAK dibuka ke publik. Akses database dari luar sebaiknya melalui SSH tunnel atau CloudPanel database manager.

5. Menambahkan Domain & Website

5.1 Alur Penambahan Domain Baru

Tambah Site di CloudPanel → Set DNS A Record di Cloudflare → Aktifkan SSL Let's Encrypt → Deploy Website (WordPress / Laravel)

5.2 Menambah WordPress Site

  1. Di CloudPanel, klik Add Site
  2. Isi Domain Name: contoh.com
  3. Pilih Site Type: WordPress
  4. Pilih PHP Version: 8.1 (atau sesuai kebutuhan)
  5. Isi username & password database (atau biarkan auto-generate)
  6. 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

TypeNameContentProxy Status
A@<IP Publik Server>Proxied (orange)
Awww<IP Publik Server>Proxied (orange)
Asubdomain<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.

  1. Di CloudPanel, buka site yang baru dibuat
  2. Klik SSL/TLS > Actions > New Let's Encrypt Certificate
  3. Pilih DNS Provider: Cloudflare
  4. Masukkan Cloudflare API Token yang sudah dibuat
  5. Klik Create & Install Certificate
💡 Setelah SSL aktif, CloudPanel otomatis memperbarui sertifikat sebelum expired (90 hari). Tidak perlu renew manual.

6. Migrasi WordPress dari cPanel

6.1 Metode: All-in-One WP Migration

Di hosting lama (cPanel):

  1. Install plugin: All-in-One WP Migration
  2. Klik Export > Export to File
  3. Download file .wpress yang dihasilkan

Di server baru (CloudPanel):

  1. Install WordPress fresh di site yang sudah dibuat
  2. Install plugin: All-in-One WP Migration
  3. Klik Import > Import from File
  4. Upload file .wpress dari langkah sebelumnya
  5. Tunggu proses selesai, lalu update permalink
⚠️ File .wpress bisa sangat besar. Jika lebih dari 512MB, naikkan upload limit PHP di CloudPanel atau gunakan metode FTP langsung.

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

  1. Di CloudPanel, klik Add Site
  2. Pilih Site Type: Generic
  3. Isi Domain dan pilih PHP Version: 8.1 atau 8.2
  4. Klik Create
💡 Laravel harus menggunakan tipe site Generic, bukan WordPress. Document root perlu diarahkan ke folder /public.

7.2 Konfigurasi Document Root

  1. Di CloudPanel, buka site Laravel
  2. Klik Nginx Configuration
  3. Ubah root dari /htdocs/domain.com ke /htdocs/domain.com/public
  4. 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
💡 Sangat disarankan setup backup ke lokasi eksternal (S3 atau SFTP ke server lain) sebagai disaster recovery. Jangan hanya backup lokal.

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

MasalahSolusi
CloudPanel tidak bisa diakses port 8443Cek UFW: sudo ufw status. Cek apakah CloudPanel service running: sudo systemctl status clp
SSL gagal dibuatPastikan API Token Cloudflare memiliki permission DNS Edit. Cek log di CloudPanel > SSL
WordPress 500 Error setelah migrasiCek file permission, cek wp-config.php, cek error log Nginx di CloudPanel
Database tidak bisa diaksesPastikan nama DB, user, password di wp-config.php sesuai dengan yang ada di CloudPanel
Upload file besar gagal di WordPressNaikkan upload_max_filesize dan post_max_size di PHP Settings CloudPanel
Nginx 502 Bad Gateway di LaravelCek PHP-FPM service, pastikan document root mengarah ke folder /public
✅ Instalasi selesai! Server siap menerima migrasi domain dan website dari shared hosting.

Post a Comment

oke

Lebih baru Lebih lama