Quickstart

Declare settings in settings.py

from configvars import config, secret

SOME_API_KEY = config("SOME_API_KEY", "default_api_key")
SOME_API_SECRET = secret("SOME_API_SECRET")

Local overrides

Create local.py next to your Django settings module:

SOME_API_KEY = "LOCAL_API_KEY"
SOME_API_SECRET = "LOCAL_SECRET"

Environment overrides

SOME_API_KEY="ENV_API_KEY" python manage.py configvars

Secrets with files (Swarm / Portainer)

DB_PASSWORD = secret("DB_PASSWORD", file_var="DB_PASSWORD_FILE")
# literal
APP_DB_PASSWORD="plain-password"

# file-based secret
APP_DB_PASSWORD_FILE="/run/secrets/db_password"