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