- Remove app submodules (hub/scraper/tools/llm-api/plugins) — apps are now standalone repos with their own flake.nix + deploy.yml CI - Delete monorepo CI: nix-build.yml matrix, update-submodule.yml, lint, security, flakehub-publish — replaced by infra-only caddy-deploy.yml - Sync Caddyfile.prod with live /etc/caddy/Caddyfile (add wiki. + mcp. blocks) - Prune legacy Docker/Traefik/Dapr/NATS/otel + scripts/root tooling - Docs: rename ADR 0001 superseded, add ADR 0003 (repo rename + split CI), update add-new-app, infra README, troubleshooting
1.6 KiB
1.6 KiB
Menambahkan Service Baru / Subdomain
Panduan untuk menambahkan service baru di ekosistem asepharyana/infra (2026-08-28+, pasca monorepo).
Prinsip
- Aplikasi hidup di repo sendiri (
hub,scraper,tools,llm-api) denganflake.nix+.github/workflows/deploy.ymlmandiri. Repo infra TIDAK berisi kode app. - Repo infra (
asepharyana/infra) hanya mengatur reverse proxy & config VPS.
Langkah
- Buat repo aplikasi (contoh pola:
asepharyana/scraper). - Tambahkan
flake.nixdi repo app — derivasi Nix (lihat template di repo app yang ada: Next.js/bun atau Rust/cargo). Nama paket = nama unit systemd. - Tambahkan
.github/workflows/deploy.yml(polanix build .#<pkg>→nix copy ssh://→nix-env --profile /nix/var/nix/profiles/<pkg> --set→systemctl restart <pkg>). Secrets yang dibutuhkan:SSH_PRIVATE_KEY,VPS_HOST,VPS_USER. - Di VPS: buat user systemd + unit (mis.
/etc/systemd/system/<app>.service,ExecStart=/usr/local/bin/bws-exec <app> /nix/var/nix/profiles/<app>/bin/<app>), pastikan app jalan di port lokal. - Tambah site block di
infra/caddy/Caddyfile.prod(polaimport proxy <port>), push kemain→ CIcaddy-deploy.ymlsync + reload + verifikasi rute. - (Opsional) Tambah unit ke
MONITORED_UNITSdi hub dashboard (repoasepharyana/hub,src/app/api/dashboard/route.ts).
Contoh site block Caddy
nama-app.asepharyana.my.id {
import proxy <PORT>
}
Verifikasi
# Dari local
curl -s -o /dev/null -w '%{http_code}\n' https://nama-app.asepharyana.my.id/
# Dari VPS
systemctl status <app>