81 lines
3.6 KiB
YAML
81 lines
3.6 KiB
YAML
services:
|
|
# DocMost Anwendungsdienst
|
|
docmost:
|
|
# Das Docker-Image für die DocMost-Anwendung.
|
|
# Dies wird direkt hier definiert und nicht über .env gesteuert.
|
|
image: docmost/docmost:latest
|
|
# Stellt sicher, dass die Datenbank- und Redis-Dienste vor DocMost gestartet werden.
|
|
# HINWEIS: 'depends_on' verwendet die festen Dienstnamen, nicht Umgebungsvariablen.
|
|
depends_on:
|
|
- docmost-db
|
|
- docmost-redis
|
|
# Der Name des Docker-Containers. Kann aus .env geladen werden.
|
|
# Umgebungsvariablen, die an den DocMost-Container übergeben werden.
|
|
# Diese werden aus der .env-Datei geladen.
|
|
environment:
|
|
APP_URL: ${APP_URL}
|
|
APP_SECRET: ${APP_SECRET}
|
|
# Datenbank-URL verwendet den DB_HOST aus .env
|
|
DATABASE_URL: postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${DB_HOST}:${DB_PORT}/${POSTGRES_DB}
|
|
# Redis-URL verwendet den REDIS_HOST aus .env
|
|
REDIS_URL: redis://${REDIS_HOST}:${REDIS_PORT}
|
|
# E-Mail-Treiber ist fest auf "smtp" gesetzt.
|
|
MAIL_DRIVER: "smtp"
|
|
# SMTP-Host und -Port werden aus der .env-Datei geladen.
|
|
SMTP_HOST: "${SMTP_HOST}"
|
|
SMTP_PORT: "${SMTP_PORT}"
|
|
SMTP_USERNAME: ${SMTP_USERNAME}
|
|
SMTP_PASSWORD: ${SMTP_PASSWORD}
|
|
# SMTP_SECURE: Diese Zeile ist auskommentiert, kann aber bei Bedarf aktiviert werden.
|
|
# Wenn in .env aktiviert, hier uncommenten.
|
|
# SMTP_SECURE: "${SMTP_SECURE}"
|
|
MAIL_FROM_ADDRESS: ${MAIL_FROM_ADDRESS}
|
|
MAIL_FROM_NAME: ${MAIL_FROM_NAME}
|
|
# OIDC/Keycloak settings
|
|
OIDC_ENABLED: ${OIDC_ENABLED:-false}
|
|
OIDC_ISSUER_URL: ${OIDC_ISSUER_URL} # Use service name within docker-compose network
|
|
OIDC_CLIENT_ID: ${OIDC_CLIENT_ID:-docmost}
|
|
OIDC_CLIENT_SECRET: ${OIDC_CLIENT_SECRET:-your_super_secret}
|
|
OIDC_CALLBACK_URL: ${OIDC_CALLBACK_URL}
|
|
# Port-Mapping vom Host zum Container.
|
|
# Der Host-Port wird aus der .env-Datei geladen.
|
|
ports:
|
|
- "${APP_PORT}:3000" # Host-Port ist jetzt konfigurierbar über .env
|
|
# Startet den Container automatisch neu, es sei denn, er wird explizit gestoppt.
|
|
restart: unless-stopped
|
|
# Volume-Mapping für persistente Daten.
|
|
# Der Host-Pfad wird aus der .env-Datei geladen.
|
|
volumes:
|
|
- ${DOCMOST_DATA_PATH}:/app/data/storage
|
|
|
|
# PostgreSQL Datenbankdienst für DocMost
|
|
docmost-db:
|
|
# Das Docker-Image für PostgreSQL.
|
|
# Dies wird direkt hier definiert und nicht über .env gesteuert.
|
|
image: postgres:16-alpine
|
|
# Der Name des Docker-Containers. Kann aus .env geladen werden.
|
|
# Umgebungsvariablen für die PostgreSQL-Konfiguration.
|
|
# POSTGRES_DB, POSTGRES_USER und POSTGRES_PASSWORD werden aus der .env-Datei geladen.
|
|
environment:
|
|
POSTGRES_DB: ${POSTGRES_DB}
|
|
POSTGRES_USER: ${POSTGRES_USER}
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
|
# Startet den Container automatisch neu, es sei denn, er wird explizit gestoppt.
|
|
restart: unless-stopped
|
|
# Volume-Mapping für persistente Datenbankdaten.
|
|
# Der Host-Pfad wird aus der .env-Datei geladen.
|
|
volumes:
|
|
- ${DB_DATA_PATH}:/var/lib/postgresql/data
|
|
|
|
# Redis Cache-Dienst für DocMost
|
|
docmost-redis:
|
|
# Das Docker-Image für Redis.
|
|
# Dies wird direkt hier definiert und nicht über .env gesteuert.
|
|
image: redis:7.2-alpine
|
|
# Der Name des Docker-Containers. Kann aus .env geladen werden.
|
|
# Startet den Container automatisch neu, es sei denn, er wird explizit gestoppt.
|
|
restart: unless-stopped
|
|
# Volume-Mapping für persistente Redis-Daten (optional, aber empfohlen).
|
|
# Der Host-Pfad wird aus der .env-Datei geladen.
|
|
volumes:
|
|
- ${REDIS_DATA_PATH}:/data |