Files
training-software/.env.example
Paperclip CTO 8054c1e1e4 feat(TRA-233): Django M1 foundation scaffold
- 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>
2026-05-07 09:11:23 +02:00

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