8.4 KiB
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
- Baca
Workspace-Context.md→ rules, policy, dan Repository Registry - Baca
docs/context-index.mdpada repo yang relevan dengan tugas:- FE PWA →
mysupperapps_FE_PWA/docs/context-index.md - Backend Laravel →
server-connection/docs/context-index.md(lalugeonet-console/context-index.mdjika spesifik console) - Agent/Collector →
GeoNetAgent/docs/context-index.md
- FE PWA →
- Baca
ARCHITECTURE.md→ 7 diagram Mermaid arsitektur lengkap - Baca
backlog.md→ roadmap semua fase + detail teknis tiap microservice - Baca
server-audit/host.md→ daftar server, SSH command, catatan ops - Baca
server-audit/deploy-log.md→ log semua deploy yang sudah dilakukan
Jangan gunakan
context-index.mddi root atau.cursor/— file tersebut deprecated; gunakandocs/context-index.mdper repo.
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.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+FeedbackDialogfloating di semua halaman - Backend:
POST/GET/PATCH /api/v1/feedbackdi geonet-console - DB: tabel
feedbacksudah ter-migrate di production - Docs:
mysupperapps_FE_PWA/docs/features/feedback.md - Catatan deploy: container geonet-console tidak mount source dari host → wajib
docker cpuntuk 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 viaid_ed25519_geonet_proxmox10.100.1.52(ArcGIS DS Object) → passwordless viaid_ed25519_geonet_proxmox10.100.1.101&10.100.1.102(Proxmox) → passwordless
4. USB Passthrough Proxmox
- VM 103 di
10.100.1.102→ PCI controller00: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
/ticketdi sidebar sudah ada, tinggal disambungkan
Langkah deploy Zammad:
- Hapus dangling images untuk tambah ruang:
docker image prune -f(+7.9 GB) - Buat Docker stack di
/opt/stacks/zammad - Setup domain
ticket.gisportal.iddi Nginx10.100.1.24 - Konfigurasi Zammad: LDAP ke
10.100.1.40, group mapping, SLA - Integrasi ke geonet-console: feedback → auto-create tiket Zammad
- Buat halaman
/ticketdi FE
Detail teknis Zammad → backlog.md section "Fase 3 — Ticketing"
Akses Server (SSH)
# 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)
# Copy file ke container
scp -o "MACs hmac-sha1" -P 22 <file-lokal> root@10.100.1.24:/opt/stacks/<service>/path/
ssh -m hmac-sha1 root@10.100.1.24 -p 22 "docker cp /opt/stacks/<service>/path/<file> <container>:/var/www/html/path/<file>"
ssh -m hmac-sha1 root@10.100.1.24 -p 22 "docker exec <container> php artisan route:clear"
⚠️ Perubahan hilang jika container di-recreate/rebuild
Cara B — rebuild image (permanen)
scp -o "MACs hmac-sha1" -P 22 <file> root@10.100.1.24:/opt/stacks/<service>/path/
ssh -m hmac-sha1 root@10.100.1.24 -p 22 "cd /opt/stacks/<service> && 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 & Repository Registry ⭐
├── SESSION-HANDOVER.md ← File ini
│
├── server-audit/
│ ├── host.md ← Daftar server + SSH commands
│ └── deploy-log.md ← Log semua deploy
│
├── GeoNetAgent/ ← Agent PowerShell + collector FastAPI
│ └── docs/context-index.md ← Entry point AI (repo agent)
│
├── mysupperapps_FE_PWA/ ← Frontend Next.js (repo Git terpisah, .gitignored di root)
│ ├── docs/context-index.md ← Entry point AI untuk FE ⭐
│ ├── context-index.md ← Deprecated → docs/context-index.md
│ ├── CHANGELOG.md ← Changelog FE (terbaru: v1.4.0 feedback)
│ └── docs/
│ └── features/feedback.md ← Docs feature feedback
│
└── server-connection/ ← Backend Laravel monorepo
├── docs/context-index.md ← Entry point AI (repo backend) ⭐
└── geonet-console/ ← Source code Laravel console
├── context-index.md ← Entry point AI (sub-proyek geonet-console)
├── routes/api.php
├── 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:
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:
s3denganuse_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