version: "3.8" services: anl-backend: build: context: ./backend dockerfile: Dockerfile container_name: anl-backend-api restart: unless-stopped ports: - "${BACKEND_PORT:-8080}:8080" environment: - HOST=0.0.0.0 - PORT=8080 - DB_PATH=/app/data/anl.db - GIN_MODE=release - CORS_ALLOW_ORIGINS=* - AUTO_MIGRATE=true - ADMIN_TOKEN=${ADMIN_TOKEN:?ADMIN_TOKEN must be set -- see .env.example} volumes: - anl-db-data:/app/data networks: - anl-net healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8080/api/v1/health"] interval: 15s timeout: 3s retries: 3 start_period: 5s anl-frontend: build: context: ./refer_landing_page dockerfile: Dockerfile args: - NEXT_PUBLIC_API_BASE_URL=${NEXT_PUBLIC_API_BASE_URL:-http://localhost:8080/api/v1} container_name: anl-frontend-app restart: unless-stopped ports: - "${FRONTEND_PORT:-3000}:3000" environment: - NODE_ENV=production - PORT=3000 - HOSTNAME=0.0.0.0 - API_BASE_URL=http://anl-backend:8080/api/v1 depends_on: anl-backend: condition: service_healthy networks: - anl-net healthcheck: test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:3000/"] interval: 20s timeout: 5s retries: 3 start_period: 10s volumes: anl-db-data: name: anl-sqlite-storage networks: anl-net: name: anl-network driver: bridge