# Stack local sin fricción: un solo contenedor (el gateway sirve la API en /api y la # UI Astro en /). Usa el MISMO Dockerfile que producción (HF Spaces / Render), así que # lo que pruebas en local es lo que se despliega. El conteo arranca en standby. # # docker compose up --build -> http://localhost:8000/ # # Las credenciales se leen del .env del host (Supabase + DEV_* para desarrollo local). # En producción (HF Spaces) cada usuario pone las suyas vía la UI. services: api: build: context: . dockerfile: Dockerfile ports: - "8000:8000" # gateway: UI en / y API en /api env_file: - .env # lee DATABASE_URL, DEV_*, SUPABASE_* del host environment: - APP_ENV=development # permite fallback a DEV_* keys - COUNTING_ENABLED=false - RATE_LIMIT_PER_MIN=120 healthcheck: test: ["CMD-SHELL", "python -c \"import urllib.request; urllib.request.urlopen('http://localhost:8000/api/status')\""] interval: 15s timeout: 5s retries: 5 # Nota: para el CONTEO real (cuando exista el modelo) se descomenta el bloque # hf_hub_download del Dockerfile y se ponen COUNTING_ENABLED=true, MODEL_BACKEND=onnx. # No se montan volúmenes: el conteo en standby no requiere modelo ni sample_data.