| # FaceGuard Sakura — full stack orchestration | |
| # Usage: | |
| # docker compose up -d --build | |
| # | |
| # Endpoints setelah up: | |
| # Frontend -> http://localhost:8005 (bake-in REACT_APP_BACKEND_URL ke https://api-facerecog.demo-ai.net) | |
| # Backend -> http://localhost:8004 (FastAPI, share network stack host) | |
| # MongoDB -> pakai MongoDB host mesin Anda di 127.0.0.1:27017 | |
| # (database "faceguard_db" dibuat otomatis, tidak ganggu app lain di DB lain). | |
| # | |
| # CATATAN: backend pakai `network_mode: host` supaya bisa akses MongoDB host yang bind di | |
| # 127.0.0.1 tanpa perlu ubah bindIp mongod.conf. Ini hanya work di Linux (untuk Mac/Windows, | |
| # lihat instruksi alternatif di bawah). | |
| services: | |
| backend: | |
| build: | |
| context: ./backend | |
| dockerfile: Dockerfile | |
| container_name: faceguard-backend | |
| restart: unless-stopped | |
| # Share network stack host. Container akan bind port 8004 langsung di host. | |
| # `ports:` diabaikan dengan network_mode: host. | |
| network_mode: host | |
| environment: | |
| # Karena share host network, 127.0.0.1 dari container = 127.0.0.1 host. | |
| MONGO_URL: mongodb://127.0.0.1:27017 | |
| DB_NAME: faceguard_db | |
| MODEL_PATH: /app/models/2.7_80x80_MiniFASNetV2.onnx | |
| FACE_SIM_THRESHOLD: "0.42" | |
| DETECTION_THRESHOLD: "0.7" | |
| LIVENESS_THRESHOLD: "0.7" | |
| ORT_PROVIDERS: CPUExecutionProvider | |
| FACE_DET_SIZE: "480,480" | |
| PORT: "8004" | |
| volumes: | |
| - faceguard_insightface_cache:/root/.insightface | |
| frontend: | |
| build: | |
| context: ./frontend | |
| dockerfile: Dockerfile | |
| args: | |
| REACT_APP_BACKEND_URL: https://api-facerecog.demo-ai.net | |
| container_name: faceguard-frontend | |
| restart: unless-stopped | |
| ports: | |
| - "8005:8005" | |
| depends_on: | |
| - backend | |
| volumes: | |
| faceguard_insightface_cache: | |
| # ============================================================================= | |
| # ALTERNATIF kalau Anda pakai Mac/Windows Docker Desktop (network_mode: host | |
| # tidak support di sana), atau tidak mau pakai host network: | |
| # ============================================================================= | |
| # 1) Ubah service backend jadi: | |
| # network_mode: bridge (buang baris network_mode: host) | |
| # ports: ["8004:8004"] | |
| # extra_hosts: ["host.docker.internal:host-gateway"] | |
| # MONGO_URL: mongodb://host.docker.internal:27017 | |
| # | |
| # 2) Edit /etc/mongod.conf di host Anda (Linux) lalu restart mongo: | |
| # net: | |
| # bindIp: 127.0.0.1,172.17.0.1 # atau 0.0.0.0 kalau tidak takut expose | |
| # sudo systemctl restart mongod | |
| # | |
| # (Ubah 172.17.0.1 ke IP docker0 di mesin Anda: `ip -4 addr show docker0`) | |