GeoNetAgent, LDAPWeb, server-audit, server-connection
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1.4 KiB

ADR-0004 — QNAP OSS untuk File Storage

Tanggal: 2026-xx-xx Status: Accepted


Konteks

geonet-console perlu storage untuk avatar user. Awalnya disimpan di filesystem lokal Docker container, tapi container rebuild akan menghapus semua file.

Keputusan

Menggunakan QNAP QuObjects (OSS) — S3-compatible object storage di 10.100.1.10:8010. Laravel menggunakan disk oss dengan driver s3 + use_path_style_endpoint=true.

Alasan

  • QNAP TS-932X sudah ada di infrastruktur (tidak perlu beli)
  • S3-compatible → bisa pakai Laravel s3 driver standar
  • File persists meski container rebuild atau crash
  • URL publik via Nginx proxy (file.gisportal.id/super-apps/) tanpa expose QNAP langsung

Alternatif Ditolak

  • Docker volume lokal: File hilang saat image recreate, tidak scalable
  • NFS mount: Lebih kompleks, risiko hanging mount
  • Cloud S3 (AWS, Cloudflare R2): Biaya, data harus internal
  • Minio: Perlu server/container tambahan, QNAP sudah ada

Konsekuensi

  • Bucket super-apps wajib di-set public-read (X-Container-Read: .r:*,.rlistings)
  • ACL bisa ter-reset → monitoring manual atau script cek berkala
  • Format access key: <storage-space>:<key-id> (format QNAP)
  • Driver s3 wajib pakai use_path_style_endpoint=true (QNAP tidak support virtual hosted-style)
  • OSS_SECRET_ACCESS_KEY hanya ada di .env server — tidak di repo