# 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`)