Self-hosting Kamal menyediakan alternatif open-source yang fokus pada privasi untuk platform pesan proprietary. Panduan ini memandu Anda melalui proses deploy Kamal dalam container Docker di VPS, cocok untuk pengembang dan penggemar homelab yang menginginkan kendali penuh atas layanan pesan mereka.
Prasyarat
Sebelum melanjutkan, pastikan Anda memiliki:
- Akun penyedia VPS (Contabo, Hetzner, DigitalOcean, Vultr, Linode)
- Nama domain (opsional tetapi disarankan)
- Pemahaman dasar tentang baris perintah Linux
- Docker terinstal di VPS Anda (atau bersedia menginstalnya)
Memilih Penyedia VPS
Untuk self-hosting yang hemat biaya, bandingkan opsi berikut:
| Penyedia | Harga | Fitur | Link Afiliasi |
|---|---|---|---|
| Contabo VPS | 5,99 EUR/bulan | Pilihan RAM besar, penyimpanan SSD | Contabo VPS |
| Hetzner Cloud | 4,15 EUR/bulan | Performa tinggi, SSD | Hetzner Cloud |
| DigitalOcean | 6 USD/bulan | Pengaturan mudah, dokumentasi lengkap | DigitalOcean |
| Vultr | 6 USD/bulan | Data center di seluruh dunia | Vultr |
| Linode | 5 USD/bulan | Spesifikasi seimbang, andal | Linode |
Untuk perbandingan lengkap, lihat halaman [perbandingan VPS lengkap].
Menyiapkan VPS
- Deploy VPS Anda - pilih penyedia favorit Anda, deploy distro Linux minimal (Ubuntu 22.04 disarankan).
- Terhubung melalui SSH:
ssh username@ip-vps-anda
- Perbarui sistem:
sudo apt update && sudo apt upgrade -y
- Instal Docker:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
- Verifikasi instalasi Docker:
docker --version
Men-deploy Kamal dengan Docker
Kamal menyediakan image Docker yang memudahkan deployment. Ikuti langkah-langkah berikut:
1. Buat File Docker Compose
Buat direktori untuk Kamal:
mkdir kamal && cd kamal
Buat file docker-compose.yml:
version: '3'
services:
kamal:
image: kamalio/kamal:latest
container_name: kamal
restart: unless-stopped
environment:
- DOMAIN=domainanda.com
- PORT=8080
- DEFAULT_CLUSTER_NAME=kamal-cluster
ports:
- "80:80"
- "443:443"
volumes:
- ./config:/app/config
Ganti
domainanda.comdengan domain asli Anda atau IP VPS jika hanya untuk pengujian lokal.
2. Konfigurasi SSL (Opsional tetapi disarankan)
Gunakan Certbot untuk mendapatkan sertifikat SSL:
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d domainanda.com
Perbarui file docker-compose.yml Anda dengan variabel lingkungan SSL atau jalankan Kamal di balik reverse proxy yang mengelola SSL.
3. Jalankan Kamal
docker-compose up -d
Pastikan container berjalan:
docker ps
Instansi Kamal Anda kini dapat diakses melalui domain atau IP VPS Anda.
Konfigurasi Tambahan
Kamal mendukung integrasi, otentikasi pengguna, dan tema yang dapat disesuaikan. Konfigurasi ini dilakukan melalui variabel lingkungan atau file konfigurasi yang dipetakan ke volume.
Manajemen Pengguna
Buat pengguna melalui antarmuka web atau API, tergantung pada kebutuhan Anda. Pastikan selalu mengamankan instalasi Anda dengan HTTPS dan kredensial yang kuat.
Mengamankan Deploy Anda
- Gunakan reverse proxy (Nginx atau Caddy) untuk terminasi SSL.
- Perbarui image Docker secara rutin (
docker-compose pull && docker-compose up -d). - Konfigurasikan aturan firewall untuk membatasi port yang terbuka ke yang penting saja.
FAQ
1. Apa itu Kamal dan mengapa saya harus self-host?
Kamal adalah platform pesan open-source dan terdesentralisasi yang dirancang untuk privasi dan fleksibilitas. Self-host Kamal memberikan kendali penuh atas data Anda, kustomisasi, dan mengurangi ketergantungan pada layanan cloud proprietary, sesuai dengan praktik dari komunitas r/selfhosted dan awesome-selfhosted. Cocok bagi pengguna yang menginginkan server chat yang fokus pada privasi.
2. Apakah saya bisa menginstal Kamal di provider VPS mana saja yang disebutkan di sini?
Ya. Kamal dapat dijalankan di VPS berbasis Linux apa pun yang mendukung Docker. Penyedia seperti Contabo, Hetzner, DigitalOcean, Vultr, dan Linode menawarkan arsitektur AMD64 atau ARM yang kompatibel dengan Docker. Pilih penyedia dengan sumber daya cukup untuk jumlah pengguna yang Anda harapkan. Pastikan server Anda minimal memiliki 1 GB RAM agar berjalan lancar.
3. Bagaimana memastikan instalasi Kamal tetap aman dan terbaru?
Perbarui image Docker secara rutin dengan:
docker-compose pull
docker-compose up -d
Gunakan reverse proxy (seperti Nginx atau Caddy) untuk menangani SSL dan menambah keamanan. Atur firewall (ufw atau firewalld) untuk membatasi akses ke port yang diperlukan. Pastikan sistem operasi server Anda selalu diperbarui dengan patch keamanan terbaru. Selain itu, pertimbangkan otentikasi dua faktor (2FA) jika Kamal atau API-nya mendukung fitur ini.
Tips Akhir
- Cadangkan konfigurasi dan data Kamal secara berkala.
- Gunakan password yang kuat dan unik untuk semua akun pengguna.
- Bergabunglah dengan komunitas seperti r/selfhosted dan awesome-selfhosted untuk dukungan dan saran.
Dengan langkah-langkah ini, Anda memiliki server chat Kamal yang sepenuhnya self-hosted dan berjalan di VPS Anda - menjaga privasi dan otonomi platform pesan Anda. Untuk alat tambahan dan opsi deployment lainnya, jelajahi halaman [perbandingan VPS lengkap].