Skip to main content

Configuration

All configuration is environment variables, loaded by pydantic-settings from .env or the process environment. The schema lives in lib/config.py.

Core

VariableDefaultDescription
APP_ENVdevelopmentSet to production to enforce secret hardening.
JWT_SECRETdev placeholderMust override in prod. Use openssl rand -hex 32.
JWT_EXPIRE_MINUTES1440Access token TTL.

Database

VariableDefault
POSTGRES_HOSTlocalhost
POSTGRES_PORT5432
POSTGRES_USERwaldo
POSTGRES_PASSWORDwaldo (insecure — must override in prod)
POSTGRES_DBwaldo

Object storage

VariableDefault
MINIO_ENDPOINTlocalhost:9000
MINIO_ACCESS_KEYminioadmin (insecure — must override in prod)
MINIO_SECRET_KEYminioadmin (insecure — must override in prod)
MINIO_BUCKETwaldo
MINIO_SECUREfalse

Models

VariableDefault
SAM3_MODEL_IDfacebook/sam3
SAM3_MLX_MODEL_IDmlx-community/sam3.1-bf16
HF_TOKEN(empty)
DEVICEmps
DTYPEfloat32
AGENT_MODEL_IDgoogle/gemma-4-e4b-it

Notifications (optional)

VariablePurpose
SLACK_WEBHOOK_URLSlack notifications from the trainer
NTFY_TOPIC / NTFY_SERVERntfy.sh push notifications
SMTP_HOST ... SMTP_FROMEmail alerts
ALERT_EMAILDefault destination for alerts

CORS

VariableDefault
CORS_ORIGINShttp://localhost:5173,http://localhost:8000

Comma-separated list of allowed origins. The middleware only honors this list — there is no * fallback.

Bootstrap admin

VariablePurpose
ADMIN_BOOTSTRAP_EMAILEmail used when seeding the first admin (default admin@localhost)
ADMIN_BOOTSTRAP_PASSWORDPassword for the seed admin (required in production; auto-generated in dev)