1. VAPID-Keys aus docker-compose.yml und docker-compose.staging.yml entfernt. Werden jetzt aus .env gelesen (env_file war schon da, nur die environment-Override hat die .env-Werte überschrieben). .env auf DS um die 3 Keys ergänzt: - VAPID_PUBLIC_KEY, VAPID_PRIVATE_KEY, VAPID_CONTACT Erst Compose-Änderung wirksam — Push-Notifications funktionieren weiter weil die .env die Werte liefert. 2. Dockerfile-Hardening: Non-root USER appuser. - groupadd/useradd appuser (UID/GID 1000 für DS-Kompatibilität) - chown -R appuser:appuser /app /data nach mkdir - USER appuser vor CMD Memory says DSM ACLs könnten Probleme machen. Falls Container nicht startet → Rückbau. Bei Deploy genau hinsehen. 3. E-Mail-Änderungs-Audit-Punkt: kein Vulnerability gefunden. ProfileUpdate-Schema enthält kein 'email'-Feld. User können ihre E-Mail-Adresse aktuell gar nicht ändern → kein Takeover- Vektor wie im Audit vermutet.
26 lines
750 B
YAML
26 lines
750 B
YAML
services:
|
|
banyaro-staging:
|
|
build: .
|
|
container_name: banyaro-staging
|
|
restart: on-failure:3
|
|
ports:
|
|
- "3012:8000"
|
|
volumes:
|
|
- ./data:/data
|
|
- /volume1/docker/banyaro/data/media:/prod-media:ro
|
|
- /volume1/scaninput:/scaninput
|
|
env_file:
|
|
- .env
|
|
environment:
|
|
- DB_PATH=/data/banyaro.db
|
|
- MEDIA_DIR=/data/media
|
|
- APP_URL=https://staging.banyaro.app
|
|
- STAGING=true
|
|
- KI_MODE=cloud
|
|
# VAPID_PUBLIC_KEY / VAPID_PRIVATE_KEY / VAPID_CONTACT
|
|
# → kommen aus .env (nicht in Git)
|
|
healthcheck:
|
|
test: ["CMD", "python3", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/')"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|