$ aoox

Changelog

Perubahan aoox per rilis — panel (API + dashboard), CLI, dan dokumentasi. aoox kini release candidate: fitur sudah dibekukan dan hanya perbaikan yang masuk, tetapi perilaku masih bisa berubah sebelum 0.1.0. Menemukan bug? Laporkan di GitHub.

  1. v0.1.0-rc.1

    Latestrc

    Berubah

    • Log migrasi saat startup: di produksi, API kini mencatat migrasi database mana yang berjalan (dan kegagalan migrasi), jadi docker logs menunjukkan apa yang diterapkan sebuah upgrade. Query tetap tidak dicatat. Rilis ini tidak punya migrasi baru.
    • Hasil tes koneksi yang seragam: tombol "Test" dan hasilnya sama di kartu DNS provider, secret manager, tujuan S3, server remote, kanal notifikasi, dan registry eksternal (centang hijau, segitiga kuning untuk peringatan, silang merah dengan pesan penyedia).

    Diperbaiki

    • Tidak ada lagi container helper yang tertinggal: menerapkan domain panel, update instance, atau perubahan environment instance tidak lagi menyisakan container docker:29-cli yang berhenti di setiap penerapan. Sisa dari versi lama bisa dihapus dengan docker rm.
    • Companion database hanya-domain: companion yang dipasang dengan domain saja (tanpa host port) kini melaporkan hostPortBind: null, bukan loopback yang bertentangan dengan loopbackOnly: false.
  2. v0.1.0-beta.2

    beta

    Berubah

    • Instalasi yang dipin ke tag versi diberi tahu dengan jujur: "Apply update" di kartu Update aoox dinonaktifkan dan aoox update panel --apply menolak (keluar dengan kode non-nol), karena pull hanya mengambil tag yang sama. Dashboard dan CLI menjelaskan langkah mengganti pin (atur API_IMAGE / WEB_IMAGE di .env.dist atau hapus, lalu sudo aoox reinstall).
    • aoox reinstall selalu membuat backup: .env.dist dan file compose disalin ke <dir>/backups/<waktu>/ sebelum ada yang diubah, juga saat tidak ada yang perlu ditulis ulang.
    • Dokumentasi: 2 GB dengan swap adalah minimum yang sudah diuji, cara meng-upgrade instalasi yang dipin, dan persyaratan CLI untuk aoox install.
    • Satu migrasi database: rilis ini punya satu migrasi yang berjalan otomatis saat startup dan hanya menambah dua kolom.

    Diperbaiki

    • Tidak ada lagi "update tersedia" palsu setelah mengubah pin: pengecekan update kini menyimpan baseline digest terpisah untuk setiap referensi image, jadi memin atau melepas pin tidak lagi menampilkan update yang tidak bisa diambil pull. Pengecekan pertama setelah upgrade hanya membuat baseline baru.
  3. v0.1.0-beta.1

    beta

    Baru

    • PROXY_READ_TIMEOUT untuk upload besar atau lambat: Traefik memutus request yang butuh lebih dari 60 detik untuk tiba, sehingga upload besar lewat koneksi lambat gagal. Atur lewat env atau kolom "Proxy read timeout" di Infrastructure > Environment; kartu Reverse proxy menampilkan nilai yang berjalan, memperingatkan bila berbeda, dan menawarkan "Reinstall proxy".
    • Swarm lewat VPN: swarm init menerima alamat listen dan MTU overlay (misalnya 1420 untuk WireGuard), dan port kontrol swarm tidak lagi terbuka di semua interface secara bawaan saat ada alamat advertise.
    • Task yang crash di node lain dilaporkan: notifikasi container down (dan inbox) kini menyebut node untuk task service yang gagal di node selain manager.

    Berubah

    • Template MinIO diganti RustFS: minio/minio tidak bisa lagi diunduh dari Docker Hub. Server MinIO yang sudah ada tetap berfungsi sebagai tujuan backup; deskripsi template menjelaskan cara menjadikan RustFS tujuan backup (beri stack sebuah domain, lalu pakai nama container dengan port 9000).
    • Alert dengan tombol aksi memakai satu tata letak: ikon, judul, dan deskripsi di kiri, tombol di kanan dan rata tengah secara vertikal; di ponsel ditumpuk dengan tombol selebar layar.
    • Keluar dari swarm memperingatkan bug Docker: dialog konfirmasi dan alert setelahnya meminta sudo systemctl restart docker di server, karena DNS Docker berhenti me-resolve nama container (moby/moby#45144).

    Diperbaiki

    • Aplikasi mode service (Swarm) kembali ter-route: router-nya merujuk middleware dengan namespace yang salah sehingga dibuang Traefik dan domain menjawab 404 (regresi beta.0). Perbaikan berlaku pada deploy berikutnya.
    • Menyimpan domain panel kini mengaktifkan HTTPS pada proxy yang sudah berjalan tanpa Let's Encrypt: proxy dibuat ulang sekali dengan email ACME yang disimpan (sertifikat yang sudah terbit tetap ada), dan aplikasi ter-route tidak terjangkau beberapa detik.
    • Init dan leave swarm tidak lagi kehilangan responsnya saat panel dibuka lewat domainnya, dan alert "restart Docker" setelah leave tampil dengan benar.
    • Dokumentasi: catatan cache Nixpacks diluruskan (build ulang tetap memakai layer Docker yang tidak berubah), serta halaman baru tentang timeout baca proxy, node Swarm lewat VPN, dan RustFS.
  4. v0.1.0-beta.0

    beta

    Berubah

    • Ini rilis beta pertama aoox. Fitur utama sudah lengkap; perilaku masih bisa berubah antar rilis, jadi laporkan bug yang kamu temui.
    • Badge "update tersedia" muncul lebih cepat: versi terbit dicek tiap jam (bukan tiap 6 jam), dan owner yang membuka dashboard memicu pengecekan di latar belakang bila pengecekan terakhir lebih dari 30 menit lalu.
    • aoox update mempertimbangkan semua dist-tag npm: instalasi pre-release ditawari versi terbaru apa pun labelnya (alpha ke beta ke rc), sedangkan instalasi stabil hanya melihat versi stabil. Selama belum ada versi stabil, semua pre-release terbit di tag latest.
    • Langkah update panel lebih rapi: tiga langkah (mengunduh, memulai ulang, kembali) kini baris terpisah dengan ikon status, keterangan satu baris, dan label Done / Running…, juga rapi di 375 px.
    • Dokumentasi: catatan bahwa build Railpack pertama paling boros memori dan bisa dihentikan dengan kode 137 di server 2 GB, serta kebutuhan RAM yang kini konsisten di semua halaman (minimum 2 GB plus swap, disarankan 4 GB atau lebih).

    Diperbaiki

    • Redeploy blue/green tidak lagi menjatuhkan request: container lama dihentikan dengan rapi begitu yang baru sehat, router aplikasi punya middleware retry, dan proxy memakai dial timeout 1 detik. Terukur di VPS asli: 0 request gagal pada 8 kali redeploy di bawah probe 0,3 detik.
    • Stack compose baru running setelah container-nya sehat, jadi tidak ada lagi 404 sekitar 20 detik setelah deploy; stack yang dihapus kini ikut menghapus volume mount-nya.
    • Mengubah middleware domain tidak lagi menghapus sertifikat yang diunggah, dan memindahkan aplikasi ke server lain tidak lagi meninggalkan container lama yang masih melayani atau memutus HTTPS-nya.
    • Restore instance tidak lagi gagal dengan error foreign key.
    • Password registry tidak lagi dikembalikan saat provisioning atau reset; dashboard dan aoox registry password --reset membacanya lewat rute reveal yang tercatat di audit log.
  5. v0.1.0-alpha.13

    alpha

    Baru

    • Cek update image menyebut tag-nya dan mencari versi lebih baru, dengan opsi ikuti tag versi otomatis (tidak pernah melewati versi mayor, dan untuk 0.x tidak melewati minor). Deploy otomatis yang gagal mengembalikan tag sebelumnya.
    • Tab Logs untuk log container langsung, tab Open ports di halaman Docker, dan pilihan "Listens on" (publik atau hanya 127.0.0.1) di setiap port host. Database dan aplikasi admin database kini bawaannya hanya di server ini.
    • Tampilkan dan reset password registry lokal (dashboard dan aoox registry password --show / --reset), plus image arm64 untuk panel sehingga VPS ARM (Ampere, Graviton) bisa menjalankannya, dan TZ agar jadwal berjalan di zona waktu pilihanmu.

    Berubah

    • Port registry lokal kini hanya di 127.0.0.1 secara default (sebelumnya terbuka di semua antarmuka), dan API menjangkaunya lewat jaringan aoox. Kartu registry menampilkan alamat dan keterjangkauannya.
    • aoox install --force tidak lagi merusak instalasi yang ada: file lama dicadangkan lebih dulu dan rahasia dipertahankan. Instalasi benar-benar baru memerlukan --force --new-secrets --wipe-data dan konfirmasi ketik, serta menolak jika volume database sisa masih ada.
    • Panduan baru "VPS baru" di dokumentasi, dari VPS kosong sampai panel di domain, dengan arsitektur, firewall, dan pemulihan.

    Diperbaiki

    • Viewer proyek tidak lagi membaca data sensitif: password dan baris database, nilai env dan build arg, token webhook, isi file mount, serta ekspor dan unduhan backup kini ditolak. Menghapus dengan purge juga menghapus file backup, volume mount, dan image hasil build.
    • Database lebih tangguh: database baru running hanya setelah engine menjawab, PostgreSQL 18 bisa start, ada tombol Retry provisioning untuk database yang gagal, dan kegagalan tidak lagi bocor sebagai error 500 mentah.
    • Deploy yang gagal lebih jujur: pesan health check menjelaskan penyebab sebenarnya, versi lama dipulihkan setelah penggantian yang gagal, dan aplikasi yang masih melayani tidak lagi ditandai error. Rahasia di log dan keluaran job disamarkan lebih menyeluruh.
  6. v0.1.0-alpha.12

    alpha

    Baru

    • Hapus domain panel dan akses hanya lewat domain: tombol Remove domain (atau aoox domain clear) mengembalikan dashboard ke IP:3000, dan sakelar opsional "Only allow access through the domain" (aoox domain set --domain-only) menutup port 3000/3001 dari luar. Ada peringatan terkunci dan langkah pemulihan lewat SSH.
    • aoox registry build dan push tanpa mengetik name:version: nama dan versi diambil dari package.json, pyproject.toml, Cargo.toml, file VERSION, tag git, dan seterusnya, lalu ditanyakan (Y/n/e) sebelum dijalankan kecuali memakai --yes.

    Berubah

    • Batas laju kini per pengguna, dan API melihat IP klien asli di belakang Traefik (TRUST_PROXY, bawaannya hanya mempercayai hop jaringan privat). Orang di balik NAT yang sama tidak lagi berbagi satu kuota, dan satu penyerang tidak bisa mengunci semua orang saat sign-in.
    • Tampilan nilai variabel disusun ulang: tiap baris punya tombol mata dan salin, Reveal all, Edit, dan nilai tersembunyi lagi otomatis setelah 60 detik. Halaman Integrations, Registry, dan Reverse proxy juga memakai keadaan kosong bergambar dan tata letak yang lebih rapi.
    • Output CLI berwarna di terminal; peringatan kini tampil sebagai warn teks, dan Ctrl+C di prompt keluar dengan kode 130.

    Diperbaiki

    • Registry lokal tidak lagi tampak aktif hanya karena ada container sisa aoox-registry; halaman menjelaskannya dan menawarkan Replace it. Mengaktifkan registry di atas container yang ada kini dijawab 409.
    • CLI bekerja di balik pemindai HTTPS antivirus dan proxy perusahaan dengan memercayai penyimpanan sertifikat sistem operasi (Node 22.19+ / 24.5+); verifikasi sertifikat tidak pernah dimatikan. aoox reinstall berhenti jika Docker Compose terlalu lama untuk override akses-hanya-lewat-domain.
  7. v0.1.0-alpha.11

    alpha

    Baru

    • Catatan per variabel: baris # tepat di atas sebuah variabel menjadi catatannya. Panel menampilkan ikon catatan di daftar yang masih tersamar tanpa membuka nilainya, dan catatan ikut riwayat, promosi, aoox env pull/push, dan ekspor. Jangan simpan rahasia di catatan: semua orang yang bisa melihat set ini bisa membacanya.
    • Daftar container sisa di halaman Docker: container dari project atau aplikasi yang dihapus di versi lama (dan masih menjawab di domainnya) kini terlihat di Details disk dan bisa dihapus satu per satu atau sekaligus. Volume tidak disentuh.
    • Peringatan saat domain masih dipakai container lain: tab Domain menyebut container yang juga mengarah ke host itu, supaya permintaan yang terbagi dua tidak membingungkan.

    Berubah

    • Halaman database baru memilih engine dari kartu (PostgreSQL, MySQL, MariaDB, Redis, Valkey, MongoDB), dengan varian PostgreSQL berupa chip dan tag image yang dipakai terlihat di bawah kolom Version. Ringkasan database juga disusun ulang: metrik, koneksi, Admin UI, batas dan alert, lalu zona berbahaya.
    • Header aplikasi dan database lebih jelas: setiap fakta berlabel (Image, Container, Port), nama container bisa disalin, dan image tanpa tag ditampilkan sebagai :latest.
    • Favicon bulat aoox.dev kini dipakai juga oleh dashboard dan API.

    Diperbaiki

    • Menghapus project kini menghentikan isinya: sebelumnya hanya catatannya yang dihapus sehingga container tetap berjalan dan domain masih menjawab. Sekarang aplikasi, database, dan stack dihapus lebih dulu; opsi Also delete data juga menghapus volume (bawaannya volume disimpan dan muncul sebagai yatim di Docker). Menghapus aplikasi juga membersihkan container blue/green-nya.
    • Editor variabel tidak lagi menghapus komentar saat disimpan dari tampilan Rows: catatan, komentar judul bagian, dan pengelompokan baris kosong tetap utuh.
  8. v0.1.0-alpha.10

    alpha

    Baru

    • Variables (variable set): kumpulan variabel tingkat platform dengan environment sendiri (development, staging, production), dibagikan ke semua project atau ke project tertentu. Setiap set punya riwayat, restore, bandingkan, promosi, dan tanda Rahasia per variabel, plus halaman Variables baru di panel.
    • Tautkan beberapa set ke satu aplikasi atau stack, berurutan: set yang lebih akhir menimpa yang lebih awal, env milik aplikasi selalu menang, dan panel menandai nama variabel yang tertimpa. Berlaku pada deploy berikutnya.
    • ${{vars.KEY}} mengambil nilai gabungan dari set yang ditautkan (menggantikan ${{project.KEY}}).
    • Scope token API per environment set: set/env, set/* atau */env, misalnya token CI yang hanya boleh membaca staging.
    • aoox env links, env link dan env unlink mengatur daftar set yang dipakai sebuah aplikasi atau stack dari terminal.
    • Dialog Create token untuk token API, dengan satu baris petunjuk per bidang dan konfirmasi saat mencabut token.

    Berubah

    • Perubahan yang merusak: environment project digantikan variable set. Upgrade mengubah environment yang berisi variabel menjadi satu set per project dan menjaga tautan, riwayat, dan flag rahasia; ${{project.KEY}} ditulis ulang menjadi ${{vars.KEY}}; scope token environments menjadi variableScopes. Backup dulu, perbarui API, dashboard, dan CLI bersamaan, lalu periksa tautan.
    • Environment terlindungi hanya untuk owner dan admin instance (sebelumnya admin project juga bisa).
    • aoox env dan aoox run bekerja pada set: pilih dengan --set dan --env; aoox run memakai set yang ditautkan berurutan lalu env aplikasi, seperti saat deploy. Perbarui CLI bersama panel.
    • Disk Docker pindah ke halaman Docker sebagai strip ringkas dengan Details dan Clean now; halaman Infrastructure terpisah dihapus.
    • Halaman backup instance, kartu update, dan kartu panel domain dirapikan, dan ikon stepper deploy kini sejajar.
  9. v0.1.0-alpha.9

    alpha

    Baru

    • Environment project (development, staging, production): setiap project punya environment dengan variabel terenkripsi; aplikasi dan stack ditautkan ke satu environment dan ${{project.KEY}} diambil darinya. production dilindungi: hanya admin project yang bisa menampilkan, mengubah, atau menautkan ke sana.
    • Riwayat, restore, bandingkan, dan promosikan variabel: tiap perubahan environment tersimpan sebagai versi (siapa, kapan, nama variabel yang berubah) dan bisa dipulihkan; dua environment bisa dibandingkan per variabel dan variabel bisa disalin dari satu ke yang lain.
    • Tanda Rahasia per variabel: variabel rahasia selalu disamarkan di log deployment, output job, dan notifikasi; nama seperti password, token, atau key otomatis ditandai.
    • aoox env dan aoox run: list, pull, push, set, unset, history, diff, dan promote dari terminal, plus aoox run -- <perintah> yang menjalankan perintah dengan variabel sebuah environment tanpa menulisnya ke disk.
    • API token bisa dibatasi ke environment tertentu: misalnya token CI yang hanya boleh membaca development.
    • Peringatan port container: bila image mendeklarasikan port EXPOSE tetapi Container port bukan salah satunya, log deployment dan tab Pengaturan serta Domain memperingatkan (sumber umum "Bad Gateway"), dengan tombol sekali klik untuk memakai port yang benar.
    • aoox registry build --push: build dan push image dalam satu langkah.

    Berubah

    • Env bersama project pindah ke production: upgrade menyalin env bersama lama ke environment production dan menautkan semua aplikasi dan stack ke sana, jadi deploy berjalan seperti sebelumnya. Aplikasi atau stack baru yang dibuat non-admin dimulai di development.
    • Ekspor project tidak lagi selalu menyertakan env bersama: variabel environment hanya ikut diekspor dengan database passwords (khusus owner).
    • Layar update lebih jelas: overlay penuh layar dengan langkah dan timer saat panel diperbarui, dan tidak lagi macet setelah "Apply update".
    • Halaman 404 situs ini kini memakai ilustrasi yang sama dengan panel.

    Diperbaiki

    • Mengubah Container port aplikasi yang berjalan kini langsung berlaku: sebelumnya hanya tersimpan sehingga proxy tetap ke port lama ("Bad Gateway") sampai deploy berikutnya; aplikasi yang dihentikan memakai port baru saat dinyalakan.
    • Impor project berisi stack compose tidak lagi gagal dengan 500, dan pesan error CLI memakai tanda ❌ yang tampil benar di Windows Terminal.
  10. v0.1.0-alpha.8

    alpha

    Baru

    • Ganti nama dan email akun: di Pengaturan, Akun, tombol Edit profil mengubah nama dan email Anda; password saat ini hanya diminta saat email berubah. Owner juga bisa mengubah nama dan email anggota lain dari tab Tim.
    • aoox registry build dan aoox registry push: bangun image dari ./Dockerfile dengan nama dan versi, lalu kirim ke registry lokal aoox dengan satu perintah. Versi yang sudah ada di registry ditolak dengan pesan yang jelas.
    • aoox tanpa argumen menunjukkan koneksi: alamat dashboard, API, dan registry yang sedang dipakai CLI, plus peringatan satu baris saat versi CLI lebih lama dari panel.

    Berubah

    • Perubahan besar di CLI: aoox update kini memperbarui CLI itu sendiri. Pembaruan panel (aoox-api dan aoox-web) pindah ke aoox update panel.
    • aoox login cukup dengan alamat dashboard: CLI menemukan alamat API sendiri, dan pesan error koneksi kini menjelaskan apa yang salah. Dialog token API baru menampilkan perintah login yang siap disalin.
    • Halaman aplikasi, database, compose, dan proyek ditata ulang: kartu header dengan status dan tombol utama, judul bagian di tiap tab, daftar berupa tabel dengan tombol "+ Tambah" yang membuka dialog, dan tombol hapus pindah ke kartu Zona berbahaya.
    • Integrasi punya grup sendiri di sidebar: kredensial Git, Notifikasi, Tujuan backup, Secret manager, Penyedia DNS, dan Sertifikat SSL kini satu halaman masing-masing.
    • Tampilan lebih seragam: semua tab memakai ikon dan garis bawah, menu pilihan terbuka di bawah kolomnya, teks terminal lebih proporsional, dan menu SSH terminal di Infrastruktur kini bernama Akses terminal.
    • Membuka alamat API langsung kini menampilkan JSON berisi nama dan versi API yang berjalan, bukan teks "Hello World!".

    Diperbaiki

    • Logo template berwarna tidak lagi terbalik warnanya di mode gelap; hanya logo hitam yang dibalik.
  11. v0.1.0-alpha.7

    alpha

    Baru

    • Dashboard dua bahasa: seluruh panel kini berbahasa Inggris dengan terjemahan Bahasa Indonesia. Ganti bahasa dari menu pengguna di sidebar; pilihan diingat di browser, dan notifikasi di kotak masuk ikut bahasa yang aktif. Dokumentasi dan situs ini juga English-first, dengan terjemahan Indonesia di /id.
    • Integrasi Cloudflare DNS: hubungkan token API Cloudflare di Pengaturan, Integrasi, lalu aoox membuatkan record A/AAAA untuk domain aplikasi, dengan opsi proxied (awan oranye). Proxy juga bisa memakai ACME DNS-01 untuk sertifikat wildcard, termasuk satu wildcard untuk preview pull request. Token disimpan terenkripsi dan tidak pernah ditampilkan lagi.
    • Peringatan ambang sumber daya: aturan CPU dan memori opsional per aplikasi dan per database, dengan ambang dan durasi sendiri. Notifikasi dikirim saat terlampaui, diingatkan berkala, dan dikirim lagi saat kembali normal.
    • Mode perawatan per aplikasi: satu saklar menampilkan halaman "sedang dalam perawatan" (HTTP 503) di semua domain aplikasi, dengan pesan yang bisa Anda tulis, sementara container tetap berjalan.
    • Halaman Docker di sidebar: lihat container, image, volume, dan jaringan di host atau server remote, lihat log, serta start/stop/restart/hapus container yang bukan milik aoox. Resource milik aoox dilindungi dari tindakan di sini.
    • Editor konfigurasi Traefik dinamis (Infrastruktur, Reverse proxy) dengan preset (basic auth, header keamanan, rate limit, IP allowlist, redirect www) dan middleware per domain. Berkas yang ditolak Traefik dikembalikan otomatis ke versi sebelumnya.
    • Terminal lebih mudah disiapkan: tombol "Authorize automatically" memasang kunci SSH terminal di host dalam satu klik, dan aoox install kini menyiapkan kunci itu sendiri serta memakai pengguna sudo sebagai user SSH default.
    • Progres deploy, kotak masuk notifikasi, dan daftar langkah awal: stepper deploy dengan durasi tiap langkah, lonceng notifikasi dengan penanda belum dibaca, dan checklist untuk owner baru. Command palette (Ctrl+K) melompat ke halaman, project, dan resource.
    • Dokumentasi baru untuk Cloudflare DNS, konfigurasi proxy, halaman Docker, peringatan sumber daya, dan mode perawatan, dalam bahasa Inggris dan Indonesia.

    Berubah

    • Viewer project hanya melihat: halaman project (domain, deploy, mount, backup volume, job, webhook, stack) tidak lagi menampilkan tombol yang pasti ditolak API dengan 403.
    • Tampilan lebih rapi: viewer log bersama dengan warna ANSI dan pencarian, grafik metrik halus dengan tooltip, status berupa titik berwarna, status dan tombol di bawah tab pada halaman aplikasi dan database, serta menu pengguna di dasar sidebar.
    • Memindahkan aplikasi ke server lain kini ikut membawa sertifikat SSL kustomnya dan membersihkan middleware yang tidak ada di proxy tujuan. Pesan error autentikasi SSH terminal menyebut akun yang harus dipakai.

    Diperbaiki

    • Menyimpan pengaturan di Infrastruktur, Environment tidak lagi menampilkan "Cannot reach the server" padahal perubahan berhasil diterapkan.
    • Petunjuk environment stack compose kembali menampilkan daftar referensi database, dan error koneksi log menampilkan kalimat, bukan kunci mentah.
  12. v0.1.0-alpha.6

    alpha

    Baru

    • Sertifikat SSL kustom untuk domain aplikasi: unggah sertifikat sendiri (CA perusahaan, wildcard beli, Cloudflare Origin CA) beserta kunci privatnya di Pengaturan, Integrasi, lalu pilih per domain di tab Domain sebagai ganti Let's Encrypt. Kunci disimpan terenkripsi dan tidak pernah ditampilkan lagi, pembaruan tidak perlu restart, dan sertifikat yang hampir atau sudah kedaluwarsa memicu notifikasi.
    • Admin UI database sekali klik: pasang Adminer, phpMyAdmin, pgAdmin, Mongo Express, Redis Commander, atau DbGate di samping database terkelola, dalam container sendiri dengan akses lewat domain dan/atau IP & port.
    • Kartu Aktivitas terakhir di dashboard (owner/admin) menampilkan 10 entri audit log terbaru dengan teks aksi yang mudah dibaca, dan setiap rute yang dicatat API kini punya teks tersendiri.
    • Template Excalidraw (template satu-klik ke-15): papan tulis open source sebagai klien statis tanpa database, dengan image yang dikunci pada digest.
    • Dokumentasi baru untuk sertifikat SSL kustom dan Admin UI database, serta pembaruan halaman template, dashboard, dan mount, dalam bahasa Indonesia dan Inggris.

    Berubah

    • Ukuran teks seragam di seluruh panel: teks biasa 12 px, judul kartu 13 px, dan field tetap 16 px di layar sentuh agar iOS tidak memperbesar halaman. Logo sidebar kini memenuhi kotaknya.
    • Semua konfirmasi hapus memakai satu dialog yang sama (bukan lagi pop-up browser), dan melepas mount menawarkan dua pilihan jelas: lepas saja, atau lepas dan hapus volume.
    • Tab Pengaturan, Domain, Webhook, dan Environment kini selebar konten; form Pengaturan menjadi dua kolom di layar lebar. Tambah dan hapus database tambahan pindah ke tab Ringkasan.

    Diperbaiki

    • Mengubah pengaturan aplikasi saat deployment berjalan tidak lagi dibatalkan diam-diam ketika deployment selesai, dan menghapus aplikasi kini ikut menghapus container preview pull request-nya.
    • Membuat database dengan port host yang sudah dipakai kini ditolak di awal dengan pesan jelas, bukan berakhir error.
    • Mengganti sertifikat kustom tidak lagi memunculkan galat sementara "private key does not match" di proxy.
  13. v0.1.0-alpha.5

    alpha

    Baru

    • Root directory untuk monorepo: aplikasi bisa membangun satu subfolder repo (mis. apps/web) untuk Dockerfile, Nixpacks, Railpack, dan situs statis, termasuk preview pull request. Path Dockerfile dan folder output dihitung dari folder itu, dan folder yang salah menggagalkan deployment dengan pesan jelas tanpa menyentuh container yang berjalan.
    • Opsi webhook deploy hanya bila folder berubah: push yang hanya menyentuh folder lain dijawab ignored. Bila aoox tidak bisa memastikan (tanpa daftar file, merge commit, 20 commit atau lebih, force push), deploy tetap berjalan.
    • Monitor HTTP per aplikasi (tab Monitor): pemeriksaan path dengan interval dan batas kegagalan, uptime 24 jam/7 hari, latensi rata-rata dan p95, grafik 24 jam, riwayat insiden, dan notifikasi saat down dan pulih. Host selalu diturunkan dari aplikasi, bukan dari input pengguna.
    • Pemantauan server remote: metrik CPU, memori, dan jaringan aplikasi di server remote (live dan riwayat), notifikasi saat container mati, status terjangkau/tidak terjangkau di daftar server, dan notifikasi saat server tidak terjangkau serta saat pulih.
    • Template satu-klik bertambah dari 6 menjadi 14: Vaultwarden, Umami, Grafana, Metabase, Directus, Mattermost, Nextcloud, dan Odoo Community (edisi Community, LGPLv3). Semua memakai tag image yang dikunci, health check, dan password yang dibuat otomatis.
    • Kartu aplikasi, stack, dan database di halaman project menampilkan alamat untuk membukanya (domain atau host:port), dan aplikasi menampilkan root directory-nya di header.
    • Sumber secret eksternal (Infisical) untuk env aplikasi: daftarkan koneksi sekali di Pengaturan, Integrasi, lalu pilih project, environment, dan path di aplikasi. Secret disuntikkan saat container dibuat, semuanya (sync) atau lewat referensi ${{secret.KEY}}. Tidak disimpan di aoox, nilainya disensor dari log, dan preview pull request tidak ikut memakainya.
    • Halaman aplikasi punya tab Environment tersendiri, berisi editor env dan sumber secret.

    Berubah

    • Radius sedang di seluruh panel dan situs, ikon menggantikan panah → di teks, kartu katalog template satu tinggi, dan dialog Buat tabel kini rata dengan kolomnya. Field dan tombol dalam satu baris memiliki tinggi yang sama.
    • Header halaman aplikasi, database, compose, dan project tidak lagi meluap di layar ponsel, dan deretan tab bisa digeser bila lebih lebar dari layar.
    • Metadata proyek dan tautan antar situs (aoox.dev, GitHub, npm, Docker Hub) dirapikan agar mudah ditemukan; tidak ada perubahan perilaku.
    • Form Aplikasi baru dan Pengaturan kini berbentuk kartu per topik (Sumber, Build, Jaringan, dan seterusnya), jadi lebih mudah dipindai.

    Diperbaiki

    • docker-compose.dist.yml kini meneruskan API_IMAGE, WEB_IMAGE, WEBHOOK_VERIFY_GITHUB_IP, dan PREVIEW_DOMAIN ke container api. Instalasi lama menerimanya lewat aoox reinstall, bukan aoox update.
    • /favicon.ico tidak lagi 404 di panel dan situs, dan favicon kini memenuhi seluruh kanvas agar tampil benar saat dipotong bulat oleh mesin pencari.
  14. v0.1.0-alpha.4

    alpha

    Baru

    • Tombol Update tersedia di bagian bawah sidebar (khusus owner): server memeriksa versi aoox terbaru di Docker Hub secara berkala dan tombolnya membuka halaman Update aoox. Tidak muncul untuk instalasi dengan tag yang dikunci, dan diam saja tanpa akses internet.
    • aoox reinstall untuk memperbaiki atau menyegarkan instalasi yang sudah ada tanpa kehilangan data, dan installer CLI tanpa Node.js (curl -fsSL https://aoox.dev/install-cli.sh | sh) untuk Linux dan macOS.
    • Bar progres navigasi di bagian atas layar dan kerangka (skeleton) halaman saat berpindah halaman, jadi sidebar dan navbar tidak ikut berkedip.
    • Situs ini punya halaman Changelog (ID dan EN) dan SEO yang lengkap: sitemap, canonical, hreflang, Open Graph, dan <html lang> yang benar per bahasa.

    Berubah

    • Header sidebar memakai logo aoox yang sama dengan favicon dan menampilkan versi aoox yang sedang berjalan (mis. v0.1.0-alpha.4) sebagai pengganti teks statis.
    • Situs statis: form pembuatan mengisi Port container 80, dan nginx menampilkan 404.html milik repo untuk path yang tidak ada.

    Diperbaiki

    • Mengubah Port host pada aplikasi yang sedang berjalan sebelumnya tidak berpengaruh sampai deploy berikutnya; kini langsung diterapkan (container dibuat ulang tanpa build), dan bila gagal port lama dipulihkan.
    • Terminal gagal dengan TERMINAL_SSH_USER is not set pada instalasi lama — kini memakai root sebagai default, dan kegagalan koneksi menampilkan tautan ke pengaturan yang relevan.
    • Tombol Terapkan update kini meminta konfirmasi, menampilkan progres selama panel restart, dan memuat ulang halaman sendiri — tanpa error merah yang menyesatkan.
  15. v0.1.0-alpha.3

    alpha

    Baru

    • Console interaktif untuk aplikasi: shell docker exec -it ke container aplikasi langsung dari dashboard (juga untuk task Swarm dan server remote).
    • Engine database baru Valkey dan MongoDB, plus varian PostgreSQL (pgvector, PostGIS, TimescaleDB) — lengkap dengan backup, restore, dan data browser.
    • Notifikasi error aplikasi yang dideteksi dari log (opt-in), dengan switch "Abaikan error di log" per aplikasi.
    • Pemakaian resource per project (CPU, RAM, jaringan) tampil di kartu project.
    • Hapus image dari registry lokal sampai tuntas, dengan peringatan bila image masih dipakai aplikasi.
    • Membuat aplikasi, database, dan stack compose kini di halaman sendiri, bukan dialog.

    Berubah

    • Tampilan: font Inter dan judul dengan letter-spacing rapat di dashboard dan situs ini.

    Diperbaiki

    • Membuat aplikasi dengan build type selain Dockerfile (Nixpacks, Railpack, situs statis) atau sumber image gagal 400 — sudah diperbaiki.
    • Toggle notifikasi "DNS domain bermasalah" akhirnya benar-benar tersimpan.
    • Registry lokal gagal (Invalid URL) bila REGISTRY_INTERNAL_URL di .env dikosongkan.
  16. v0.1.0-alpha.2

    alpha

    Baru

    • Halaman Environment (owner): ubah sebagian .env.dist panel dari dashboard tanpa SSH.
    • Domain panel dan domain aplikasi kini memasang reverse proxy otomatis bila belum ada, dan menampilkan langkah troubleshooting (DNS, firewall, ACME).
    • Cek bentrok port host saat membuat/mengubah aplikasi — bentrok terdeteksi di awal, bukan gagal diam-diam saat deploy.
    • Riwayat deployment mencatat pemicunya (manual, webhook, auto-update) beserta commit, dan daftar deploy diperbarui realtime.
    • Notifikasi deploy dimulai (opt-in) dan badge "deploy…" di kartu project.
    • Langkah Akses (IP & port / Domain / Nanti saja) saat membuat aplikasi, plus pemilih image dari registry.
    • CLI: aoox install mengisi TERMINAL_SSH_USER=root; aoox domain set mencetak langkah troubleshooting.

    Diperbaiki

    • Menyimpan Pengaturan aplikasi ditolak (imageRef must be an…) untuk aplikasi non-image — diperbaiki.
    • URL webhook di dashboard menampilkan localhost walau domain API sudah diatur.
    • Update panel dan domain panel tidak lagi menghilangkan file compose override yang dibuat dashboard.
  17. v0.1.0-alpha.1

    alpha

    Baru

    • Domain panel: pasang domain kustom (HTTPS otomatis) untuk dashboard dan API dari Settings atau aoox domain set.
    • Update aoox dari dashboard atau aoox update [--apply]: cek dan terapkan versi baru panel.
    • Domain kustom untuk registry lokal (aoox registry domain) dan opsi penyimpanan S3 untuk isi registry.
    • Installer satu baris: curl -fsSL https://aoox.dev/install.sh | sh.
    • Dokumentasi lengkap dalam bahasa Inggris (/en/docs/*) di samping Bahasa Indonesia.
    • CI (lint, build, test) di setiap repo pada pull request dan push ke main.

    Diperbaiki

    • Prefix API token tersimpan 11 karakter, bukan 10 sesuai dokumentasi.
    • Salinan compose yang dibundel di CLI tertinggal dari aoox-api, sehingga aoox install bisa memasang konfigurasi basi.
  18. v0.1.0-alpha.0

    alpha

    Baru

    • Rilis publik alpha pertama: PaaS self-hosted (API NestJS + dashboard Next.js + CLI) yang berjalan di atas Docker.
    • Deploy dari Git (Dockerfile, Nixpacks, Railpack, situs statis) atau dari image, dengan log realtime, rollback, webhook, dan preview pull request.
    • Managed database (PostgreSQL, MySQL, MariaDB, Redis) dengan data browser, backup terjadwal, dan tujuan S3.
    • Stack Docker Compose, template satu klik (WordPress, Ghost, n8n, Uptime Kuma, MinIO, Gitea), dan jobs terjadwal.
    • Reverse proxy Traefik dengan HTTPS otomatis, registry Docker sendiri, server remote lewat SSH, dan Docker Swarm.
    • Autentikasi JWT, 2FA TOTP, anggota project berperan, API token ber-scope, dan audit log.
    • Monitoring dengan riwayat metrik, notifikasi (Telegram, Slack, Discord, email, webhook), pembersihan disk, dan ekspor/impor project.
    • CLI aoox (login, link, deploy, install, whoami) dan situs dokumentasi ini.