# Public app URL (used for OIDC redirect URIs, share links, etc.) NEXT_PUBLIC_APP_URL=https://fam.yourdomain.com # Postgres DATABASE_URL=postgres://famapp:famapp@localhost:5432/famapp # Auth.js AUTH_SECRET=replace-with-openssl-rand-base64-32 # Local development only. Enables a /login "Dev login" button that creates a # database session for DEV_LOGIN_EMAIL without contacting Authentik. ENABLE_DEV_LOGIN=false DEV_LOGIN_EMAIL=dev@famapp.local DEV_LOGIN_NAME=Dev User DEV_HOUSEHOLD_NAME=Home # OIDC (Authentik) AUTH_OIDC_ISSUER=https://auth.yourdomain.com/application/o/famapp/ AUTH_OIDC_CLIENT_ID=replace-me AUTH_OIDC_CLIENT_SECRET=replace-me # Web Push (generate with: pnpm vapid:generate — copy all three lines to .env) VAPID_PUBLIC_KEY= VAPID_PRIVATE_KEY= VAPID_SUBJECT=mailto:you@example.com # ntfy (optional fallback channel; leave blank to disable) NTFY_URL= NTFY_TOPIC= # Logging LOG_LEVEL=info # Household API token (generated in Settings → Data & backups; stored hashed in DB) # Clients send: Authorization: Bearer on /api/v1/* requests # GitHub (required for pnpm release — creates a GitHub Release) GITHUB_TOKEN= # MinIO object storage (used for plant/container image uploads) MINIO_ENDPOINT=http://localhost:9000 MINIO_ROOT_USER=famapp MINIO_ROOT_PASSWORD=changeme MINIO_BUCKET=garden # OpenPlantBook plant species API (https://open.plantbook.io — free account required) OPENPLANTBOOK_CLIENT_ID= OPENPLANTBOOK_CLIENT_SECRET= # LLM assistant (OpenAI-compatible — Ollama, vLLM, LiteLLM, etc.) # Leave LLM_BASE_URL unset to use the built-in mock provider (CI / local without a model). # Voice input uses POST {LLM_BASE_URL}/audio/transcriptions (Whisper-compatible). # Photo messages use vision via the same chat/completions endpoint. LLM_PROVIDER=openai LLM_BASE_URL= LLM_API_KEY= LLM_MODEL=llama3.2