Instalasi

Ada beberapa cara memasang Databasus: script otomatis (direkomendasikan), Docker run, Docker Compose, Helm untuk Kubernetes, atau Docker Compose dengan Caddy untuk deployment production.

Kebutuhan sistem

Databasus membutuhkan sumber daya minimum berikut agar bisa berjalan dengan baik:

  • CPU: Setidaknya 1 core CPU
  • RAM: Minimum 500 MB RAM
  • Penyimpanan: 5 GB untuk instalasi, ditambah ruang sesuai kebutuhan backup kamu
  • Docker: Docker Engine 20.10+ dan Docker Compose v2.0+

Opsi 1: script instalasi (direkomendasikan, khusus Linux)

Script instalasi akan:

  • ✅ Memasang Docker beserta Docker Compose (jika belum terpasang)
  • ✅ Menyiapkan Databasus
  • ✅ Mengatur agar Databasus berjalan otomatis setelah sistem dimulai ulang
sudo apt-get install -y curl && \
sudo curl -sSL https://raw.githubusercontent.com/databasus/databasus/refs/heads/main/install-databasus.sh | sudo bash

Dengan cara ini, Databasus dipasang di direktori /opt/databasus.

Opsi 2: Docker run sederhana

Cara paling mudah menjalankan Databasus:

docker run -d \
  --name databasus \
  -p 4005:4005 \
  -v ./databasus-data:/databasus-data \
  --restart unless-stopped \
  databasus/databasus:latest

Satu perintah ini akan:

  • ✅ Menjalankan Databasus
  • ✅ Menyimpan semua data di direktori ./databasus-data
  • ✅ Menjalankan ulang Databasus secara otomatis setelah sistem dimulai ulang

Opsi 3: pengaturan Docker Compose

Buat file docker-compose.yml dengan konfigurasi berikut:

services:
  databasus:
    container_name: databasus
    image: databasus/databasus:latest
    ports:
      - "4005:4005"
    volumes:
      - ./databasus-data:/databasus-data
    restart: unless-stopped

Lalu jalankan:

docker compose up -d

Proses awal menjalankan layanan bisa memakan waktu hingga ~2 menit.

Opsi 4: Kubernetes dengan Helm

Untuk deployment Kubernetes, pasang langsung dari OCI registry. Pilih metode akses yang sesuai dengan lingkungan kamu.

Dengan ClusterIP + port-forward (development)

helm install databasus oci://ghcr.io/databasus/charts/databasus \
  -n databasus --create-namespace

Akses melalui port-forward:

kubectl port-forward svc/databasus-service 4005:4005 -n databasus
# Access at http://localhost:4005

Dengan LoadBalancer (lingkungan cloud)

helm install databasus oci://ghcr.io/databasus/charts/databasus \
  -n databasus --create-namespace \
  --set service.type=LoadBalancer

Dapatkan IP eksternal, lalu akses Databasus:

kubectl get svc databasus-service -n databasus
# Access at http://<EXTERNAL-IP>:4005

Dengan Ingress (akses melalui domain)

helm install databasus oci://ghcr.io/databasus/charts/databasus \
  -n databasus --create-namespace \
  --set ingress.enabled=true \
  --set ingress.hosts[0].host=backup.example.com

Untuk opsi lain (NodePort, TLS, HTTPRoute untuk Gateway API), lihat dokumentasi Helm chart.

Menjalankan dengan reverse proxy Caddy

Untuk deployment production, kamu bisa menggunakan Caddy sebagai reverse proxy agar mendapatkan sertifikat HTTPS otomatis dan akses aman ke Databasus. Berikut konfigurasi lengkap Docker Compose dengan Caddy.

Docker Compose dengan Caddy

Buat file docker-compose.yml:

services:
  databasus:
    container_name: databasus
    image: databasus/databasus:latest
    volumes:
      - ./databasus-data:/databasus-data
    restart: unless-stopped
    # No port exposed - Caddy handles external access

  caddy:
    container_name: caddy
    image: caddy:latest
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - ./caddy-data:/data
      - ./caddy-config:/config
    restart: unless-stopped
    depends_on:
      - databasus

Buat Caddyfile di direktori yang sama:

backup.example.com {
    reverse_proxy databasus:4005
}

Lalu jalankan layanan:

docker compose up -d

Konfigurasi ini menyediakan:

  • ✅ HTTPS otomatis dengan sertifikat Let's Encrypt
  • ✅ Pengalihan HTTP ke HTTPS
  • ✅ Reverse proxy ke Databasus
  • ✅ Data persisten untuk Caddy dan Databasus

Ganti backup.example.com dengan domain kamu. Pastikan DNS domain mengarah ke alamat IP server sebelum menjalankan layanan.

Mulai menggunakan Databasus

Setelah instalasi:

  1. Jalankan dan akses Databasus: Jalankan Databasus, lalu buka http://localhost:4005
  2. Buat tugas backup pertama: Klik "New Backup", lalu atur koneksi database PostgreSQL kamu
  3. Atur jadwal: Tentukan jadwal backup (per jam, harian, mingguan, bulanan, atau cron)
  4. Pilih tujuan penyimpanan: Pilih tempat menyimpan backup (lokal, S3, Azure Blob Storage, dan sebagainya)
  5. Atur notifikasi: Tambahkan kanal notifikasi (Slack, Telegram, Discord) untuk menerima pemberitahuan status backup
  6. Mulai backup: Simpan konfigurasi dan pantau backup pertama kamu!

Pemeriksaan ketersediaan

Pemeriksaan ketersediaan Docker

Pemeriksaan ketersediaan bawaan aktif otomatis untuk docker run dan Docker Compose. Container dilaporkan healthy setelah Databasus mulai melayani request (setelah masa tenggang singkat saat startup). Pemeriksaan ini hanya memastikan aplikasi merespons, sehingga kondisi yang tidak kritis, seperti ruang disk menipis, tidak memicu restart container.

Endpoint pemantauan / status

Untuk pemantauan uptime dan dashboard status:

GET http://<host>:4005/api/v1/system/health

Mengembalikan 200 jika sehat, atau 503 beserta alasannya jika ada yang perlu diperhatikan: database internal, penggunaan disk (di atas 95%), alat client database, proses latar belakang, dan keaktifan agen verifikasi. Tidak memerlukan autentikasi, dan CORS terbuka untuk alat pemantauan berbasis browser.

⚠️ Penting: gunakan hanya untuk pemantauan dan pemberitahuan, bukan sebagai liveness probe container atau Kubernetes. Endpoint ini mengembalikan 503 ketika kondisi memburuk tetapi layanan masih berjalan (misalnya disk hampir penuh), sehingga bisa memicu restart container yang sebenarnya masih berfungsi.

Kubernetes

Gunakan liveness/readiness probe yang menjalankan databasus healthcheck; gunakan endpoint /api/v1/system/health hanya untuk pemantauan eksternal.

Cara memperbarui Databasus

Memperbarui instalasi Docker

Untuk memperbarui Databasus yang berjalan melalui Docker, hentikan layanan, bersihkan cache Docker, lalu jalankan kembali container.

  1. Buka direktori instalasi Databasus (biasanya /opt/databasus)
  2. Hentikan container: docker compose stop
  3. Bersihkan cache Docker: docker system prune -a
  4. Jalankan kembali container: docker compose up -d

Langkah ini akan mengambil versi terbaru Databasus dari Docker Hub (jika kamu tidak menetapkan versi tertentu di file docker-compose.yml).

Memperbarui instalasi Helm

Untuk memperbarui Databasus yang berjalan di Kubernetes melalui Helm, gunakan perintah upgrade:

helm upgrade databasus oci://ghcr.io/databasus/charts/databasus -n databasus

Jika menggunakan nilai khusus, tambahkan -f values.yaml atau flag --set agar konfigurasi kamu tetap digunakan. Helm akan melakukan rolling update ke versi baru.

Migrasi dari Postgresus

Databasus adalah nama baru Postgresus. Jika saat ini menggunakan Postgresus, kamu bisa tetap menggunakannya atau bermigrasi ke Databasus.

Penting: Mengganti nama image Docker saja tidak cukup karena Postgresus dan Databasus menggunakan folder data dan nama database internal yang berbeda.

Untuk bermigrasi:

  1. Hentikan container Postgresus: docker compose stop
  2. Pasang Databasus dengan salah satu metode di atas (gunakan path volume yang berbeda, ./databasus-data)
  3. Buat ulang database, penyimpanan, dan kanal notifikasi secara manual di Databasus

Kamu bisa menjalankan Postgresus dan Databasus bersamaan selama migrasi dengan menggunakan port dan path volume yang berbeda.

Pemecahan masalah

Container tidak bisa dijalankan

Jika container gagal dijalankan, periksa log:

docker logs databasus

Port sudah digunakan

Jika port 4005 sudah digunakan, kamu bisa menggantinya di docker-compose.yml:

ports:
  - "8080:4005" # Change 8080 to any available port

Error permission denied

Jika ada masalah izin pada direktori data:

sudo chown -R $USER:$USER ./databasus-data
chmod -R 755 ./databasus-data