# Geonet Console (Dockge) Unified operations platform — database, LDAP, mail, API, audit. - **Folder:** `/opt/stacks/geonet-console` (migrasi dari `/opt/stacks/databaselist`) - **URL:** https://console.gisportal.id - **Legacy URL:** https://databaselist.gisportal.id (redirect setelah Fase 3) - **LDAP Users:** https://console.gisportal.id/ldap-users - **LDAP Groups:** https://console.gisportal.id/ldap-groups - **API Docs:** https://console.gisportal.id/api-docs - **API Clients:** https://console.gisportal.id/api-clients - **REST API:** https://console.gisportal.id/api/v1 - **Port host:** `127.0.0.1:8091` ## Deploy ```bash cd /opt/stacks/geonet-console cp .env.example .env # edit credentials docker compose up -d --build ``` Lihat `server/migrate-geonet-console.md` untuk migrasi tanpa downtime dari stack `databaselist`. ## PWA **Fase A:** manifest, service worker, offline page **Fase B:** - Banner **Install app** (Chrome `beforeinstallprompt` + petunjuk iOS Add to Home Screen) - Cache **stale-while-revalidate** untuk `/login` — UI tampil cepat saat koneksi lambat - `pwa-login-shell.js` — refresh CSRF token di background setelah shell cache dimuat Verifikasi: Chrome DevTools → Application → Manifest / Service Workers ## Keamanan - Login via **LDAP domain account** (grup Administrator wajib) - Forgot password LDAP: kirim link reset via SMTP dari `support@geonet.co.id` - Port hanya bind ke localhost - HTTPS via Nginx reverse proxy - Rate limit login (5 req/menit) dan general traffic - Security headers (HSTS, X-Frame-Options, dll.) ## Env penting | Variable | Keterangan | |----------|------------| | `APP_NAME` | Geonet Console | | `APP_URL` | https://console.gisportal.id | | `MSSQL_*` | Koneksi ke SQL Server | | `LDAP_*` | Koneksi Active Directory | Metadata aplikasi disimpan di **PostgreSQL Docker** (`databaselist_app` / volume `audit_pg_data` sampai rename DB Fase 3).