# Directus + Postgres — Daten-/Auth-/Admin-Schicht für Skrift. # # Hinter dem Nginx Proxy Manager (kein Host-Port; NPM proxyt intern per container_name). # Im NPM als Proxy Host anlegen: # Domain Names : admin.skrift.de (PUBLIC_URL in .env muss dazu passen) # Scheme : http # Forward Hostname : skrift-directus # Forward Port : 8055 # SSL : Let's-Encrypt-Zertifikat aktivieren # # Start: cp .env.example .env → Werte setzen → docker compose up -d services: database: image: postgres:16-alpine container_name: skrift-directus-db restart: unless-stopped volumes: - directus-db:/var/lib/postgresql/data environment: POSTGRES_USER: ${DB_USER} POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_DB: ${DB_DATABASE} healthcheck: test: ["CMD", "pg_isready", "-U", "${DB_USER}", "-d", "${DB_DATABASE}"] interval: 10s timeout: 5s retries: 5 networks: - internal directus: image: directus/directus:11 container_name: skrift-directus restart: unless-stopped depends_on: database: condition: service_healthy volumes: - directus-uploads:/directus/uploads # Bind-Mount: Extensions kommen aus dem Repo-Ordner ./extensions - ./extensions:/directus/extensions environment: SECRET: ${DIRECTUS_SECRET} DB_CLIENT: pg DB_HOST: database DB_PORT: 5432 DB_DATABASE: ${DB_DATABASE} DB_USER: ${DB_USER} DB_PASSWORD: ${DB_PASSWORD} # Erster Admin – wird nur beim allerersten Start angelegt ADMIN_EMAIL: ${ADMIN_EMAIL} ADMIN_PASSWORD: ${ADMIN_PASSWORD} PUBLIC_URL: ${PUBLIC_URL} # CORS für das Frontend (Portal/Konfigurator) CORS_ENABLED: "true" CORS_ORIGIN: ${CORS_ORIGIN} # E-Mail: für passwortlosen Login-Code + Benachrichtigungen (Flows) EMAIL_FROM: ${EMAIL_FROM} EMAIL_TRANSPORT: smtp EMAIL_SMTP_HOST: ${EMAIL_SMTP_HOST} EMAIL_SMTP_PORT: ${EMAIL_SMTP_PORT} EMAIL_SMTP_USER: ${EMAIL_SMTP_USER} EMAIL_SMTP_PASSWORD: ${EMAIL_SMTP_PASSWORD} EMAIL_SMTP_SECURE: ${EMAIL_SMTP_SECURE} expose: - "8055" networks: - internal - npm volumes: directus-db: directus-uploads: networks: internal: npm: name: nginx-proxy-manager_default external: true