Files

82 lines
2.1 KiB
YAML

name: paperless-ngx
services:
redis:
container_name: paperless-ngx-redis
image: redis:8
restart: unless-stopped
networks:
- paperless-ngx
volumes:
- ./redis:/data
database:
container_name: paperless-ngx-database
image: postgres:18
restart: unless-stopped
networks:
- paperless-ngx
env_file:
- ./docker.env
volumes:
- ./database:/var/lib/postgresql/data
webserver:
container_name: paperless-ngx
image: ghcr.io/paperless-ngx/paperless-ngx:latest
restart: unless-stopped
depends_on:
- database
- redis
- gotenberg
- tika
networks:
- paperless-ngx
- proxy
volumes:
- ./data:/usr/src/paperless/data
- ./media:/usr/src/paperless/media
- ./export:/usr/src/paperless/export
- ./consume:/usr/src/paperless/consume
env_file:
- ./docker.env
environment:
PAPERLESS_REDIS: redis://redis:6379
PAPERLESS_DBHOST: database
PAPERLESS_TIKA_ENABLED: 1
PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000
PAPERLESS_TIKA_ENDPOINT: http://tika:9998
labels:
- "traefik.enable=true"
- "traefik.docker.network=proxy"
- "traefik.http.routers.paperless-ngx.rule=Host(`paperless.example.com`)"
- "traefik.http.routers.paperless-ngx.entrypoints=websecure"
- "traefik.http.routers.paperless-ngx.service=paperless-ngx"
- "traefik.http.services.paperless-ngx.loadBalancer.server.port=8000"
gotenberg:
container_name: paperless-ngx-gotenberg
image: gotenberg/gotenberg:8.25
restart: unless-stopped
networks:
- paperless-ngx
# The gotenberg chromium route is used to convert .eml files. We do not
# want to allow external content like tracking pixels or even javascript.
command:
- "gotenberg"
- "--chromium-disable-javascript=true"
- "--chromium-allow-list=file:///tmp/.*"
tika:
container_name: paperless-ngx-tika
image: apache/tika:latest
restart: unless-stopped
networks:
- paperless-ngx
networks:
proxy:
external: true
paperless-ngx:
name: paperless-ngx