Deployment Overview¶
Gambaran deploy komponen ERP & pipeline data. Bukan blueprint infra cloud lengkap — merangkum apa yang ada di repo.
Topology deploy (typical)¶
flowchart TB
subgraph host [Server aplikasi / sic]
PM2[PM2: erp-backend, clickhouse-etl, migrasi-ui]
DC[Docker Compose CDC stack]
end
subgraph data_services [Data]
PG[(PostgreSQL erp)]
CH[(ClickHouse)]
end
subgraph external [Eksternal]
FB[Firebase]
TS[Tailscale ops]
end
PM2 --> PG
PM2 --> CH
DC --> PG
DC --> CH
FL[Flutter clients] --> PM2
FL --> FB
OPS[Operator] --> TS
TS --> PM2
Komponen & artefak deploy¶
| Komponen | Artefak | Start |
|---|---|---|
| PostgreSQL | Paket/managed — skema dari database/ddl, migrations/ |
psql migrasi, database/RUNBOOK |
| NestJS API | backend/dist — npm run build |
pm2 / systemd, port 3001 |
| CDC stack | database/cdc/docker-compose.yml | docker compose up -d |
| ClickHouse ETL | consumer_clickhouse.py |
pm2 restart clickhouse-etl |
| migrasi-ui | Python/FastAPI main.py | PM2, port 5000 (var) |
| Flutter | Store/build APK — config API URL | SETUP.md |
Urutan bootstrap lingkungan baru¶
- PostgreSQL:
00_init→01–04→11_logika(CLAUDE.md) - Buat tenant:
database/scripts/buat_tenant.sql - Migrasi tenant:
jalankan_migrasi_tenant.sh - (Opsional) ETL legacy → PG
- ClickHouse DDL:
migrations/clickhouse/V101+ - Initial load CH: SOP_INITIAL_LOAD
- CDC: compose + Debezium connector + publication
- Backend: env Firebase +
ERP_*URL + CH credentials - Verifikasi: CHECKLIST_SERVER.md
Environment variables (inti)¶
| Variabel | Pemakai |
|---|---|
ERP_MIGRASI_URL |
Migrasi DDL |
DATABASE_URL / pool tenant |
Backend runtime |
TENANT_SCHEMAS |
Consumer CDC |
KAFKA_BROKER |
Consumer |
CLICKHOUSE_* |
Consumer + Backend |
| Firebase service account | Backend auth |
Secret tidak disimpan di Git — gunakan secret manager prod (07).
CI / quality gate¶
- Lint + uji per workstream (07)
- Migrasi bernomor wajib di review PR
- Progress dashboard:
npm run progress— ONBOARDING-TEAM.md
Asumsi: Pipeline CI spesifik belum didokumentasikan terpusat di repo.
Produksi vs DEV¶
| Aspek | DEV | PRODUCTION |
|---|---|---|
| Kafka topic reset | Diizinkan (migrasi-ui) | Dilarang global |
| Debezium | Stop/recreate OK | Always-on; tenant-scoped change |
| API destructive ops | migrasi-ui | Control plane + approval |