Skip to content

Instantly share code, notes, and snippets.

@alva-seal
Last active April 9, 2023 14:59
Show Gist options
  • Select an option

  • Save alva-seal/67bdc4cbeee4559ed6621e948e2fdf6a to your computer and use it in GitHub Desktop.

Select an option

Save alva-seal/67bdc4cbeee4559ed6621e948e2fdf6a to your computer and use it in GitHub Desktop.
paperless
USERMAP_UID=0
USERMAP_GID=0
PAPERLESS_TIME_ZONE=Europe/Berlin
PAPERLESS_OCR_LANGUAGE=eng+deu
PAPERLESS_SECRET_KEY=
PAPERLESS_OCR_LANGUAGES=eng deu
PAPERLESS_URL=https://doc.alva.lgbt
PAPERLESS_FORCE_SCRIPT_NAME=/paperless
# docker-compose file for running paperless from the docker container registry.
# This file contains everything paperless needs to run.
# Paperless supports amd64, arm and arm64 hardware.
#
# All compose files of paperless configure paperless in the following way:
#
# - Paperless is (re)started on system boot, if it was running before shutdown.
# - Docker volumes for storing data are managed by Docker.
# - Folders for importing and exporting files are created in the same directory
# as this file and mounted to the correct folders inside the container.
# - Paperless listens on port 8000.
#
# In addition to that, this docker-compose file adds the following optional
# configurations:
#
# - Instead of SQLite (default), PostgreSQL is used as the database server.
# - Apache Tika and Gotenberg servers are started with paperless and paperless
# is configured to use these services. These provide support for consuming
# Office documents (Word, Excel, Power Point and their LibreOffice counter-
# parts.
#
# To install and update paperless with this file, do the following:
#
# - Copy this file as 'docker-compose.yml' and the files 'docker-compose.env'
# and '.env' into a folder.
# - Run 'docker-compose pull'.
# - Run 'docker-compose run --rm webserver createsuperuser' to create a user.
# - Run 'docker-compose up -d'.
#
# For more extensive installation and update instructions, refer to the
# documentation.
version: "3.4"
services:
broker:
image: docker.io/library/redis:7
restart: unless-stopped
volumes:
- redisdata:/data
db:
image: docker.io/library/postgres:13
restart: unless-stopped
volumes:
- pgdata:/var/lib/postgresql/data
environment:
POSTGRES_DB: paperless
POSTGRES_USER: paperless
POSTGRES_PASSWORD: paperless
webserver:
image: ghcr.io/paperless-ngx/paperless-ngx:latest
restart: unless-stopped
depends_on:
- db
- broker
- gotenberg
- tika
ports:
- 8000:8000
healthcheck:
test: ["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:8000"]
interval: 30s
timeout: 10s
retries: 5
volumes:
- data:/usr/src/paperless/data
- media:/usr/src/paperless/media
- ./export:/usr/src/paperless/export
- /opt/dms/paperless-ngx/consume:/usr/src/paperless/consume
env_file: docker-compose.env
environment:
PAPERLESS_REDIS: redis://broker:6379
PAPERLESS_DBHOST: db
PAPERLESS_TIKA_ENABLED: 1
PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000
PAPERLESS_TIKA_ENDPOINT: http://tika:9998
labels:
- traefik.enable=true
- traefik.http.routers.dms.rule=Host(`doc.alva.lgbt`)
- traefik.http.routers.dms.tls.certresolver=cloudflare
- traefik.docker.network=traefik_default
- traefik.http.services.dms.loadbalancer.server.port=8000
networks:
- paperless_default
- traefik_default
gotenberg:
image: docker.io/gotenberg/gotenberg:7.6
restart: unless-stopped
# 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"
- "--api-timeout=120s"
- "--chromium-allow-list=file:///tmp/.*"
ports:
- 5000:5000
networks:
- paperless_default
tika:
image: ghcr.io/paperless-ngx/tika:latest
restart: unless-stopped
networks:
paperless_default:
external: true
traefik_default:
external: true
volumes:
data:
media:
pgdata:
redisdata:
root@server /opt/dms/paperless-ngx #
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment