$ aoox
self-hosted PaaS · Docker · open source

Deploy aplikasi dari Git ke server sendiri.

aoox menjalankan build, deploy, database, domain, dan log di server milikmu — satu dashboard, tanpa vendor lock-in.

  • Dibangun di atas
  • Docker
  • Swarm
  • Traefik
  • Nixpacks
  • PostgreSQL
deploy — aoox
$ git push origin main → deployment#a1b2c3queued→ buildnixpacksok42s→ pushregistryok3s→ startblue/greenhealthy✓ https://app.example.com$ 
## fitur

Semua yang dibutuhkan untuk menjalankan aplikasi di produksi.

Dibangun di atas Docker. Tidak ada runtime khusus — kalau bisa jalan di container, bisa jalan di aoox.

  • dockerfile
  • nixpacks
  • railpack
  • image
  • cli

Deploy dari Git atau image

Hubungkan repo GitHub/GitLab — Dockerfile, Nixpacks, Railpack (dengan cache antar deploy), atau situs statis — dan webhook memicu deploy tiap push. Atau tarik image siap pakai dari registry, lengkap dengan update otomatis saat tag-nya berubah. Tanpa repo, CLI aoox build & push langsung dari mesinmu.

Baca docs
  • blue/green
  • healthcheck

Zero-downtime & rollback

Health check menentukan sukses/gagal. Blue/green swap tanpa putus, rollback ke image sebelumnya sekali klik.

Baca docs
  • swarm
  • replika
  • rolling update

Multi-node dengan Swarm

Jadikan host manager, gabungkan node lain, jalankan aplikasi sebagai service dengan replika. Rolling update, rollback otomatis, dan penempatan per node atau label.

Baca docs
  • postgres
  • mysql
  • redis

Managed database

PostgreSQL, MySQL, MariaDB, Redis per project. Referensikan kredensialnya di env, jelajahi tabel dan jalankan query dari dashboard.

Baca docs
  • cron
  • s3
  • instance

Backup & restore

Database dan volume aplikasi, manual atau terjadwal, dengan retensi dan salinan ke S3. Panel sendiri pun bisa di-backup dan dipulihkan.

Baca docs
  • traefik
  • acme

Domain & TLS

Arahkan domain ke aplikasi lewat Traefik, sertifikat Let's Encrypt otomatis, cek DNS dari dashboard — di host maupun di server remote.

Baca docs
  • ssh
  • xterm

Web terminal & server remote

Shell ke host atau server lain lewat SSH dari browser. Deploy ke server remote tanpa agen tambahan.

Baca docs
  • metrics
  • alerts

Monitoring & notifikasi

Log realtime, metrik CPU/RAM host dan container dengan riwayat 1 jam sampai 30 hari, notifikasi ke Telegram, Slack, Discord, email.

Baca docs
## cara kerja

Dari repo ke URL dalam tiga langkah.

Tidak ada file konfigurasi khusus aoox di repo — semuanya diatur dari dashboard.

  1. 01

    Buat project & hubungkan repo

    Satu project bisa berisi beberapa aplikasi dan database. Tempelkan URL Git dan branch yang mau di-deploy.

    Git repositoryhttps://github.com/acme/shop
    Branchmain
    Port container3000
  2. 02

    Pilih cara build

    Dockerfile yang sudah ada, deteksi otomatis Nixpacks, atau situs statis via nginx. Tambahkan env dan port container.

    Cara build
    Dockerfile./Dockerfile
    Nixpacksdeteksi otomatis
    NODE_ENV=production+2 env
  3. 03

    Deploy & pantau

    Build berjalan di daemon Docker, image di-push ke registry lokal, container baru naik setelah health check lolos — atau sebagai service Swarm dengan rolling update.

    ✓buildok
    ✓pushok
    ✓healthhealthy
    ✓swapblue → green
    Runningshop.example.com
Panduan lengkap membuat aplikasiPush berikutnya deploy otomatis lewat webhook.
## build

Bawa repo apa adanya.

Enam cara menjalankan aplikasi — dari repo apa adanya atau langsung dari image. Pilih per aplikasi, bisa berbeda-beda dalam satu project.

Build args untuk Dockerfile & Nixpacks; env diterapkan saat runtime, jadi rahasia tidak pernah ikut tersimpan di image.

## tim

Satu instance, banyak project.

Peran instance mengatur siapa boleh menyentuh infrastruktur; keanggotaan per project mengatur siapa melihat dan mengubah apa.

Peran instance
Boleh apaowneradminmember
Project yang dibuat atau ditugaskan✓✓✓
Melihat semua project✓✓–
Deploy, rollback, backup, jobs✓✓✓
2FA, ganti password, API token✓✓✓
Undang anggota instance✓✓–
Registry, server remote, Swarm, notifikasi✓✓–
Web terminal & bind mount✓✓–
Audit log✓✓–
Ubah peran, hapus & reset password pengguna✓––
Provision registry & proxy, backup instance✓––
Peran per project
  1. adminKelola anggota project dan hapus project, selain semua yang bisa developer.
  2. developerBuat & deploy aplikasi, database, stack, domain, backup.
  3. viewerBaca saja — lihat status, log, dan metrik tanpa bisa mengubah.

Anggota hanya melihat project yang ia buat atau yang ia ditambahkan ke dalamnya; owner dan admin instance melihat semuanya.

Mengundang anggota
  1. 1Undangemail + peran
  2. 2Salin tautantampil sekali, 7 hari
  3. 3Bergabungnama + password

Tanpa server email — tautan undangan dibuat sekali, kamu kirim sendiri lewat chat.

Selengkapnya tentang pengguna & peran
## self-host

Jalan di server kamu sendiri.

Tiga container dari satu file compose. Tidak ada akun cloud, tidak ada telemetri — data dan image tetap di server-mu.

  • ✓Docker 24+ & Compose v2satu-satunya dependensi
  • ✓VPS Linux1 vCPU / 1 GB cukup untuk mulai
  • ✓Port 3000 & 3001dashboard & API; 80/443 bila pakai domain
ssh root@server
$ git clone https://github.com/hideandseeklab/aoox-api.git$ cd aoox-api && cp .env.dist.example .env.dist# isi POSTGRES_PASSWORD, JWT_SECRET, ENCRYPTION_KEY, DOCKER_GID$ docker compose -f docker-compose.dist.yml --env-file .env.dist up -d→ buka http://<server>:3000/setup
webNext.js · :3000
apiNestJS · :3001
postgresdata aoox
docker compose · network aoox+ registry, proxy, app, db saat dibutuhkan
## faq

Pertanyaan umum.

Jawaban singkat. Detailnya ada di dokumentasi.

+Apa bedanya dengan Coolify atau PaaS self-hosted lain?
Konsepnya serupa: PaaS self-hosted di atas Docker. aoox fokus pada alur yang ringkas — project, aplikasi, database — dan kode yang mudah dibaca (NestJS + Next.js), tanpa agen tambahan di server.
+Apakah perlu Kubernetes?
Tidak. Satu host dengan Docker Engine sudah cukup. Untuk beberapa mesin ada dua jalan tanpa Kubernetes: hubungkan server lewat SSH sebagai target deploy terpisah (Server remote), atau aktifkan Docker Swarm dan jalankan aplikasi sebagai service dengan replika, rolling update, dan penempatan per node.
+Repo tanpa Dockerfile bisa di-deploy?
Bisa, pilih cara build Nixpacks: stack dideteksi otomatis dan Dockerfile dibuat untukmu. Build pertama lebih lama dan tanpa cache dependensi — detail di Cara build.
+Bagaimana dengan data aplikasi dan database?
Volume Docker untuk data persisten, bind mount untuk path host, file mount untuk konfigurasi. Database dan volume bisa di-backup manual atau terjadwal dengan salinan ke S3 — begitu juga panel aoox sendiri, sehingga instance bisa dipulihkan di server baru — Backup & restore.
+Deploy otomatis saat push?
Ya, lewat webhook GitHub/GitLab dengan secret opsional. Pull request juga bisa mendapat preview di subdomain sendiri, dan aplikasi yang dijalankan dari image bisa memperbarui dirinya saat tag-nya berubah — Webhook dan Preview PR.
+Ada downtime saat deploy?
Untuk aplikasi dengan domain dan health check, tidak: container baru naik di samping yang lama (blue/green) dan baru menggantikannya setelah sehat. Gagal build tidak pernah menyentuh container yang berjalan.
+Bisa dipakai di Windows?
Untuk pengembangan, ya (Docker Desktop). Untuk produksi, gunakan Linux.
+Apakah datanya keluar dari server saya?
Tidak ada telemetri dan tidak ada layanan cloud yang dihubungi, kecuali yang kamu atur sendiri: Let's Encrypt untuk sertifikat, tujuan S3 untuk backup, dan kanal notifikasi.
siap dalam ± 5 menit

Server sudah ada. Tinggal deploy.

Clone, isi env, docker compose up — lalu buka /setup dan deploy aplikasi pertamamu.

$git clone https://github.com/hideandseeklab/aoox-api.git && cd aoox-api && cp .env.dist.example .env.dist
  • ✓Satu file compose
  • ✓Tanpa telemetri
  • ✓Open source