services: web: build: &app-build context: . dockerfile: Dockerfile restart: unless-stopped expose: - "80" environment: &app-environment TZ: Europe/Berlin INTRANET_FQDN: ${INTRANET_FQDN:?set INTRANET_FQDN} DB_HOST: ${DB_HOST:?set DB_HOST} DB_PORT: ${DB_PORT:-5432} DB_NAME: ${DB_NAME:?set DB_NAME} DB_USER: ${DB_USER:?set DB_USER} DB_PASSWORD: ${DB_PASSWORD:?set DB_PASSWORD} SMTP_HOST: ${SMTP_HOST:-smtp.strato.de} SMTP_PORT: ${SMTP_PORT:-587} SMTP_USER: ${SMTP_USER:?set SMTP_USER} SMTP_PASSWORD: ${SMTP_PASSWORD:?set SMTP_PASSWORD} ADMIN_EMAIL: ${ADMIN_EMAIL:-technik@nak-reinickendorf.de} SMS_GATEWAY_URL: ${SMS_GATEWAY_URL:?set SMS_GATEWAY_URL} HA_BASE_URL: ${HA_BASE_URL:?set HA_BASE_URL} HA_TOKEN: ${HA_TOKEN:?set HA_TOKEN} OPENWEATHER_API_KEY: ${OPENWEATHER_API_KEY:?set OPENWEATHER_API_KEY} OLLAMA_GATEWAY_URL: ${OLLAMA_GATEWAY_URL:-https://ollama.pelpino.de} OLLAMA_API_KEY: ${OLLAMA_API_KEY:-} OLLAMA_AUTH_HEADER: ${OLLAMA_AUTH_HEADER:-Authorization} OLLAMA_MODEL: ${OLLAMA_MODEL:-qwen3.8:27b} OLLAMA_API_STYLE: ${OLLAMA_API_STYLE:-openai} OLLAMA_TIMEOUT_SECONDS: ${OLLAMA_TIMEOUT_SECONDS:-600} CONTENTPANEL_JOB_TIMEOUT_SECONDS: ${CONTENTPANEL_JOB_TIMEOUT_SECONDS:-3600} OLLAMA_MAX_INPUT_CHARS: ${OLLAMA_MAX_INPUT_CHARS:-45000} OLLAMA_CONTEXT_LENGTH: ${OLLAMA_CONTEXT_LENGTH:-32768} CONTENTPANEL_MAX_INPUT_PAGES: ${CONTENTPANEL_MAX_INPUT_PAGES:-10} CONTENTPANEL_MAX_RENDERED_PAGES: ${CONTENTPANEL_MAX_RENDERED_PAGES:-10} CONTENTPANEL_RENDER_SCALE: ${CONTENTPANEL_RENDER_SCALE:-3} CKAL_XLSX_DIR: /data/ckal-xlsx volumes: - profile_pictures:/var/www/html/intranet_repo/general_files/profile_pictures - content_news:/var/www/html/intranet_repo/projects/contentpanel/insertion/news - seelsorge_data:/var/www/html/intranet_repo/projects/seelsorge/data - dashboard_month:/var/www/html/intranet_repo/projects/dashboard/month - ckal_xlsx:/data/ckal-xlsx - calendar_pdf:/var/www/html/pdf:ro networks: - app - dokploy-network contentpanel-worker: build: *app-build restart: unless-stopped init: true user: "33:33" command: ["php", "/opt/intranet/worker/contentpanel_aushang/queue.php"] environment: *app-environment healthcheck: disable: true volumes: - content_news:/var/www/html/intranet_repo/projects/contentpanel/insertion/news networks: - app - dokploy-network scheduler: build: context: . dockerfile: Dockerfile restart: unless-stopped init: true user: "33:33" command: ["/opt/intranet/docker/scheduler.py"] shm_size: "512m" environment: TZ: Europe/Berlin HOME: /tmp/intranet-worker XDG_CACHE_HOME: /tmp/intranet-worker-cache PLAYWRIGHT_BROWSERS_PATH: /ms-playwright INTRANET_FQDN: ${INTRANET_FQDN:?set INTRANET_FQDN} DB_HOST: ${DB_HOST:?set DB_HOST} DB_PORT: ${DB_PORT:-5432} DB_NAME: ${DB_NAME:?set DB_NAME} DB_USER: ${DB_USER:?set DB_USER} DB_PASSWORD: ${DB_PASSWORD:?set DB_PASSWORD} SMTP_HOST: ${SMTP_HOST:-smtp.strato.de} SMTP_PORT: ${SMTP_PORT:-587} SMTP_USER: ${SMTP_USER:?set SMTP_USER} SMTP_PASSWORD: ${SMTP_PASSWORD:?set SMTP_PASSWORD} ADMIN_EMAIL: ${ADMIN_EMAIL:-technik@nak-reinickendorf.de} CKAL_USERNAME: ${CKAL_USERNAME:?set CKAL_USERNAME} CKAL_PASSWORD: ${CKAL_PASSWORD:?set CKAL_PASSWORD} CKAL_CALENDAR_URL: ${CKAL_CALENDAR_URL:?set CKAL_CALENDAR_URL} CKAL_XLSX_DIR: /data/ckal-xlsx PDF_OUTPUT: /data/pdf/terminuebersicht.pdf DASHBOARD_MONTH_DIR: /var/www/html/intranet_repo/projects/dashboard/month CALENDAR_INTERVAL_SECONDS: ${CALENDAR_INTERVAL_SECONDS:-60} STRATO_SSH_HOST: ${STRATO_SSH_HOST:-ssh.strato.de} STRATO_SSH_PORT: ${STRATO_SSH_PORT:-22} STRATO_SSH_USER: ${STRATO_SSH_USER:?set STRATO_SSH_USER} STRATO_REMOTE_PATH: ${STRATO_REMOTE_PATH:?set STRATO_REMOTE_PATH} STRATO_SSH_KEY_FILE: /run/secrets/strato_ed25519 STRATO_KNOWN_HOSTS_FILE: /run/secrets/known_hosts BRANDSCHUTZ_MAIL_ENABLED: ${BRANDSCHUTZ_MAIL_ENABLED:-false} STRATO_SYNC_ENABLED: ${STRATO_SYNC_ENABLED:-false} volumes: - dashboard_month:/var/www/html/intranet_repo/projects/dashboard/month - ckal_xlsx:/data/ckal-xlsx - calendar_pdf:/data/pdf - scheduler_state:/data/state - ../files/strato_ed25519:/run/secrets/strato_ed25519:ro - ../files/known_hosts:/run/secrets/known_hosts:ro networks: - app - dokploy-network volumes: profile_pictures: content_news: developer_work: seelsorge_data: dashboard_month: ckal_xlsx: calendar_pdf: scheduler_state: networks: app: dokploy-network: external: true