SSD Nodes Learn 🎉 VPS mulai $5.50/bln
Panduan Matt ConnorOleh Matt Connor · Diperbarui 2026-08-13

Cara Instal Cloudron di VPS Ubuntu

Panduan instal Cloudron di VPS Ubuntu baru, termasuk error OS, wildcard DNS, skrip penyiapan, kebutuhan RAM 2 GB, email, sertifikat TLS, dan backup.

Instal Cloudron pada VPS: versi singkat

Untuk menginstal Cloudron pada VPS, Anda memerlukan server Ubuntu baru, RAM minimal 2 GB, dan domain yang catatan DNS-nya dapat Anda ubah. Proses instalasinya sendiri terdiri dari tiga perintah dan satu kali reboot. Hampir semua masalah terjadi sebelum tahap tersebut (image dasar yang salah, jenis virtualisasi yang salah) atau setelahnya (DNS, email, backup).

wget https://cloudron.io/cloudron-setup
chmod +x cloudron-setup
sudo ./cloudron-setup

Cloudron menginstal, memperbarui, mencadangkan, dan menerbitkan sertifikat TLS (transport layer security) untuk aplikasi self-hosted. Setiap aplikasi berjalan dalam Docker, nginx berada di depan semuanya, dan setiap aplikasi mendapatkan subdomain sendiri dari domain Anda. Detail terakhir inilah yang membuat konfigurasi DNS harus dilakukan terlebih dahulu.

Mengapa Cloudron ketat terhadap OS dasar

Skrip penyiapan memeriksa server sebelum menginstal apa pun. Jika pemeriksaan gagal, Anda harus memesan server baru. Baca persyaratannya sebelum memilih image.

  • Hanya Ubuntu, dan hanya tiga rilis. Selain itu, skrip berhenti dengan Cloudron requires Ubuntu 20.04, 22.04, 24.04. Debian, Rocky, dan Alpine tidak didukung. Ubuntu 24.04 memerlukan Cloudron 8 atau yang lebih baru, dan skrip memeriksanya untuk Anda.
  • Hanya Intel atau AMD 64-bit: Error: Cloudron only supports amd64/x86_64. VPS ARM tidak dapat menjalankannya.
  • Hanya virtualisasi perangkat keras penuh. Pada VPS berbasis container, skrip berhenti dengan Error: Cloudron does not support lxc, only runs on bare metal or with full hardware virtualization karena mendeteksi container menggunakan systemd-detect-virt --container. KVM didukung. OpenVZ dan LXC tidak didukung.
  • Filesystem root harus berupa ext4 atau xfs. Jika menggunakan filesystem lain, Anda akan mendapatkan Error: Cloudron requires '/' to be ext4 or xfs. Inilah penyebab image btrfs dan zfs gagal.
  • RAM minimal 941 MB dan ruang 20 GB pada /, yang diukur menggunakan free -m dan ukuran filesystem root.
  • Server harus benar-benar baru. Jika nginx, docker, atau node sudah terinstal, skrip menolak melanjutkan dengan Error: Some packages like nginx/docker/nodejs are already installed.

Pemeriksaan terakhir sering diperdebatkan. Berikut alasannya. Cloudron menginstal versi yang ditetapkan untuk Docker, nginx, Node.js, dan MySQL, menulis konfigurasi nginx untuk setiap aplikasi yang di-host, serta mengelola aturan firewall iptables sendiri. Docker yang Anda instal kemarin dapat memiliki versi yang salah, dan file situs nginx yang sudah ada akan diganti. Cloudron mengelola seluruh mesin, jadi gunakan VPS khusus untuk Cloudron.

Ada satu pemeriksaan lain yang mudah terlewat. Pada CPU lama tanpa AVX (advanced vector extensions), skrip menampilkan CPU has no AVX support. MongoDB will be disabled, dan setiap aplikasi yang memerlukan MongoDB tidak dapat diinstal. Periksa CPU sebelum melanjutkan menggunakan grep -m1 -o avx /proc/cpuinfo. Perintah tersebut menampilkan avx pada host yang mendukungnya dan tidak menampilkan apa pun pada host lama.

Berapa banyak RAM yang dibutuhkan Cloudron?

Skrip menolak berjalan jika RAM kurang dari 941 MB, dengan Error: Cloudron requires atleast 1GB physical memory, dan dokumentasi meminta RAM 2 GB serta disk 20 GB. Kedua angka tersebut adalah batas minimum untuk platform, bukan untuk platform beserta aplikasi Anda. Sebelum Anda menginstal satu aplikasi pun, Cloudron sudah menjalankan Docker, nginx, service box miliknya sendiri, container database yang disediakan untuk aplikasi (MySQL, PostgreSQL, MongoDB), Redis, dan mail stack. Jalankan docker ps pada instalasi baru, lalu hitung semuanya.

Batas memori aplikasi berlaku di atas kebutuhan dasar tersebut. Setiap paket aplikasi memiliki batas default yang rendah, dan Anda dapat menaikkannya dengan slider pada tampilan Resources aplikasi. Jika aplikasi melewati batasnya, aplikasi tersebut akan restart dan mengirimkan notifikasi OOM (out of memory). Jadi, server yang terus me-restart satu aplikasi biasanya mengalami masalah batas memori, bukan bug.

Berikut ukuran server yang saya rekomendasikan. Rekomendasi ini ditujukan untuk server yang tidak perlu Anda build ulang bulan depan. Angka ini bukan hasil benchmark terukur.

ChartCloudron VPS sizing floor by number of apps
The data behind this chart
[
  {
    "label": "2 apps (free tier)",
    "vcpu": 2,
    "ram_gb": 4,
    "disk_gb": 60
  },
  {
    "label": "5 apps",
    "vcpu": 4,
    "ram_gb": 8,
    "disk_gb": 120
  },
  {
    "label": "10 apps",
    "vcpu": 6,
    "ram_gb": 16,
    "disk_gb": 240
  }
]

Dua aplikasi dapat berjalan dengan nyaman pada 4 GB RAM dan 60 GB disk. Sekitar sepuluh aplikasi membutuhkan 16 GB RAM dan 240 GB disk, karena kebutuhan dasar platform tidak pernah berkurang dan setiap aplikasi menambahkan image Docker, database, serta datanya sendiri. Disk terisi lebih cepat dari perkiraan: image, data aplikasi, dan backup lokal menggunakan satu volume yang sama sampai Anda memindahkan backup ke luar server.

Cloudron menyediakan swap tanpa batas untuk setiap aplikasi, sehingga batas memori yang Anda tetapkan hanya berlaku untuk RAM. Pada image VPS tanpa file swap, swapon --show tidak menampilkan apa pun, dan tekanan memori langsung menyebabkan restart OOM, bukan aplikasi berjalan lebih lambat. Menambahkan swap 2 GB merupakan langkah pencegahan yang murah, tetapi tidak menggantikan memori fisik. Selisih harga antar paket VPS kecil dibandingkan waktu yang akan Anda habiskan untuk menyesuaikan batas memori. Karena itu, baca berapa biaya VPS sebenarnya dan pilih ukuran satu tingkat lebih besar.

DNS: rekaman wildcard yang membuat subdomain aplikasi berfungsi

Cloudron menempatkan dasbor di my.example.com dan setiap aplikasi pada subdomainnya sendiri. Karena itu, DNS adalah prasyarat, bukan langkah yang dilakukan belakangan. Arahkan rekaman berikut ke alamat IP publik server sebelum membuka dasbor untuk pertama kalinya:

  • my.example.com sebagai rekaman A. Ini adalah dasbor.
  • *.example.com sebagai rekaman A. Rekaman ini membuat subdomain aplikasi berfungsi, sehingga wiki.example.com dan git.example.com langsung dapat di-resolve saat Anda menginstal aplikasi tersebut.
  • example.com sebagai rekaman A, hanya jika Anda ingin menjalankan aplikasi pada domain utama.

Rekaman wildcard memiliki prioritas lebih rendah daripada rekaman eksplisit. Karena itu, www.example.com yang sudah mengarah ke tempat lain akan tetap berfungsi.

Selama penyiapan, Anda memilih cara Cloudron menangani DNS selanjutnya:

  • Penyedia API. Cloudron menyimpan token untuk Cloudflare, DigitalOcean, Route53, Hetzner, Porkbun, Linode, deSEC, Gandi, Namecheap, dan sekitar dua puluh penyedia lainnya, lalu membuat semua rekaman sendiri, termasuk rekaman email.
  • Wildcard. Anda menambahkan rekaman * secara manual dan Cloudron tidak menulis rekaman apa pun.
  • Manual. Cloudron menampilkan setiap rekaman dan menunggu Anda menambahkannya sebelum setiap instalasi aplikasi.

Rekaman DNS wildcard bukan sertifikat wildcard. Penyedia sertifikat default adalah Let's Encrypt Prod - Wildcard. Penyedia ini membuktikan kepemilikan domain melalui DNS, sehingga hanya berfungsi dengan penyedia API. Pada backend Wildcard atau Manual, Cloudron menggunakan satu sertifikat untuk setiap aplikasi yang divalidasi melalui HTTP. Artinya, port masuk 80 harus tetap terbuka secara permanen. Jika registrar atau host DNS Anda tercantum dalam daftar API, gunakan penyedia tersebut. Dengan demikian, rekaman email dan sertifikat tidak perlu lagi Anda kelola sendiri.

Lakukan verifikasi sebelum melanjutkan. dig +short my.example.com dan dig +short anything.example.com seharusnya sama-sama menampilkan alamat IP server Anda. Jika kueri wildcard tidak menampilkan apa pun, aplikasi akan gagal di kemudian hari meskipun dasbor berfungsi normal.

Jika domain berada di belakang Cloudflare, atur rekaman ke DNS only. Proxy Cloudflare hanya meneruskan HTTP dan HTTPS. Akibatnya, port email tidak berfungsi dan setiap aplikasi melihat alamat Cloudflare, bukan alamat pengunjung.

Jalankan skrip penyiapan

wget https://cloudron.io/cloudron-setup
chmod +x cloudron-setup
sudo ./cloudron-setup

Jalankan sebagai root atau melalui sudo, karena jika tidak, hal pertama yang dicetak adalah This script should be run as root.. Instalasi memerlukan waktu beberapa menit dan tidak menampilkan banyak output saat berjalan, karena output apt dan pull Docker ditulis ke file log. Pantau log tersebut dari sesi SSH kedua:

tail -f /var/log/cloudron-setup.log

Pada akhir proses, skrip mencetak After reboot, visit one of the following URLs and accept the self-signed certificate to finish setup. diikuti alamat server Anda, lalu meminta The server has to be rebooted to apply all the settings. Reboot now ? [Y/n]. Jawab yes. Flag --skip-reboot tersedia jika Anda perlu menjadwalkan restart, tetapi Cloudron belum dapat digunakan sampai server kembali aktif.

Boot pertama: domain, backend DNS, dan akun admin

Buka https://<server-ip> dan terima peringatan browser. Sertifikat tersebut ditandatangani sendiri karena Cloudron belum mengetahui domain Anda, sehingga tidak memiliki informasi yang diperlukan untuk meminta sertifikat dari otoritas sertifikat. Di Chrome, klik Advanced, lalu Proceed to <ip> (unsafe). Di Firefox, klik Advanced, lalu Accept the Risk and Continue.

Layar pertama meminta domain Anda. Masukkan example.com, lalu dashboard akan tersedia di my.example.com. Anda juga dapat menggunakan subdomain, misalnya cloudron.example.com, lalu dashboard akan tersedia di my.cloudron.example.com. Pilih backend DNS, tempel token API jika ada, lalu buat akun admin menggunakan alamat email yang benar-benar Anda baca. Pendaftaran Let's Encrypt dan semua peringatan platform akan dikirim ke alamat tersebut.

Setelah disimpan, Cloudron meminta sertifikat dan memindahkan dashboard ke https://my.example.com. URL berbasis alamat IP tidak dapat digunakan lagi setelah itu, jadi simpan URL baru tersebut sebagai bookmark.

Sertifikat: apa yang diperbarui dan kapan prosesnya berhenti

Pembaruan sertifikat berlangsung otomatis dan mengikuti ACME Renewal Information (ARI), yaitu jadwal yang dipublikasikan oleh otoritas sertifikat. Dalam praktiknya, sertifikat diperbarui sekitar satu bulan sebelum kedaluwarsa. Jika pembaruan gagal, akun admin akan menerima email. Jika sertifikat kedaluwarsa, sistem kembali menggunakan sertifikat self-signed bawaan. Itulah penyebab peringatan browser pada situs yang kemarin masih berfungsi.

Sebagian besar masalah disebabkan oleh dua hal. Validasi HTTP memerlukan port masuk 80. Jadi, menutup port 80 karena "semuanya sudah HTTPS" akan menggagalkan pembaruan untuk setiap aplikasi pada backend Wildcard atau Manual DNS. Validasi DNS memerlukan API token yang masih memiliki akses tulis. Jadi, mengganti atau membatasi token tersebut dapat menggagalkan pembaruan secara diam-diam sampai email peringatan diterima.

Tampilan Domains memiliki tombol Renew All untuk langsung memaksa percobaan, serta provider Let's Encrypt Staging untuk pengujian. Sertifikat Staging sengaja tidak dipercaya oleh browser. Itulah tujuannya: Anda dapat mencoba kembali sesering yang diperlukan tanpa mengurangi batas laju production.

Apakah Anda perlu menggunakan server email bawaan?

Cloudron menyediakan mail stack lengkap dengan mailbox IMAP, submission, filter sieve, dan penandatanganan DKIM (domainkeys identified mail). Anda mengaktifkannya per domain pada bagian Email di dashboard. Tantangan utamanya adalah memastikan email sampai ke tujuan, dan Cloudron bukan penyebab kesulitan tersebut.

  • Port outbound 25 diblokir oleh sebagian besar penyedia VPS untuk mengendalikan spam. Beberapa penyedia membuka blokir tersebut setelah menerima tiket dukungan. Uji dari server dengan nc -zv aspmx.l.google.com 25 (instal netcat-openbsd jika perintah tersebut tidak tersedia). Port yang terbuka dilaporkan oleh succeeded, sedangkan port yang diblokir akan menggantung sampai waktu habis.
  • Record PTR (reverse DNS) ditetapkan oleh penyedia VPS, bukan oleh host DNS Anda, dan harus cocok dengan hostname mail. Email dari alamat dengan PTR generik akan masuk ke folder spam.
  • Record SPF, DKIM, dan DMARC dituliskan secara otomatis untuk Anda pada backend DNS berbasis API. Pada backend Wildcard atau Manual, Anda harus menambahkannya secara manual. Record DKIM yang tidak ada membuat setiap pesan yang Anda tanda tangani tidak dapat diverifikasi.

Konfigurasi yang paling sesuai bagi sebagian besar pengguna adalah menerima email di Cloudron dan mengirimkannya melalui relay seperti SendGrid, Postmark, Mailgun, atau Amazon SES, yang dikonfigurasi pada tampilan Email. Relay tersebut harus mengizinkan pengiriman sebagai alamat apa pun pada domain Anda. Jika tidak, notifikasi aplikasi dari pengirim yang berbeda akan ditolak. Jika email adalah alasan utama Anda membeli server, jalankan dedicated mail server seperti Mailcow pada server terpisah dengan reputasi IP-nya sendiri.

Jika Anda sama sekali tidak menggunakan Cloudron Email, blokir port 25, 465, 587, 993, dan 4190 pada firewall penyedia Anda. Lakukan pemblokiran di sana, bukan pada server, karena Cloudron menulis aturan iptables sendiri dan mengharapkan untuk mengelolanya. Hal ini berbeda dari VPS biasa, yang mengharuskan Anda mengelola aturan ufw sendiri.

Konfigurasikan target pencadangan sebelum Anda membutuhkannya

Secara default, pencadangan menggunakan filesystem lokal di /var/backups, pada disk yang sama dengan komponen lainnya. Dokumentasi menyatakannya secara tegas: "Menyimpan backup pada disk fisik yang sama dengan server platform berbahaya." Satu disk yang gagal dapat menyebabkan aplikasi dan backup hilang bersamaan.

Buka Backups, lalu Backup Sites, dan arahkan pencadangan ke lokasi lain sejak hari pertama. Object storage yang kompatibel dengan S3 biasanya menjadi pilihan utama (Backblaze B2, Wasabi, Cloudflare R2, DigitalOcean Spaces, atau bucket MinIO pada server kedua). Target SSHFS, NFS, CIFS, dan filesystem biasa juga didukung.

Tiga pengaturan menentukan apakah backup tersebut benar-benar berguna:

  • Format. tgz menulis satu arsip terkompresi untuk setiap aplikasi dan mengunggah ulang seluruh arsip pada setiap proses. rsync hanya mengunggah file yang berubah, sehingga biayanya jauh lebih rendah untuk Nextcloud berukuran besar, tetapi memerlukan lebih banyak request ke API storage.
  • Enkripsi. Bersifat opsional dan menggunakan AES-256 untuk melindungi isi file serta nama file. Cloudron tidak menyimpan salinan password, sehingga jika password hilang, backup tidak dapat didekripsi oleh siapa pun, termasuk Anda. Simpan password tersebut di password manager yang di-host sendiri sebelum mengeklik save.
  • Retensi. Ditulis sebagai jumlah, misalnya 7 harian dan 4 mingguan. Retensi yang panjang pada object storage akan menambah tagihan setiap bulan. Pilih jumlah yang sanggup terus Anda bayar.

Selanjutnya, uji pemulihan. Install aplikasi kecil, pulihkan dari dashboard, lalu monitor hingga aplikasi kembali beserta datanya. Backup yang belum pernah dipulihkan siapa pun hanyalah perkiraan.

Batasan paket gratis

Per Agustus 2026, paket gratis dibatasi hingga dua aplikasi yang terpasang. Paket ini sudah mencakup pembaruan aplikasi, pencadangan per aplikasi, firewall, server email, dan single sign-on. Aplikasi ketiga adalah batas saat Anda memerlukan lisensi. Paket berbayar menghapus batas jumlah aplikasi, sedangkan paket yang lebih tinggi menambahkan grup dan peran pengguna, server direktori, serta beberapa lokasi pencadangan. Harga dapat berubah, jadi lihat halaman harga Cloudron, bukan angka yang tercantum dalam tutorial.

Satu lisensi berlaku untuk satu instalasi Cloudron. Karena itu, biaya dua server kecil menjadi dua kali lipat dibandingkan satu server yang lebih besar. Struktur harga ini membuat sebagian besar orang memilih satu VPS yang lebih besar, meskipun hal tersebut bertentangan dengan anjuran umum untuk membagi layanan ke beberapa mesin. Pertimbangkan hal ini saat menentukan ukuran server, karena memisahkan layanan di kemudian hari berarti membayar dua kali.

Saat terjadi masalah

Mulai dengan pemeriksaan bawaan. Pemeriksaan ini memeriksa DNS, sertifikat, disk, memori, dan setiap service secara berurutan. Pemeriksaan ini juga menunjukkan pengujian yang gagal:

sudo cloudron-support --troubleshoot

Setelah itu, gunakan alat systemd (system dan service manager) biasa. systemctl status box melaporkan kondisi service Cloudron itu sendiri, journalctl -u box -n 100 menampilkan log terbarunya, dan journalctl -u docker mencakup runtime container yang mendasarinya. Semua masalah yang terjadi selama instalasi tersimpan di /var/log/cloudron-setup.log.

Dashboard yang tidak dapat dimuat biasanya disebabkan oleh DNS atau firewall provider, bukan Cloudron. Jalankan dig +short my.example.com dari laptop Anda dan pastikan port 80 dan 443 terbuka pada firewall jaringan provider. Firewall ini merupakan kontrol yang terpisah dari aturan firewall milik server. Jika Anda memulai ulang proses dari awal, skrip akan menolak eksekusi kedua dengan Error: Cloudron is already installed. To reinstall, start afresh. Dalam kondisi ini, server yang dibuat ulang merupakan solusi yang bersih.

Saat Cloudron bukan pilihan yang tepat

Cloudron sesuai jika Anda menginginkan aplikasi, bukan infrastruktur. Cloudron kurang sesuai jika Anda ingin menjalankan container sendiri dengan cara Anda sendiri, karena Cloudron mengelola nginx, Docker, dan firewall, lalu dapat menimpa konfigurasi yang Anda buat di sana. Jika rencana Anda adalah menyimpan kumpulan file compose, Traefik di depan stack Docker Compose Anda sendiri memberi Anda TLS otomatis dan routing subdomain yang sama tanpa platform tambahan. Jika Anda belum menentukan pilihan, perbandingan Cloudron, CasaOS, dan Coolify menyajikan semuanya berdampingan, sedangkan daftar lebih luas tentang hal-hal yang dapat di-self-host merupakan titik awal yang lebih baik daripada panduan instalasi.

FAQ

Berapa banyak RAM yang dibutuhkan Cloudron pada VPS?

Skrip setup menolak dijalankan jika RAM kurang dari 941 MB dan dokumentasi meminta 2 GB, tetapi itu adalah batas minimum untuk platform tanpa aplikasi. Sejak boot pertama, Cloudron menjalankan Docker, nginx, layanan box miliknya sendiri, container database, dan mail stack. Sediakan 4 GB untuk dua aplikasi dan 16 GB untuk sekitar sepuluh aplikasi. Tambahkan file swap karena Cloudron memberikan swap tanpa batas kepada aplikasi, dan server tanpa swap dapat mengubah tekanan memori menjadi restart.

Apakah Cloudron dapat diinstal pada Debian atau server yang sudah menjalankan Docker?

Tidak satu pun dapat digunakan. Skrip memeriksa rilis dan berhenti dengan Cloudron requires Ubuntu 20.04, 22.04, 24.04, sehingga Debian, Rocky, dan Alpine tidak didukung. Skrip juga berhenti jika nginx, docker, atau node sudah ada karena Cloudron menginstal versi yang ditetapkan untuk semuanya serta menulis konfigurasi nginx dan aturan iptables sendiri. Gunakan image Ubuntu baru pada KVM VPS.

Mengapa subdomain aplikasi gagal, sementara dashboard berfungsi?

Record DNS wildcard belum ada. Setup membuat atau memerlukan record A untuk my.example.com, sehingga dashboard dapat di-resolve. Sebaliknya, wiki.example.com mengembalikan NXDOMAIN dan browser melaporkan bahwa situs tidak dapat ditemukan. Tambahkan record A untuk *.example.com yang mengarah ke IP server, lalu konfirmasi dengan dig +short wiki.example.com sebelum menginstal aplikasi.

Apakah saya harus menggunakan mail server Cloudron?

Tidak. Anda dapat menonaktifkan email masuk dan mengirim email melalui relay eksternal seperti Postmark, Mailgun, atau Amazon SES. Ini merupakan pilihan yang lebih aman jika provider memblokir port keluar 25 atau alamat IP tersebut belum memiliki reputasi pengiriman email. Jika Cloudron Email sama sekali tidak digunakan, tutup port 25, 465, 587, 993, dan 4190 pada firewall provider, bukan pada server.

Apa yang terjadi ketika saya mencapai batas dua aplikasi pada paket gratis?

Dashboard memblokir instalasi ketiga dan meminta licence key. Aplikasi yang sudah berjalan tidak terpengaruh. Aplikasi tersebut tetap diperbarui, tetap dicadangkan, dan tetap menggunakan sertifikatnya. Menambahkan licence akan menghapus batas tersebut tanpa menginstal ulang apa pun. Dengan demikian, paket gratis merupakan cara yang wajar untuk menguji platform terlebih dahulu pada domain nyata.