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
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
s3driver 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-appswajib di-setpublic-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
s3wajib pakaiuse_path_style_endpoint=true(QNAP tidak support virtual hosted-style) OSS_SECRET_ACCESS_KEYhanya ada di.envserver — tidak di repo