Deployment Modes
Use this when you are choosing how to run Firefish for local development, internal review, staging, or production.
Firefish is designed to run local-first and self-hosted. Production deployments should keep raw logging disabled, protect API routes, and explicitly review any hosted provider configuration.
Local development
Use this mode for quickstarts, demos, and local QA.
APP_ENV=dev LOCAL_ONLY_MODE=true DASHBOARD_AUTH_ENABLED=false LOG_RAW_INPUT=false JUDGE_PROVIDER=heuristic
Run:
python -m uvicorn app.main:app --host 127.0.0.1 --port 8000
Docker local
Use this mode when you want a repeatable local container setup.
docker compose up -d --build
Keep model runtimes local or private. Do not configure public runtime URLs unless you have a reviewed deployment plan.
Staging
Use staging to test app integration, RAG ingestion, tool approval workflows, Security Ops, and CI red-team regression cases.
APP_ENV=staging LOCAL_ONLY_MODE=true DASHBOARD_AUTH_ENABLED=true LOG_RAW_INPUT=false RATE_LIMIT_ENABLED=true
Production
Use production mode only after reviewing secrets, dashboard auth, rate limits, egress policy, database backups, and incident response.
APP_ENV=production LOCAL_ONLY_MODE=true DASHBOARD_AUTH_ENABLED=true LOG_RAW_INPUT=false RATE_LIMIT_ENABLED=true
Raw logging safety
Raw prompt, document, tool, and output logging should stay disabled. If a privileged debug workflow ever needs raw data, use a short-lived isolated environment, clear approval, and a deletion plan.