Purple Firefish shield markPurple Firefish

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.

Related pages