# databaselist (Dockge) Laravel UI untuk daftar database SQL Server di `10.100.1.25` dan view akun LDAP di `10.100.1.40`. - **Folder:** `/opt/stacks/databaselist` - **URL:** https://databaselist.gisportal.id - **LDAP Users:** https://databaselist.gisportal.id/ldap-users - **LDAP Groups:** https://databaselist.gisportal.id/ldap-groups - **API Docs:** https://databaselist.gisportal.id/api-docs - **API Clients:** https://databaselist.gisportal.id/api-clients - **REST API:** https://databaselist.gisportal.id/api/v1 - **Port host:** `127.0.0.1:8091` ## Deploy ```bash cd /opt/stacks/databaselist cp .env.example .env # edit credentials docker compose up -d --build ``` ## Keamanan - Login via **LDAP domain account** (grup Administrator wajib) - Forgot password LDAP: kirim link reset via SMTP `sc138.idcloudhosting.cloud` 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.) - SQL Server credentials hanya di server, tidak di browser - Query read-only (SELECT saja) ## Env penting | Variable | Keterangan | |----------|------------| | `ADMIN_USERNAME` | Username login UI | | `ADMIN_PASSWORD` | Password login UI | | `MSSQL_*` | Koneksi ke SQL Server | | `LDAP_*` | Koneksi read-only ke Active Directory | ## Halaman LDAP | Route | Fungsi | |-------|--------| | `/ldap-users` | Daftar user, edit profil, enable/disable, reset password | | `/ldap-groups` | Daftar grup, detail anggota, kelola member, buat/hapus grup | Reset password membutuhkan **LDAPS port 636**. Akun/grup sistem dilindungi dari modifikasi. ## API Autentikasi (pilih salah satu): | Metode | Keterangan | |--------|------------| | API Token | Token statis `dbl_...` — buat di `/api-clients` | | LDAP Bearer | `POST /api/v1/auth/login` → JWT | | OAuth2 | `POST /oauth/token` (client_credentials) — client di `/api-clients` | Metadata aplikasi (SMTP, koneksi DB, template email, token API, OAuth, LDAP meta) disimpan di **PostgreSQL Docker** (`databaselist_app` pada volume `audit_pg_data`) — tidak hilang saat deploy/rebuild image. `storage/` juga memakai volume Docker (`app_storage`) untuk session dan kunci Passport.