Files
homelab-infra/apps/paperless/docker-compose.yml
T
2026-06-06 13:41:16 +02:00

62 lines
2.4 KiB
YAML

services:
paperless:
image: ghcr.io/paperless-ngx/paperless-ngx:2.20.15@sha256:6c86cad803970ea782683a8e80e7403444c5bf3cf70de63b4d3c8e87500db92f
container_name: paperless-ngx
restart: unless-stopped
# OIDC: Authelia ueber Host-LAN-IP -> Traefik erreichbar (Container-DNS sonst nicht)
extra_hosts:
- "auth.kaleschke.info:192.168.178.58"
security_opt:
- no-new-privileges:true
environment:
- PAPERLESS_TIKA_ENABLED=0
- PAPERLESS_DBENGINE=postgresql
- PAPERLESS_DBHOST=postgresql17
- PAPERLESS_DBNAME=paperless
- PAPERLESS_DBUSER=paperless
- PAPERLESS_DBPASS=${PAPERLESS_DBPASS}
- PAPERLESS_REDIS=${PAPERLESS_REDIS}
- PAPERLESS_TIME_ZONE=Europe/Berlin
- PAPERLESS_OCR_LANGUAGE=deu+eng
- PAPERLESS_URL=https://paperless.kaleschke.info
# --- Authelia OIDC SSO (additiv, 2026-06-06; lokaler Login bleibt) ---
- PAPERLESS_APPS=allauth.socialaccount.providers.openid_connect
- PAPERLESS_SOCIAL_AUTO_SIGNUP=true
- 'PAPERLESS_SOCIALACCOUNT_PROVIDERS={"openid_connect":{"OAUTH_PKCE_ENABLED":true,"APPS":[{"provider_id":"authelia","name":"Authelia","client_id":"paperless","secret":"${PAPERLESS_OIDC_SECRET}","settings":{"server_url":"https://auth.kaleschke.info"}}]}}'
# Barcode / ASN
- PAPERLESS_CONSUMER_ENABLE_BARCODES=1
- PAPERLESS_CONSUMER_ENABLE_ASN_BARCODE=1
- PAPERLESS_CONSUMER_ASN_BARCODE_PREFIX=ASN
# Erkennung robuster für kleine Labels
- PAPERLESS_CONSUMER_BARCODE_DPI=600
- PAPERLESS_CONSUMER_BARCODE_UPSCALE=1.5
# Optional: alle Seiten prüfen
- PAPERLESS_CONSUMER_BARCODE_MAX_PAGES=0
volumes:
- /mnt/user/documents/scans_inbox:/usr/src/paperless/consume
- /mnt/user/appdata/paperless-ngx/data:/usr/src/paperless/data
- /mnt/user/documents/paperless/export:/usr/src/paperless/export
- /mnt/user/documents/paperless:/usr/src/paperless/media
networks:
- frontend_net
- backend_net
labels:
- "traefik.enable=true"
- "traefik.docker.network=frontend_net"
- "traefik.http.routers.paperless.rule=Host(`paperless.kaleschke.info`)"
- "traefik.http.routers.paperless.entrypoints=websecure"
- "traefik.http.routers.paperless.tls=true"
- "traefik.http.routers.paperless.tls.certresolver=le"
- "traefik.http.services.paperless.loadbalancer.server.port=8000"
networks:
frontend_net:
external: true
backend_net:
external: true