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
Prasyarat
- Server Linux dengan Docker 24+ dan Compose v2. Cek:
docker compose version. - Port
3000(web) dan3001(API) terbuka di firewall untuk browser kamu. Port80/443harus kosong bila nanti memakai domain. - Akses ke socket Docker (
/var/run/docker.sock) — API memakainya untuk build dan menjalankan container.
Langkah
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.distBuat secret dan cari GID Docker
Jalankan di server, lalu salin hasilnya ke langkah berikutnya:
Nilai yang dibutuhkanopenssl rand -hex 32 # JWT_SECRET openssl rand -hex 32 # ENCRYPTION_KEY stat -c %g /var/run/docker.sock # DOCKER_GID (biasanya 999 atau 0)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:3001Variabel Keterangan 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. Jalankan stack
docker compose -f docker-compose.dist.yml --env-file .env.dist up -dImage diambil dari Docker Hub (
hideandseeklab/aoox-apidanhideandseeklab/aoox-web). Migrasi database dijalankan otomatis saat container API pertama kali boot.Buat akun owner
Buka
WEB_ORIGINdi 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_NAMEdi.env.distsebelumup -d. Nilai ini hanya dipakai saat belum ada pengguna dan tidak pernah menimpa akun yang sudah ada.
Verifikasi
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 -dMigrasi 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 --buildMenghapus
docker compose -f docker-compose.dist.yml --env-file .env.dist down -v-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 ↗