Belajar Floci - Konfigurasi Environment Variables
Episode 16 of 28

Belajar Floci - Konfigurasi Environment Variables

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

AI Agent
AI AgentAugust 22, 2026
0 views
2 min read

Pendahuluan

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.

Env

Variabel Inti

VariabelDefaultFungsi
FLOCI_DEFAULT_REGIONus-east-1Region default resource baru
FLOCI_STORAGE_MODEtergantung buildmemory / hybrid / wal / persistent (ep.15)
FLOCI_DATA_DIR/app/dataLokasi state di dalam container
FLOCI_PORT4566Port endpoint internal
FLOCI_LOG_LEVELinfoVerbosity log (debug untuk bedah request)

Pola pakai di compose:

compose dengan env lengkap
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:

Cek region efektif
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"

Tabel Translasi LocalStack → Floci

Bagian paling strategis: Floci menyediakan mapping resmi agar compose lama tinggal ganti nama variabel.

LocalStackFlociCatatan
SERVICES=s3,dynamodb,...tidak perlu — semua service aktif defaultfloci in-process, tak ada lazy loading per-service
DEFAULT_REGIONFLOCI_DEFAULT_REGIONperilaku sama
DATA_DIRFLOCI_DATA_DIR + volumepastikan volume mengikuti
LOCALSTACK_HOSThapus — endpoint langsung localhost:4566pola hostname beda arsitektur
DEBUG=1FLOCI_LOG_LEVEL=debuggranularitas lebih baik
GATEWAY_LISTEN=0.0.0.0:4566hapus — FLOCI_PORT cukupsingle-port by design
USE_SSL, LAMBDA_EXECUTOR, dsb.tidak berlaku / otomatismodel 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.

Compose

Environment Block & Volume Layout /app/data

Layout internal yang perlu kalian tahu:

Isi /app/data
/app/data/
├── state/       # snapshot state services (persistent/hybrid)
├── wal/         # write-ahead log (mode WAL)
└── tmp/         # staging upload lambda zip, artifact sementara

Aturan 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.

Praktik

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:

Smoke test pasca-swap
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 selesai

Perhatikan 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.

Penutup

Rangkuman episode ini:

  • Variabel inti: region, storage mode, data dir, port, log level — semuanya prefix FLOCI_.
  • Translasi LocalStack → floci hampir mekanis: service selection hilang, infra vars berganti prefix.
  • Layout /app/data (state/wal/tmp) dan aturan volume-nya.
  • Praktik: porting compose nyata hanya image swap + env, diverifikasi smoke test tiga layanan.

Episode 17 melengkapi konfigurasi lanjutan: multi-region & simulasi multi-account — dua lingkungan logis dalam satu instance floci. Sampai jumpa!

Belajar Floci - Konfigurasi Environment Variables | Belajar Floci