# Session Handover — Super Apps GIS Portal > **Dibuat:** 2026-07-01 > **Untuk:** AI Agent / Developer yang melanjutkan pekerjaan > **Status terakhir:** Feedback feature selesai, Zammad siap di-deploy --- ## BACA INI DULU SEBELUM APAPUN 1. Baca `Workspace-Context.md` → rules dan policy workspace 2. Baca `ARCHITECTURE.md` → 7 diagram Mermaid arsitektur lengkap 3. Baca `backlog.md` → roadmap semua fase + detail teknis tiap microservice 4. Baca `server-audit/host.md` → daftar server, SSH command, catatan ops 5. Baca `server-audit/deploy-log.md` → log semua deploy yang sudah dilakukan --- ## Ringkasan Proyek **Super Apps GIS Portal** adalah employee portal internal berbasis PWA untuk organisasi GIS. | Komponen | URL | Stack | Status | |----------|-----|-------|--------| | Frontend PWA | `my.gisportal.id` | Next.js 16 + React 19 | ✅ Live | | Backend API | `console.gisportal.id` | Laravel 11 | ✅ Live | | Asset/Agent Service | `agent.gisportal.id` | FastAPI | ✅ Live | | Storage | `file.gisportal.id` | QNAP OSS S3 | ✅ Live | | Auth | `10.100.1.40` | Active Directory LDAP | ✅ Live | | Ticketing | `ticket.gisportal.id` | Zammad | ⏳ Belum deploy | | Mail | `mail.gisportal.id` | Mailcow | ⏳ Belum deploy | **Semua Docker di server `10.100.1.24`.** --- ## Apa yang Sudah Selesai (sesi ini: 1 Jul 2026) ### 1. Feature Feedback (Bug Report & Saran) - **FE:** `FeedbackButton` + `FeedbackDialog` floating di semua halaman - **Backend:** `POST/GET/PATCH /api/v1/feedback` di geonet-console - **DB:** tabel `feedback` sudah ter-migrate di production - **Docs:** `mysupperapps_FE_PWA/docs/features/feedback.md` - **Catatan deploy:** container geonet-console tidak mount source dari host → wajib `docker cp` untuk update file tanpa rebuild ### 2. Disk Cleanup Server 10.100.1.24 - Disk sebelumnya: **98% penuh** (1.3 GB free) - Root cause: Docker build cache 45.29 GB - Tindakan: `docker builder prune -af` - Hasil: **50% (26 GB free)** — cukup untuk deploy Zammad ### 3. SSH Key Setup - `10.100.1.51` (ArcGIS Base Dev) → passwordless via `id_ed25519_geonet_proxmox` - `10.100.1.52` (ArcGIS DS Object) → passwordless via `id_ed25519_geonet_proxmox` - `10.100.1.101` & `10.100.1.102` (Proxmox) → passwordless ### 4. USB Passthrough Proxmox - VM 103 di `10.100.1.102` → PCI controller `00:1a.0` (USB 2.0 bus 1) di-passthrough ### 5. GeoNetAgent v0.1.12 - Tambah scheduled task shutdown (`GeoNetAgent-Report-Shutdown`) - Deploy ke `agent.gisportal.id/install/` --- ## Yang Harus Dikerjakan Selanjutnya ### PRIORITAS UTAMA: Deploy Zammad **Kenapa Zammad dulu?** - Disk sudah cukup (26 GB free, Zammad butuh ~15 GB) - RAM cukup (9.4 GB available) - Feedback feature sudah live tapi belum ada yang handle tiket - Permission `ticketing.*` sudah ada di sistem, tinggal diaktifkan - Halaman `/ticket` di sidebar sudah ada, tinggal disambungkan **Langkah deploy Zammad:** 1. Hapus dangling images untuk tambah ruang: `docker image prune -f` (+7.9 GB) 2. Buat Docker stack di `/opt/stacks/zammad` 3. Setup domain `ticket.gisportal.id` di Nginx `10.100.1.24` 4. Konfigurasi Zammad: LDAP ke `10.100.1.40`, group mapping, SLA 5. Integrasi ke geonet-console: feedback → auto-create tiket Zammad 6. Buat halaman `/ticket` di FE **Detail teknis Zammad** → `backlog.md` section "Fase 3 — Ticketing" --- ## Akses Server (SSH) ```bash # App server (semua app Docker) ssh -m hmac-sha1 root@10.100.1.24 -p 22 # Database ssh -m hmac-sha1 root@10.100.1.25 -p 22 # Active Directory / LDAP ssh -m hmac-sha1 Administrator@10.100.1.40 -p 22 # Dev Proxmox ssh root@10.100.1.101 # Opr Proxmox ssh root@10.100.1.102 # ArcGIS Base (Dev) ssh dev51-base # atau: ssh Administrator@10.100.1.51 -p 22 # ArcGIS DS Object ssh dev13-object # atau: ssh Administrator@10.100.1.52 -p 22 # NAS QNAP ssh -i "$env:USERPROFILE\.ssh\id_ed25519" -o IdentitiesOnly=yes admin@10.100.1.10 -p 22 ``` --- ## Deploy ke Server (cara yang benar) Container geonet-console dan my-portal **tidak mount source dari host**. Ada 2 cara update: ### Cara A — docker cp (cepat, tidak permanen) ```bash # Copy file ke container scp -o "MACs hmac-sha1" -P 22 root@10.100.1.24:/opt/stacks//path/ ssh -m hmac-sha1 root@10.100.1.24 -p 22 "docker cp /opt/stacks//path/ :/var/www/html/path/" ssh -m hmac-sha1 root@10.100.1.24 -p 22 "docker exec php artisan route:clear" ``` > ⚠️ Perubahan hilang jika container di-recreate/rebuild ### Cara B — rebuild image (permanen) ```bash scp -o "MACs hmac-sha1" -P 22 root@10.100.1.24:/opt/stacks//path/ ssh -m hmac-sha1 root@10.100.1.24 -p 22 "cd /opt/stacks/ && docker compose up -d --build" ``` --- ## Struktur Repo Penting ``` app on git/ ├── ARCHITECTURE.md ← 7 diagram Mermaid (BACA INI) ├── backlog.md ← Roadmap + detail teknis semua fase ├── Workspace-Context.md ← Rules & policy untuk AI agent ├── SESSION-HANDOVER.md ← File ini │ ├── server-audit/ │ ├── host.md ← Daftar server + SSH commands │ └── deploy-log.md ← Log semua deploy │ ├── mysupperapps_FE_PWA/ ← Frontend Next.js (repo terpisah, .gitignored di root) │ ├── context-index.md ← Entry point AI untuk FE │ ├── CHANGELOG.md ← Changelog FE (terbaru: v1.4.0 feedback) │ └── docs/ ← Dokumentasi lengkap FE │ ├── features/feedback.md ← Docs feature feedback │ └── ... │ └── server-connection/ └── geonet-console/ ← Source code Laravel backend ├── context-index.md ← Entry point AI untuk backend ├── routes/api.php ← Semua API routes ├── app/Models/Feedback.php ├── app/Http/Controllers/Api/V1/FeedbackController.php └── database/migrations/2026_07_01_000001_create_feedback_table.php ``` --- ## Permission System (Ringkas) Permission dari LDAP group mapping di tabel `group_permissions`: | Group | Contoh Permission | |-------|------------------| | Domain Admins | Semua 17 permission | | IT-Admin | 13 permission | | IT-Staff | 11 permission | | Management | 9 permission | | Staff/HR | 6 permission | **Cara pakai di FE:** ```tsx import { usePermission } from '@/lib/permissions' const canManage = usePermission('ticketing.manage') ``` Permission tersedia: `profile.view`, `profile.edit`, `dashboard.view`, `cmdb.*`, `monitoring.view`, `ticketing.*`, `mail.view`, `asset_mgmt.*`, `geonet_agent.view`, `admin.*` --- ## Catatan Teknis Penting ### geonet-console - Container name: `geonet-console` - Path di server: `/opt/stacks/geonet-console/` - Path di container: `/var/www/html/` - **Build cache sudah dibersihkan** — rebuild pertama akan lebih lambat - Migration terbaru: `2026_07_01_000001_create_feedback_table` (sudah run) ### my-portal (Frontend) - Container name: `my-portal` - Path di server: `/opt/stacks/my-portal/` - Port: `8092 → 3000` - Build: Next.js standalone output di dalam Docker ### QNAP OSS Storage - Endpoint internal: `http://10.100.1.10:8010` - Bucket: `super-apps` - Public URL: `https://file.gisportal.id/super-apps/` - Driver Laravel: `s3` dengan `use_path_style_endpoint=true` ### Nginx Reverse Proxy - Config path: `/etc/nginx/conf.d/` - Reload: `nginx -s reload` --- ## Roadmap Ringkas ``` ✅ Auth + Profile + Asset Mgmt + Admin Permission ✅ GeoNet Agent v0.1.12 ✅ Feedback System (bug/saran) ⏳ Zammad (ticketing) ← NEXT ⏳ Content/Feed ← Bisa paralel ⏳ Mailcow (email server) ⏳ Push Notification ⏳ Mail UI ⏳ KPI Dashboard ``` Detail lengkap → `backlog.md`