first sync
Some checks failed
Deployment Verification / deploy-and-test (push) Has been cancelled

This commit is contained in:
Hubert Cornet 2024-12-07 16:25:27 +01:00
parent 07fa0d4ab6
commit f29cc11301
5 changed files with 176 additions and 26 deletions

2
.env
View File

@ -1 +1 @@
# Template COMPOSE_PROJECT_NAME=paperless

61
docker-compose.env Normal file
View File

@ -0,0 +1,61 @@
# The UID and GID of the user used to run paperless in the container. Set this
# to your UID and GID on the host so that you have write access to the
# consumption directory.
USERMAP_UID=1000
USERMAP_GID=1000
# Additional languages to install for text recognition, separated by a
# whitespace. Note that this is
# different from PAPERLESS_OCR_LANGUAGE (default=eng), which defines the
# language used for OCR.
# The container installs English, German, Italian, Spanish and French by
# default.
# See https://packages.debian.org/search?keywords=tesseract-ocr-&searchon=names&suite=buster
# for available languages.
PAPERLESS_OCR_LANGUAGES=eng+fra
###############################################################################
# Paperless-specific settings #
###############################################################################
# All settings defined in the paperless.conf.example can be used here. The
# Docker setup does not use the configuration file.
# A few commonly adjusted settings are provided below.
# This is required if you will be exposing Paperless-ngx on a public domain
# (if doing so please consider security measures such as reverse proxy)
PAPERLESS_URL=https://paperless.tips-of-mine.com
# Adjust this key if you plan to make paperless available publicly. It should
# be a very long sequence of random characters. You don't need to remember it.
#PAPERLESS_SECRET_KEY=change-me
# Use this variable to set a timezone for the Paperless Docker containers. If not specified, defaults to UTC.
PAPERLESS_TIME_ZONE=Europe/Paris
# The default language to use for OCR. Set this to the language most of your
# documents are written in.
PAPERLESS_OCR_LANGUAGE=eng+fra
# Set if accessing paperless via a domain subpath e.g. https://domain.com/PATHPREFIX and using a reverse-proxy like traefik or nginx
#PAPERLESS_FORCE_SCRIPT_NAME=/PATHPREFIX
#PAPERLESS_STATIC_URL=/PATHPREFIX/static/ # trailing slash required
#
PAPERLESS_EMAIL_HOST=paperless-msmtpd
PAPERLESS_EMAIL_PORT=2500
PAPERLESS_EMAIL_HOST_USER=.
PAPERLESS_EMAIL_FROM=hostinfo@tips-of-mine.fr
PAPERLESS_EMAIL_HOST_PASSWORD=.
PAPERLESS_EMAIL_USE_TLS=false
PAPERLESS_EMAIL_USE_SSL=false
PAPERLESS_CONSUMPTION_DIR=/usr/src/paperless/consume
PAPERLESS_CONSUMER_RECURSIVE=1
PAPERLESS_CONSUMER_POLLING=1
PAPERLESS_CONSUMER_POLLING=10
PAPERLESS_CONSUMER_DELETE_DUPLICATES=true
PAPERLESS_CONSUMER_RECURSIVE=true
PAPERLESS_TASK_WORKERS=4
PAPERLESS_THREADS_PER_WORKER=2

View File

@ -2,41 +2,128 @@
networks: networks:
traefik_front_network: traefik_front_network:
external: true external: true
back_network_: back_network_paperless:
driver: bridge driver: bridge
attachable: true attachable: true
#### SERVICES #### SERVICES
services: services:
### hello_world ###
hello_world: broker:
container_name: gitea-app container_name: paperless-broker
hostname: gitea-app hostname: paperless-broker
image: hello-world image: docker.io/library/redis:7
environment: restart: unless-stopped
restart: always
networks:
# - back_network_gitea
- traefik_front_network
volumes: volumes:
- ./redisdata:/data
networks:
- back_network_paperless
### postgres
db:
container_name: paperless-postgres
hostname: paperless-postgres
image: docker.io/library/postgres:16
restart: unless-stopped
volumes:
- ./pgdata:/var/lib/postgresql/data
networks:
- back_network_paperless
environment:
PGDATA: /var/lib/postgresql/data/paperless
POSTGRES_DB: paperless
POSTGRES_USER: paperless
POSTGRES_PASSWORD: paperless
### paperless-ngx
webserver:
container_name: paperless-app
hostname: paperless-app
image: ghcr.io/paperless-ngx/paperless-ngx:latest
restart: unless-stopped
depends_on:
- db
- broker
- gotenberg
- tika
volumes:
- ./data:/usr/src/paperless/data
- ./media:/usr/src/paperless/media
- ./export:/usr/src/paperless/export
- ./consume:/usr/src/paperless/consume
env_file: docker-compose.env
networks:
- back_network_paperless
- traefik_front_network
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: labels:
- "traefik.enable=true" - "traefik.enable=true"
- "traefik.docker.network=traefik_front_network" - "traefik.docker.network=traefik_front_network"
# HTTP # HTTP
- "traefik.http.routers.hello-world-http.rule=Host(`hello-world.tips-of-mine.com`)" - "traefik.http.routers.paperless-http.rule=Host(`paperless.tips-of-mine.com`)"
- "traefik.http.routers.hello-world-http.entrypoints=http" - "traefik.http.routers.paperless-http.entrypoints=http"
- "traefik.http.routers.hello-world-http.priority=49"
# HTTPS # HTTPS
- "traefik.http.routers.hello-world-https.rule=Host(`hello-world.tips-of-mine.com`)" - "traefik.http.routers.paperless-https.rule=Host(`paperless.tips-of-mine.com`)"
- "traefik.http.routers.hello-world-https.entrypoints=https" - "traefik.http.routers.paperless-https.entrypoints=https"
- "traefik.http.routers.hello-world-https.tls=true" - "traefik.http.routers.paperless-https.service=paperless-service"
- "traefik.http.routers.hello-world-https.priority=50" - "traefik.http.routers.paperless-https.tls=true"
- "traefik.http.routers.gitea.service=gitea-https-service"
# Middleware # Middleware
# Service # Service
# - "traefik.http.services.gitea-https-service.loadbalancer.server.port=3000" - "traefik.http.services.paperless-service.loadbalancer.server.port=8000"
# - "traefik.http.services.gitea-https-service.loadbalancer.server.scheme=https"
# - "traefik.http.services.gitea-https-service.loadbalancer.healthcheck.hostname=gitea.traefik.me" ###
# - "traefik.http.services.gitea-https-service.loadbalancer.healthcheck.method=foobar" gotenberg:
# - "traefik.http.services.gitea-https-service.loadbalancer.healthcheck.timeout=10" container_name: paperless-gotenberg
# - "traefik.http.services.gitea-https-service.loadbalancer.healthcheck.interval=30" hostname: paperless-gotenberg
image: docker.io/gotenberg/gotenberg:8.7
restart: unless-stopped
networks:
- back_network_paperless
# 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-tika
hostname: paperless-tika
image: docker.io/apache/tika:latest
restart: unless-stopped
networks:
- back_network_paperless
###
msmtpd:
container_name: paperless-msmtpd
hostname: paperless-msmtpd
image: crazymax/msmtpd:latest
networks:
- back_network_paperless
environment:
- "TZ=Europe/Paris"
- "PUID=1500"
- "PGID=1500"
- "SMTP_HOST=10.0.4.52"
- "SMTP_PORT=587"
- "SMTP_TLS=on"
- "SMTP_STARTTLS=on"
- "SMTP_TLS_CHECKCERT=off"
- "SMTP_AUTH=on"
- "SMTP_USER=hostinfo@tips-of-mine.fr"
- "SMTP_PASSWORD=P@ssw0rd!12345+"
- "SMTP_DOMAIN=localhost"
- "SMTP_FROM=hostinfo@tips-of-mine.fr"
restart: always
healthcheck:
test: ["CMD-SHELL", "echo EHLO localhost"]
interval: 5s
timeout: 5s
retries: 5

2
export.sh Normal file
View File

@ -0,0 +1,2 @@
#!/bin/sh
docker compose exec -T webserver document_exporter ../export