Plane adalah perkakas manajemen proyek sumber terbuka - isu, siklus, modul, dan halaman, di ruang yang sama dengan Jira dan Linear - sekaligus salah satu aplikasi self-hosting yang paling berat untuk ditaruh di VPS kecil. Community Edition membawa tumpukan tiga belas kontainer, jadi bagian menarik dari panduan ini adalah menentukan ukuran server dengan benar, bukan mengetik docker compose up.
Mengapa Menghosting Sendiri Plane?
Paket cloud menagih per kursi. Menghosting sendiri menghapus biaya itu dan menyimpan riwayat isu, lampiran, serta data proyek di infrastruktur yang Anda kendalikan - hal yang penting jika pelacak isu Anda memuat nama klien, temuan keamanan, atau peta jalan yang belum dirilis. Community Edition berlisensi AGPL-3.0, jadi Anda bisa menjalankannya untuk tim komersial tanpa biaya lisensi.
Konsekuensinya nyata: Anda yang mengurus peningkatan versi, pencadangan, dan instance Postgres. Jika tidak ada di tim yang mau memegang tugas itu, jawaban jujurnya adalah versi cloud.
Prasyarat
Dokumentasi Plane menyebutkan kebutuhannya dengan gamblang:
- 2 core CPU, x64/AMD64 atau AArch64/ARM64
- Minimum 4 GB RAM, 8 GB direkomendasikan untuk produksi
- Ubuntu, Debian, CentOS, atau Amazon Linux 2/2023
- Docker Engine 20.10+ dan Docker Compose v2
- Port 80 dan 443 dapat dijangkau, serta domain yang mengarah ke server
Batas 4 GB itu bukan pengaman berlebih. Tumpukannya menjalankan web, admin, space, api, worker, beat-worker, migrator, live, sebuah proxy, ditambah postgres:15.7-alpine, valkey/valkey:7.2.11-alpine, rabbitmq:3.13.6-management-alpine, dan minio/minio. Tiga belas kontainer dalam keadaan diam sudah memakan sebagian besar 4 GB sebelum satu pengguna pun masuk.
Jika Anda masih mencari server, Contabo, Hetzner Cloud, dan DigitalOcean sama-sama punya paket yang melewati batas - lihat tabel ukuran di bawah, dan perbandingan VPS lengkap kami untuk pilihan yang lebih luas.
Langkah 1: Pilih Paket yang Melewati 4 GB
Di sinilah sebagian besar instalasi Plane tersesat. Paket termurah di hampir setiap penyedia adalah 1 GB RAM, seperempat dari minimum yang ditetapkan Plane.
| Paket | vCPU / RAM / Disk | Harga | Penilaian untuk Plane |
|---|---|---|---|
| Contabo Cloud VPS 4 | 4 / 8 GB / 100 GB SSD | 5,50 EUR/bulan net | Memenuhi rekomendasi 8 GB |
| Hetzner CX33 | 4 / 8 GB / 80 GB NVMe | 8,49 EUR/bulan net | Memenuhi rekomendasi 8 GB |
| Hetzner CX23 | 2 / 4 GB / 40 GB NVMe | 5,49 EUR/bulan net | Persis di minimum; cukup untuk tim kecil |
| Instance pemula DigitalOcean | 1 / 1 GB / 25 GB | 6 USD/bulan | Terlalu kecil - tidak akan menjalankan Plane |
Pasang Ubuntu 24.04 LTS, lalu buat pengguna non-root dan aktifkan firewall:
sudo apt update && sudo apt upgrade -y
sudo adduser plane
sudo usermod -aG sudo plane
sudo ufw allow OpenSSH && sudo ufw allow 80 && sudo ufw allow 443
sudo ufw enable
Langkah 2: Pasang Docker
Plane membutuhkan Compose v2. Pasang dari repositori resmi Docker agar Anda mendapat docker-compose-plugin, bukan skrip v1 yang sudah tidak didukung:
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo usermod -aG docker $USER
Keluar lalu masuk kembali, kemudian pastikan Anda memakai v2:
docker compose version
Langkah 3: Arahkan DNS ke Server Lebih Dulu
Kerjakan ini sebelum menjalankan pemasang. Pemasang menanyakan domain Anda saat penyiapan dan menuliskannya ke WEB_URL serta CORS_ALLOWED_ORIGINS; jika DNS belum teresolusi, penerbitan sertifikat gagal dan Anda akan sibuk menyunting berkas lingkungan sesudahnya.
Buat data A untuk plane.example.com yang mengarah ke alamat IP VPS, lalu tunggu sampai teresolusi:
dig +short plane.example.com
Langkah 4: Jalankan Pemasang Resmi
Plane mendistribusikan satu skrip pemasangan yang menarik image siap pakai dan menuliskan docker-compose.yaml terkelola:
curl -fsSL https://prime.plane.so/install/ | sh -
Skrip menanyakan domain Anda, lalu menawarkan Express (nilai bawaan) atau Advanced (mengatur variabel satu per satu). Express adalah pilihan tepat untuk instalasi pertama. Setelah selesai, Plane disajikan di port 80 dan 443, yang dikendalikan LISTEN_HTTP_PORT dan LISTEN_HTTPS_PORT.
Satu catatan soal repositori: berkas docker-compose.yml di GitHub membangun setiap layanan dari sumber, bukan menarik image. Itu alur untuk kontributor - proses build butuh RAM jauh lebih besar daripada menjalankan aplikasinya, dan akan gagal atau tersendat di VPS 4 GB. Gunakan pemasangnya.
Buka https://plane.example.com lalu buat akun pertama. Akun itu menjadi admin instance; panel adminnya ada di /god-mode/, tempat Anda mengatur SMTP, pembatasan pendaftaran, dan autentikasi.
Langkah 5: Cadangkan Bagian yang Penting
Dua hal memegang data Anda: volume PostgreSQL dan volume MinIO (yang menyimpan setiap lampiran berkas). Snapshot VPS mencakup keduanya, tetapi dump basis data yang bisa dipulihkan secara selektif tetap layak dimiliki:
docker exec plane-db pg_dump -U plane plane | gzip > plane-$(date +%F).sql.gz
Salin dump itu keluar dari server. Cadangan yang tersimpan di disk yang sedang Anda cadangkan bukanlah cadangan.
Membandingkan Pilihan VPS untuk Menghosting Plane
| Penyedia | Paket terkecil yang melewati 4 GB | Harga per bulan | Catatan | Tautan |
|---|---|---|---|---|
| Contabo | Cloud VPS 4 - 4 vCPU, 8 GB, 100 GB SSD | 5,50 EUR net | Jalur termurah menuju rekomendasi 8 GB | Contabo |
| Hetzner Cloud | CX23 - 2 vCPU, 4 GB, 40 GB NVMe | 5,49 EUR net | Memenuhi minimum; CX33 seharga 8,49 EUR untuk 8 GB | Hetzner |
| DigitalOcean | 2 vCPU, 4 GB, 80 GB SSD | 24 USD | Lebih mahal, tetapi dokumentasi dan snapshot-nya terbaik | DigitalOcean |
| Vultr | 2 vCPU, 4 GB, 80 GB SSD | 20 USD | Termurah di antara ketiganya; pilihan region luas | Vultr |
| Linode (Akamai) | 2 vCPU, 4 GB, 80 GB SSD | 24 USD | Kinerja mudah ditebak, API kuat | Linode |
Polanya sulit dilewatkan: penyedia Amerika Serikat menagih 20-24 USD untuk tingkat 4 GB, kira-kira tiga sampai empat kali lipat setara Eropanya. Untuk pelacak isu yang melayani satu kantor di satu wilayah, selisih itu sulit dibenarkan.
Untuk gambaran menyeluruh, lihat perbandingan VPS lengkap kami.
Tempat Tim Sering Tersandung
Menentukan ukuran dari halaman pemasaran, bukan dari dokumentasi. Plane tampak seperti aplikasi web; perilakunya seperti platform kecil. Empat GB adalah lantai, bukan target.
Melewatkan SMTP. Tanpa surel yang dikonfigurasi di /god-mode/, undangan tidak pernah sampai dan Anda tidak bisa menambahkan siapa pun ke ruang kerja. Siapkan sebelum mengajak tim masuk.
Melupakan MinIO saat mencadangkan. Mendump Postgres saja memberi Anda semua isu dan komentar dengan seluruh lampiran hilang.
Plane sepadan dengan usaha penyiapannya jika tim Anda memang hidup di dalam pelacak isu dan Anda enggan membayar per kursi untuk itu. Tentukan ukuran mesinnya dengan benar, simpan cadangan di tempat lain, dan sisanya adalah layanan yang tenang untuk dijalankan.
Untuk proyek self-hosting lainnya dan kiat tambahan, telusuri daftar awesome-selfhosted atau komunitas r/selfhosted.
Frequently asked questions
Bisakah saya menghosting Plane di VPS dengan RAM 1 GB atau 2 GB?
Tidak bisa. Dokumentasi Plane sendiri menetapkan batas bawah 2 core CPU dan 4 GB RAM, dan tumpukan compose Community Edition menjalankan tiga belas kontainer termasuk PostgreSQL, Valkey, RabbitMQ, dan MinIO. Di mesin 2 GB pemasangnya memang berjalan, tetapi kontainer dihentikan karena kehabisan memori begitu ada pemakaian nyata. Nilai terendah yang benar-benar jalan adalah 4 GB, dan dokumentasinya merekomendasikan 8 GB untuk produksi.
Bagaimana cara memperbarui Plane ke rilis yang lebih baru?
Jalankan ulang skrip pengelolaan yang ditaruh pemasang di server Anda lalu pilih opsi peningkatan, atau dari direktori instalasi jalankan docker compose pull diikuti docker compose up -d. Kontainer migrator menerapkan migrasi basis data saat start, jadi ambil dump PostgreSQL dan snapshot VPS sebelum memperbarui. Baca dulu catatan rilisnya, karena versi mayor sesekali mengubah variabel lingkungan.
Apakah saya perlu nama domain untuk menjalankan Plane?
Secara praktis ya. Pemasang menanyakan domain saat penyiapan dan menuliskannya ke WEB_URL serta CORS_ALLOWED_ORIGINS, yang dipakai frontend dan API untuk saling berkomunikasi. Alamat IP polos cukup untuk uji coba lokal, tetapi CORS langsung rusak begitu alamatnya berubah, dan Anda tidak bisa menerbitkan sertifikat Let's Encrypt tanpa domain.