- Environment-split settings: base/local/test/prod with django-environ - Postgres + Redis + Celery wiring (broker, beat, result backend) - All 9 domain app stubs: accounts, courses, cms, tracking, quizzes, training, certificates, reports, notifications - api app: /healthz/ endpoint, custom DRF exception handler, SecurityAuditMiddleware, permissions/throttle/upload-validation stubs - DRF global baseline: JWT+session auth, closed-by-default permissions, cursor/page pagination, drf-spectacular schema generation - Dockerfile (multi-env build arg), docker-compose.yml (local), docker-compose.test.yml (CI-friendly tmpfs Postgres) - pytest.ini with smoke + settings marker definitions - tests/test_smoke.py: startup, URL resolution, healthcheck shape - tests/test_settings_matrix.py: per-profile security assertions - .github/workflows/ci.yml: test, lint, schema CI jobs - .env.example with all required vars documented - .gitignore Co-Authored-By: Paperclip <noreply@paperclip.ing>
36 lines
1.1 KiB
Plaintext
36 lines
1.1 KiB
Plaintext
# Copy this to .env and fill in all values before starting.
|
|
# Never commit .env to version control.
|
|
|
|
# ---- Django ----
|
|
DJANGO_SECRET_KEY=replace-with-a-secure-random-key
|
|
DJANGO_SETTINGS_MODULE=config.settings.local
|
|
DJANGO_ALLOWED_HOSTS=localhost,127.0.0.1
|
|
|
|
# ---- Database ----
|
|
# Format: postgres://USER:PASSWORD@HOST:PORT/DBNAME
|
|
DATABASE_URL=postgres://training:training@localhost:5432/training
|
|
|
|
# ---- Redis / Cache / Celery broker ----
|
|
# Format: redis://[:password@]host:port/db
|
|
REDIS_URL=redis://localhost:6379/0
|
|
|
|
# ---- OIDC (Authentik) ----
|
|
OIDC_RP_CLIENT_ID=
|
|
OIDC_RP_CLIENT_SECRET=
|
|
OIDC_OP_AUTHORIZATION_ENDPOINT=https://auth.example.com/application/o/authorize/
|
|
OIDC_OP_TOKEN_ENDPOINT=https://auth.example.com/application/o/token/
|
|
OIDC_OP_USER_ENDPOINT=https://auth.example.com/application/o/userinfo/
|
|
OIDC_OP_JWKS_ENDPOINT=https://auth.example.com/application/o/training/jwks/
|
|
OIDC_RP_SIGN_ALGO=RS256
|
|
|
|
# ---- Storage (prod only) ----
|
|
AWS_STORAGE_BUCKET_NAME=
|
|
AWS_S3_REGION_NAME=eu-central-1
|
|
|
|
# ---- Email (prod only) ----
|
|
EMAIL_HOST=
|
|
EMAIL_PORT=587
|
|
EMAIL_HOST_USER=
|
|
EMAIL_HOST_PASSWORD=
|
|
DEFAULT_FROM_EMAIL=noreply@example.com
|