version: "3.9" networks: document_network: driver: bridge services: # --- DOCUMENT MANAGEMENT --- paperless-ngx: image: ghcr.io/paperless-ngx/paperless-ngx:latest container_name: paperless-ngx depends_on: [redis, db, tika, gotenberg] environment: - USERMAP_UID=1026 - USERMAP_GID=100 - PAPERLESS_REDIS=redis://redis:6379 - PAPERLESS_DBHOST=db - PAPERLESS_DBPASS=Alexis74!patmos - PAPERLESS_SECRET_KEY=Alexis74!patmos - PAPERLESS_TIME_ZONE=Europe/Zurich - PAPERLESS_OCR_LANGUAGE=deu - PAPERLESS_OCR_LANGUAGES=ell eng spa - PAPERLESS_CONSUMER_POLLING=10 - PAPERLESS_FILES_FRIENDLY_DIRECTORY_NAME=YES - PAPERLESS_CHOWN_NO_FAILURE=YES - PAPERLESS_CONSUMER_KEEP_ORIGINALS=true - PAPERLESS_CONSUMER_RECURSIVE=true - PAPERLESS_CSRF_TRUSTED_ORIGINS=https://paperless.haldenstrasse.schillinger.one - PAPERLESS_ALLOWED_HOSTS=paperless.haldenstrasse.schillinger.one,192.168.1.14,paperless-ngx - PAPERLESS_URL=https://paperless.haldenstrasse.schillinger.one - PAPERLESS_CORS_ALLOWED_HOSTS=https://paperless.haldenstrasse.schillinger.one,http://paperless-ngx:8000 # --- TIKA & GOTENBERG SETTINGS --- - PAPERLESS_TIKA_ENABLED=1 - PAPERLESS_TIKA_ENDPOINT=http://tika:9998 - PAPERLESS_TIKA_GOTENBERG_ENDPOINT=http://gotenberg:3000 volumes: - /home/marc/paperless-stack/paperless:/usr/src/paperless/data - /mnt/synology/media:/usr/src/paperless/media - /mnt/synology/consume:/usr/src/paperless/consume networks: - document_network ports: - 8010:8000 # --- BACKEND DATABASE --- db: image: postgres:15 container_name: db environment: - POSTGRES_DB=paperless - POSTGRES_USER=paperless - POSTGRES_PASSWORD=Alexis74!patmos volumes: - /home/marc/paperless-stack/pgdata:/var/lib/postgresql/data networks: - document_network # --- CACHE --- redis: image: redis:7 container_name: redis networks: - document_network # --- ORCHESTRATOR --- n8n: image: n8nio/n8n:latest container_name: n8n environment: - N8N_ENCRYPTION_KEY=Alexis74!patmos - N8N_HOST=n8n - NODE_ENV=production - N8N_SECURE_COOKIE=false volumes: - /home/marc/paperless-stack/n8n:/home/node/.n8n networks: - document_network ports: - 5678:5678 # --- AI ENHANCEMENT --- paperless-ai: image: clusterzx/paperless-ai:latest container_name: paperless-ai restart: unless-stopped ports: - 3010:3000 volumes: - /home/marc/paperless-stack/paperless-ai_data:/app/data environment: # Use the internal service name with the /api suffix - PAPERLESS_API_URL=http://paperless-ngx:8000/api - PAPERLESS_API_TOKEN=cfdd434a740a4632010db1f706e9440ceeffa27c # AI Provider Settings - AI_PROVIDER=openai - OPENAI_API_KEY=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 - AI_MODEL=gpt-4o-mini - AI_EMBEDDING_MODEL=text-embedding-3-small extra_hosts: - "host.docker.internal:host-gateway" networks: - document_network depends_on: - paperless-ngx # --- OFFICE CONVERSION SERVICES --- gotenberg: image: docker.io/gotenberg/gotenberg:8 container_name: gotenberg restart: unless-stopped ports: - 3020:3000 # Map external 3020 to internal 3000 command: - "gotenberg" - "--chromium-disable-javascript=true" - "--chromium-allow-list=file:///tmp/.*" networks: - document_network tika: image: docker.io/apache/tika:latest container_name: tika restart: unless-stopped networks: - document_network