126 lines
3.8 KiB
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 |