$ aoox

DocsMulai

Instalasi

Menjalankan aoox di server sendiri dengan Docker Compose, lalu membuat akun owner pertama.

Waktu
± 5 menit
Butuh
VPS Linux + Docker
Hasil
Dashboard di :3000, akun owner
Cara lebih cepat: aoox install
Langkah manual di bawah ini cocok kalau kamu ingin lihat setiap bagiannya. Untuk VPS baru yang belum terpasang apa pun, CLI aoox install melakukan semuanya dalam satu perintah — termasuk memasang Docker bila belum ada.

Prasyarat

  • Server Linux dengan Docker 24+ dan Compose v2. Cek: docker compose version.
  • Port 3000 (web) dan 3001 (API) terbuka di firewall untuk browser kamu. Port 80/443 harus kosong bila nanti memakai domain.
  • Akses ke socket Docker (/var/run/docker.sock) — API memakainya untuk build dan menjalankan container.
Spesifikasi minimum
1 vCPU / 1 GB RAM cukup untuk aoox sendiri. Kebutuhan sebenarnya ditentukan aplikasi dan database yang kamu deploy; build Nixpacks pertama butuh ± 1 GB ruang disk tambahan untuk base image.

Langkah

  1. Clone repo API dan salin file env

    File compose distribusi dan contoh env ada di repo aoox-api.

    git clone https://github.com/hideandseeklab/aoox-api.git
    cd aoox-api
    cp .env.dist.example .env.dist
  2. Buat secret dan cari GID Docker

    Jalankan di server, lalu salin hasilnya ke langkah berikutnya:

    Nilai yang dibutuhkan
    openssl rand -hex 32                  # JWT_SECRET
    openssl rand -hex 32                  # ENCRYPTION_KEY
    stat -c %g /var/run/docker.sock       # DOCKER_GID (biasanya 999 atau 0)
  3. Isi .env.dist

    .env.dist (minimal)
    POSTGRES_PASSWORD=ganti-dengan-password-kuat
    JWT_SECRET=<hasil openssl #1>
    ENCRYPTION_KEY=<hasil openssl #2>
    DOCKER_GID=<hasil stat>
    
    # URL yang diketik di browser — harus sama persis
    WEB_ORIGIN=http://192.168.1.10:3000
    PUBLIC_API_URL=http://192.168.1.10:3001
    VariabelKeterangan
    POSTGRES_PASSWORDPassword database internal aoox.
    JWT_SECRETRahasia untuk token sesi. Mengganti = semua pengguna logout.
    ENCRYPTION_KEYKunci enkripsi kredensial tersimpan (registry, Git, notifikasi, S3). Jangan diganti setelah ada data — kredensial lama tidak bisa dibaca lagi.
    DOCKER_GIDGID socket Docker agar container API boleh memakai Docker host.
    WEB_ORIGIN / PUBLIC_API_URLURL web & API dari sisi browser. Cookie sesi dan gateway terminal memeriksa origin ini — beda skema/host/port = ditolak.
  4. Jalankan stack

    docker compose -f docker-compose.dist.yml --env-file .env.dist up -d

    Image diambil dari Docker Hub (hideandseeklab/aoox-api dan hideandseeklab/aoox-web). Migrasi database dijalankan otomatis saat container API pertama kali boot.

  5. Buat akun owner

    Buka WEB_ORIGIN di browser. Saat tabel pengguna masih kosong kamu diarahkan ke /setup — isi nama, email, dan password untuk akun owner pertama.

    Tanpa interaksi (opsional)

    Isi ADMIN_EMAIL, ADMIN_PASSWORD, ADMIN_NAME di .env.dist sebelum up -d. Nilai ini hanya dipakai saat belum ada pengguna dan tidak pernah menimpa akun yang sudah ada.

Verifikasi

Dari server
docker compose -f docker-compose.dist.yml --env-file .env.dist ps
# api, web, postgres → running

curl -s http://localhost:3001/auth/setup-status
# {"needsSetup":true}  sebelum akun owner dibuat
# {"needsSetup":false} sesudahnya
  • Setelah login, Dashboard tampil dan menu Settings bisa dibuka tanpa error.
  • Menu Terminal boleh menampilkan petunjuk SSH — itu normal sebelum terminal dikonfigurasi.

Langkah berikutnya

Memperbarui versi

docker compose -f docker-compose.dist.yml --env-file .env.dist pull
docker compose -f docker-compose.dist.yml --env-file .env.dist up -d

Migrasi database berjalan otomatis saat API boot. Untuk mengunci versi, isi API_IMAGE dan WEB_IMAGE di .env.dist, mis. hideandseeklab/aoox-api:0.1.0-alpha.0 (lihat tag yang tersedia di Docker Hub).

Build dari source

Checkout aoox-api dan aoox-web bersebelahan, lalu tambahkan file compose build:

docker compose -f docker-compose.dist.yml -f docker-compose.build.yml --env-file .env.dist up -d --build

Menghapus

docker compose -f docker-compose.dist.yml --env-file .env.dist down -v
Hati-hati
-v menghapus volume data aoox (pengguna, project, riwayat deployment). Container aplikasi, database, registry, dan proxy yang dibuat dari dashboard tidak ikut terhapus — hapus dari dashboard dulu, atau lewat docker dengan filter label com.docker.compose.project=aoox.

Ada yang keliru? Edit halaman ini di GitLab ↗