Instalasi Floci via docker run dan docker-compose (port 4566, volume data, docker.sock), health check, dan smoke test pertama: membuat bucket S3 lewat AWS CLI dalam waktu kurang dari 5 menit

Teori arsitektur sudah di tangan; sekarang saatnya menyala. Episode ini adalah titik pertama kalian benar-benar menjalankan Floci: dari docker run satu baris, sampai bucket S3 pertama terbentuk — dengan target keras dari outline series ini, kurang dari 5 menit.
Dua metode instalasi akan kita lalui berurutan: quick start untuk merasakan instan, lalu setup docker-compose yang akan dipakai sebagai standar sepanjang sisa series.
Cara tercepat mencoba Floci:
docker run --rm -d --name floci -p 4566:4566 floci/floci:latestPenjelasan flag:
| Flag | Arti |
|---|---|
--rm | Hapus container otomatis saat stop |
-d | Jalankan di background |
--name floci | Nama mudah untuk perintah lanjutan |
-p 4566:4566 | Expose port endpoint AWS emulation |
Image floci/floci hanya ~90 MB — proses pull jauh lebih singkat daripada emulator setara yang bisa mencapai ~1 GB.
Untuk kerja nyata, compose memberi deklarasi yang bisa di-commit:
services:
floci:
image: floci/floci:latest # pin versi eksplisit untuk reproducibility
ports:
- "4566:4566"
volumes:
- floci-data:/app/data # durability antar restart
- /var/run/docker.sock:/var/run/docker.sock # layanan berbasis container (ep.12)
volumes:
floci-data:docker compose up -d
docker compose logs -f floci # lihat log startupCatatan volume docker.sock: baru wajib saat kalian memakai layanan seperti ECS/RDS/ElastiCache (episode 12). Untuk episode 2–11 boleh dihapus bila ingin permukaan keamanan minimal.
Pastikan emulator hidup dan siap menerima traffic:
curl -s http://localhost:4566/_floci/health
# {"status":"ok","uptime_ms":...}Startup Floci terukur ~24 ms — begitu container status running, ia praktis sudah siap. Bandingkan pengalaman ini dengan menunggu 3+ detik emulator lain tiap restart CI job.
Sekarang momen klaim target di bawah 5 menit — buat bucket lewat AWS CLI:
aws --endpoint-url=http://localhost:4566 s3 mb s3://test-bucket
# make_bucket: test-bucket
aws --endpoint-url=http://localhost:4566 s3 ls
# 2026-08-22 09:00:00 test-bucket
echo "hello floci" | aws --endpoint-url=http://localhost:4566 s3 cp - s3://test-bucket/hello.txt
aws --endpoint-url=http://localhost:4566 s3 cp s3://test-bucket/hello.txt -
# hello flociPerhatikan: tidak ada credentials sungguhan yang divalidasi — Floci menerima credential apa pun (filosofi tanpa auth token, dibahas penuh episode 9). Region default mengikuti konfigurasi internal; episode 16 menjelaskan cara mengubahnya lewat FLOCI_DEFAULT_REGION.
Tip
Supaya tidak mengetik flag panjang tiap kali, ekspor sekali: export AWS_ENDPOINT_URL=http://localhost:4566. Semua command aws berikutnya otomatis mengarah ke Floci. Env var resmi ini didukung CLI v2 dan SDK modern.
Target outline: jalankan floci + buktikan AWS CLI berbicara dengannya dalam waktu kurang dari 5 menit. Checklist verifikasi — jalankan dan pastikan semua sukses:
[x] docker compose up -d sukses (atau docker run)
[x] curl http://localhost:4566/_floci/health -> status ok
[x] aws ... s3 mb -> make_bucket sukses
[x] aws ... s3 ls -> bucket terlihat
[x] put + get object -> isi file utuh
[x] docker compose down && up lagi -> bucket masih ada (berkat volume)Poin terakhir penting: coba docker compose down lalu up -d dan jalankan s3 ls — bucket masih ada karena state tersimpan di volume /app/data. Ini preview langsung materi storage profile episode 15.
Note
Jika port 4566 bentrok (mis. LocalStack lama masih jalan): lsof -i :4566 untuk mencari pemakainya, matikan, lalu ulangi.
Rangkuman episode ini:
docker run -p 4566:4566 floci/floci:latest; standar series memakai docker-compose dengan volume data._floci/health; startup milidetik membuat loop restart sangat murah.s3 mb, s3 ls, put/get object via --endpoint-url atau env AWS_ENDPOINT_URL./app/data menjaga state tetap hidup antar restart.Fondasi siap! Mulai episode 4 kita masuk FASE 2 — tur layanan inti dimulai dari yang paling ikonik: emulasi S3 lengkap dengan presigned URL dan virtual-hosted style addressing. Sampai jumpa!