Environment variables
OpenFishing is configured entirely through environment variables. Every variable is optional except where noted; unset variables fall back to the defaults below.
Reference table
Section titled “Reference table”| Variable | Default | Description |
|---|---|---|
DATABASE_URL |
local.db |
Path to the SQLite database file. In Docker, point this at your data volume, e.g. /app/data/openfishing.db. |
UPLOAD_PATH |
./uploads |
Directory for lure/spot/catch photos. Mount a volume here (e.g. /app/uploads). |
BASE_URL |
http://localhost:5173 |
Public base URL, used to build QR-code and password-reset links. Set this to your real HTTPS URL behind a reverse proxy. |
ADMIN_PASSWORD |
(unset) | Set to enable multi-user login. It is the password for the admin account (username is always admin, re-synced each boot). Unset = fully open single-tenant instance. |
AUTH_PASSWORD |
(unset) | Deprecated fallback name for ADMIN_PASSWORD. Prefer ADMIN_PASSWORD. |
SMTP_HOST |
(unset) | SMTP server hostname for “forgot password” emails. |
SMTP_PORT |
(unset) | SMTP server port. |
SMTP_SECURE |
(unset) | Use TLS for the SMTP connection. |
SMTP_USER |
(unset) | SMTP username. |
SMTP_PASS |
(unset) | SMTP password. |
SMTP_FROM |
(unset) | The From: address for outgoing mail. |
DEMO_MODE |
(unset) | Any value = read-only demo mode (all writes blocked). |
CHATBOT |
(unset) | Any truthy value enables the AI chatbot (requires the LiteLLM variables). |
LITELLM_URL |
(unset) | Base URL of your LiteLLM proxy, e.g. http://litellm:4000. |
LITELLM_MODEL |
(unset) | Model name matching a litellm.config.yaml entry. |
LITELLM_VISION_MODEL |
(unset) | Optional vision-capable model for fish/lure identification. Falls back to LITELLM_MODEL. |
BODY_SIZE_LIMIT |
104857600 |
Maximum upload size in bytes (default ≈ 100 MB). |
Notes on defaults
Section titled “Notes on defaults”The defaults above are the app’s built-in code defaults. In a container you’ll typically override the paths to point at mounted volumes:
DATABASE_URL=/app/data/openfishing.dbUPLOAD_PATH=/app/uploadsGrouped by purpose
Section titled “Grouped by purpose”- Storage:
DATABASE_URL,UPLOAD_PATH,BODY_SIZE_LIMIT - Networking / links:
BASE_URL - Authentication:
ADMIN_PASSWORD(AUTH_PASSWORDdeprecated) - Email / password reset:
SMTP_HOST,SMTP_PORT,SMTP_SECURE,SMTP_USER,SMTP_PASS,SMTP_FROM - AI features:
CHATBOT,LITELLM_URL,LITELLM_MODEL,LITELLM_VISION_MODEL - Demo:
DEMO_MODE
See Multi-user & authentication, AI features and Demo mode for how these groups fit together.