# Docker Compose environment — copy to project root: # cp docker/.env.example .env # --- PostgreSQL --- DB_USER=newdashboard DB_PASSWORD=change_this_to_a_strong_password DB_NAME=newdashboard # --- Django --- SECRET_KEY=change-me-in-production-use-a-long-random-string DEBUG=false ALLOWED_HOSTS=localhost,127.0.0.1,api,frontend,dashboard.local CSRF_TRUSTED_ORIGINS=http://localhost,http://127.0.0.1,http://dashboard.local CORS_ALLOWED_ORIGINS=http://localhost,http://127.0.0.1,http://dashboard.local # Production admin (bootstrap_admin — no demo data) BOOTSTRAP_ADMIN_USER=admin BOOTSTRAP_ADMIN_PASSWORD=Pr04dm1n # Optional production staff (leave BOOTSTRAP_STAFF_USER empty to skip) BOOTSTRAP_STAFF_USER=staff BOOTSTRAP_STAFF_PASSWORD=change_me # Optional: fixed API key for pusat pull + scripts (hashed at rest) SITE_API_KEY= # Pusat (executive) — register + cycle-close PUSAT_BASE_URL= PUSAT_API_KEY= SITE_API_BASE_URL= # karung-web-admin on the Docker host KARUNG_WEB_ADMIN_BASE_URL=http://host.docker.internal:5000 KARUNG_WEB_ADMIN_TIMEOUT_SECONDS=30 KARUNG_WEB_ADMIN_SYNC_ENABLED=false # Dashboard publish cutoff (WIB): day D visible from 17:00 on day D DASHBOARD_PUBLISH_HOUR=17 DASHBOARD_PUBLISH_MINUTE=0 # IoT panel — real-time sync every 10 min (excluded from publish cutoff). # Configure per-flock API URLs in Settings (Flock → API Panel IoT). IOT_SYNC_ENABLED=true IOT_SYNC_LOOKBACK_MINUTES=20 IOT_SYNC_MAX_PAGES=10 # Chicken counting edge vision API (counting + mortality + weight; not gated by publish cutoff) CHICKEN_COUNTING_EDGE_BASE_URL=http://192.168.192.106:8090 CHICKEN_COUNTING_EDGE_TIMEOUT_SECONDS=30 CHICKEN_COUNTING_EDGE_COUNTING_SYNC_ENABLED=true CHICKEN_COUNTING_EDGE_MORTALITY_SYNC_ENABLED=true CHICKEN_COUNTING_EDGE_WEIGHT_SYNC_ENABLED=true # AI Insight — RAG + Ollama (llm service) in compose RAG_SERVICE_URL=http://rag:5002 OLLAMA_BASE_URL=http://llm:11434 LLM_MODEL_NAME=qwen2.5:3b LLM_TIMEOUT_SECONDS=1200