Files
paperless-stack/stack-compose.yaml

126 lines
3.8 KiB
YAML

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