- gunicorn вместо dev-сервера Werkzeug; non-root user в Dockerfile - volume sqlite_data для БД (заявки не теряются при rebuild) - consultations.db и data/ в .dockerignore (ПДн не попадают в образ) - Secure-куки по умолчанию (COOKIE_SECURE=1), лимит сессии 12ч - защитные заголовки: CSP, X-Frame-Options, nosniff, Referrer-Policy, Permissions-Policy - MAX_CONTENT_LENGTH 64КБ - анти-брутфорс админки: 5 попыток -> блокировка 15 мин + лимит 5/мин - обязательный чекбокс согласия на обработку ПДн + страница /privacy - .env.example: понятные плейсхолдеры, COOKIE_SECURE
16 lines
366 B
YAML
16 lines
366 B
YAML
# Секреты — только из .env (см. .env.example)
|
|
services:
|
|
web:
|
|
build: .
|
|
ports:
|
|
- "5000:5000"
|
|
env_file:
|
|
- .env
|
|
volumes:
|
|
# БД с заявками (ПДн) — на постоянном volume, не теряется при rebuild
|
|
- sqlite_data:/app/data
|
|
restart: unless-stopped
|
|
|
|
volumes:
|
|
sqlite_data:
|