Files
proostenkrant.net/compose.yml
T
douwe fa81b64558 Persist login sessions, seed default users, and let editors skip the paszin
- compose: keep DataProtection keys in a named volume so redeploying no
  longer logs everybody out
- seed default family members at startup (init.sql only runs on a fresh
  MySQL volume, existing databases never got new members like Mattis)
- editors no longer need the paszin to submit an article or edit their
  own article; the editor session now survives submitting/editing
  (previously the paszin flow replaced or signed out the editor cookie)
2026-10-09 14:21:51 +02:00

61 lines
1.9 KiB
YAML

# ProostenKrant — Blazor Server stack
# Gebruik: docker compose up -d --build
# App: http://localhost:8080
name: proostenkrant
services:
app:
build:
context: .
dockerfile: deploy/Dockerfile
container_name: proostenkrant-app
ports:
- "8080:8080"
environment:
DB_HOST: mysql
DB_NAME: ${DB_NAME:-proostenkrant}
DB_USER: ${DB_USER:-proostenkrant}
DB_PASSWORD: ${DB_PASSWORD:-proostenkrant}
UNIVERSAL_PASSWORD: ${UNIVERSAL_PASSWORD:-ProostenKrant2024!}
HOOGTES_BEWAREN: ${HOOGTES_BEWAREN:-0}
volumes:
# Foto's en afbeeldingen uit de resources-map: profielfoto's
# (resources/images/profiles) en artikeluploads (resources/images/articles)
- ./resources/images:/app/wwwroot/resources/images
# Archief-edities: bestaande PDF's tonen én pas gedrukte kranten
# worden hier bewaard (resources/archive)
- ./resources/archive:/app/archive
# DataProtection-sleutels (versleuteling van login-cookies en
# antiforgery-tokens). Zonder dit volume worden alle sessies
# ongeldig bij elke herdeploy van de app-container.
- app-dataprotection:/root/.aspnet/DataProtection-Keys
depends_on:
mysql:
condition: service_healthy
restart: unless-stopped
mysql:
image: mysql:8.0
container_name: proostenkrant-mysql
environment:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_DATABASE: ${DB_NAME:-proostenkrant}
MYSQL_USER: ${DB_USER:-proostenkrant}
MYSQL_PASSWORD: ${DB_PASSWORD:-proostenkrant}
volumes:
- mysql-data:/var/lib/mysql
- ./deploy/mysql/init.sql:/docker-entrypoint-initdb.d/init.sql:ro
ports:
- "3306:3306"
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-prootpassword"]
interval: 5s
timeout: 5s
retries: 20
restart: unless-stopped
volumes:
mysql-data:
app-dataprotection: