# Decisions — Technology Stack > **Terakhir Diperbarui:** 2026-06-29 --- ## Backend — Laravel 12 (PHP 8.3) **Dipilih karena:** - Tim familiar dengan PHP/Laravel - Eloquent ORM + migration system matang - Built-in: auth, queue, mail, broadcast - Komunitas besar, LTS roadmap jelas **Ditolak:** - FastAPI (Python): Dipakai di GeoNetAgent — pilihan valid, tapi tim lebih familiar Laravel untuk portal - Node.js/Express: Less familiar, lebih cocok untuk real-time --- ## Database — PostgreSQL **Dipilih karena:** - Open source, tidak ada biaya lisensi - Support pgvector untuk Fase 4 (Ollama AI search) - JSON/JSONB support - Docker official image reliable **Ditolak:** - MySQL: Tidak support pgvector - SQL Server: Berlisensi, sudah ada hanya untuk GIS legacy --- ## Auth — LDAP Active Directory **Dipilih karena:** - Semua user IT sudah di AD - Single source of truth identity - Tidak perlu manage password terpisah --- ## File Storage — QNAP QuObjects (OSS) **Dipilih karena:** - Hardware sudah ada (QNAP TS-932X) - S3-compatible → Laravel `s3` driver standar - File persist lintas container rebuild --- ## AI Search — Ollama + pgvector (Fase 4) **Dipilih karena:** - Self-hosted, data tidak keluar jaringan internal - Ollama: mudah deploy + model management - pgvector: tetap di PostgreSQL yang sudah ada **Ditolak:** - OpenAI API: Data sensitif tidak boleh keluar, biaya berulang - Elasticsearch: Overkill untuk skala ini --- ## Monitoring — Zabbix **Dipilih karena:** - Sudah berjalan di 10.100.1.42 - Manage semua server + network **Prinsip:** Jangan duplikasi fungsi Zabbix di aplikasi custom. --- ## Infrastruktur Jaringan — MikroTik CCR2004 Sudah ada, dikelola via RouterOS scripts (`server/*.rsc`).