Konfigurasi Floci lewat environment variables: FLOCI_DEFAULT_REGION dan kawan-kawan, tabel translasi variabel LocalStack untuk migrasi drop-in, environment block compose lengkap, dan porting docker-compose lama hanya dengan env & image swap

Konfigurasi container yang baik adalah konfigurasi yang bisa di-commit. Sejak episode pertama kita menyentuh env vars di sela-sela topik; sekarang saatnya sistematis: daftar variabel penting Floci, dan yang lebih strategis — tabel translasi dari LocalStack yang membuat migrasi compose tim kalian hampir drop-in.
| Variabel | Default | Fungsi |
|---|---|---|
FLOCI_DEFAULT_REGION | us-east-1 | Region default resource baru |
FLOCI_STORAGE_MODE | tergantung build | memory / hybrid / wal / persistent (ep.15) |
FLOCI_DATA_DIR | /app/data | Lokasi state di dalam container |
FLOCI_PORT | 4566 | Port endpoint internal |
FLOCI_LOG_LEVEL | info | Verbosity log (debug untuk bedah request) |
Pola pakai di compose:
services:
floci:
image: floci/floci:1.5.15 # pin versi eksplisit
ports:
- "4566:4566"
environment:
FLOCI_DEFAULT_REGION: ap-southeast-1 # selaras region produksi tim
FLOCI_STORAGE_MODE: persistent # dev jangka panjang
FLOCI_LOG_LEVEL: debug # hanya saat debugging
volumes:
- floci-data:/app/data
volumes:
floci-data:Verifikasi cepat bahwa env diterima:
docker compose up -d && sleep 1
aws --endpoint-url=http://localhost:4566 s3api create-bucket \
--bucket cek-region --create-bucket-configuration LocationConstraint=ap-southeast-1 \
&& echo "region constraint diterima"Bagian paling strategis: Floci menyediakan mapping resmi agar compose lama tinggal ganti nama variabel.
| LocalStack | Floci | Catatan |
|---|---|---|
SERVICES=s3,dynamodb,... | tidak perlu — semua service aktif default | floci in-process, tak ada lazy loading per-service |
DEFAULT_REGION | FLOCI_DEFAULT_REGION | perilaku sama |
DATA_DIR | FLOCI_DATA_DIR + volume | pastikan volume mengikuti |
LOCALSTACK_HOST | hapus — endpoint langsung localhost:4566 | pola hostname beda arsitektur |
DEBUG=1 | FLOCI_LOG_LEVEL=debug | granularitas lebih baik |
GATEWAY_LISTEN=0.0.0.0:4566 | hapus — FLOCI_PORT cukup | single-port by design |
USE_SSL, LAMBDA_EXECUTOR, dsb. | tidak berlaku / otomatis | model eksekusi internal berbeda |
Note
Prinsip translasi: variabel yang mengatur "service apa saja yang jalan" hilang di floci (semua aktif), variabel infrastruktur (region, storage, port) berganti prefix ke FLOCI_*. Tabel resmi terbaru selalu rujuk docs.
/app/dataLayout internal yang perlu kalian tahu:
/app/data/
├── state/ # snapshot state services (persistent/hybrid)
├── wal/ # write-ahead log (mode WAL)
└── tmp/ # staging upload lambda zip, artifact sementaraAturan praktis: satu named volume untuk seluruh /app/data sudah cukup; bind-mount subfolder hanya bila butuh inspeksi manual. Jangan pernah bind-mount /app/data/tmp sebagai read-only — Lambda deployment butuh menulis di sana.
Target outline: porting docker-compose LocalStack lama ke floci hanya lewat env & image swap.
services:
localstack:
image: localstack/localstack
ports:
- "4566:4566"
environment:
SERVICES: s3,dynamodb,sqs,sns,lambda
DEFAULT_REGION: ap-southeast-1
DATA_DIR: /tmp/localstack/data
DEBUG: "0"
volumes:
- "./.localstack:/tmp/localstack/data"Checklist verifikasi post-migration:
export AWS_ENDPOINT_URL=http://localhost:4566
aws s3 mb s3://migrasi-ok && aws s3 ls # S3 OK
aws dynamodb list-tables # DynamoDB OK
aws sqs list-queues # SQS OK
# semua sukses tanpa ubah satu baris script aplikasi = migrasi selesaiPerhatikan betapa sedikitnya yang berubah: image swap + lima baris env. Inilah desain adopsi Floci menjawab krisis sunset LocalStack Community — biaya migrasi diminimalkan sampai level copy-paste.
Rangkuman episode ini:
FLOCI_./app/data (state/wal/tmp) dan aturan volume-nya.Episode 17 melengkapi konfigurasi lanjutan: multi-region & simulasi multi-account — dua lingkungan logis dalam satu instance floci. Sampai jumpa!