services: # ─── Backend (NestJS) ────────────────────────────────────── backend: build: ./paperless-backend container_name: paperless-backend restart: unless-stopped ports: - "${BACKEND_PORT:-3100}:3100" environment: - PORT=3100 - DB_HOST=${DB_HOST:-db} - DB_PORT=${DB_PORT:-3306} - DB_USERNAME=${DB_USERNAME:-root} - DB_PASSWORD=${DB_PASSWORD:-changeme} - DB_DATABASE=${DB_DATABASE:-paperlessadd} - PAPERLESS_URL=${PAPERLESS_URL:-http://paperless:8000} - PAPERLESS_TOKEN=${PAPERLESS_TOKEN:-} - PAPERLESS_PROCESSOR_CRON=${PAPERLESS_PROCESSOR_CRON:-0 * * * * *} - OLLAMA_URL=${OLLAMA_URL:-http://ollama:11434} - OLLAMA_MODEL=${OLLAMA_MODEL:-llava} - SCANNER_ARCHIVE_DIR=${SCANNER_ARCHIVE_DIR:-/data/scanner/_processed_archive} - OIDC_ISSUER=${OIDC_ISSUER:-} - SMTP_HOST=${SMTP_HOST:-} - SMTP_PORT=${SMTP_PORT:-587} - SMTP_SECURE=${SMTP_SECURE:-false} - SMTP_USER=${SMTP_USER:-} - SMTP_PASS=${SMTP_PASS:-} - SMTP_FROM=${SMTP_FROM:-paperless@localhost} - POSTPROCESSING_ERROR_TAG=${POSTPROCESSING_ERROR_TAG:-0} - MANUELL_BEARBEITEN_TAG=${MANUELL_BEARBEITEN_TAG:-6} - IMAP_HOST=${IMAP_HOST:-} - IMAP_PORT=${IMAP_PORT:-993} - IMAP_USE_SSL=${IMAP_USE_SSL:-true} - IMAP_USERNAME=${IMAP_USERNAME:-} - IMAP_PASSWORD=${IMAP_PASSWORD:-} - BELEGNUMMER_GET_URL=${BELEGNUMMER_GET_URL:-} - BELEGNUMMER_SET_URL=${BELEGNUMMER_SET_URL:-} volumes: - /tmp/omv-scans:/mnt/scans - /tmp/omv-paperlessmanager:/mnt/data networks: - paperless-net # ─── Frontend (React + nginx) ────────────────────────────── frontend: build: context: ./paperless-frontend container_name: paperless-frontend restart: unless-stopped ports: - "${FRONTEND_PORT:-8080}:80" environment: - VITE_API_URL=${VITE_API_URL:-http://localhost:3100} - VITE_OIDC_AUTHORITY=${OIDC_ISSUER:-} - VITE_OIDC_CLIENT_ID=${OIDC_CLIENT_ID:-} - VITE_OIDC_REDIRECT_URI=${OIDC_REDIRECT_URI:-} networks: - paperless-net volumes: scanner_data: networks: paperless-net: driver: bridge