146 lines
4.0 KiB
Markdown
146 lines
4.0 KiB
Markdown
# paperlessngx
|
|
|
|
|
|
|
|
|
|
|
|
| Création | Portainer |
|
|
| ----------- | ------------------------------------------------------------ |
|
|
| Mise-à-jour | Watchtower |
|
|
| Port | 8777 |
|
|
| Liens | [Paperless-ngx](https://docs.paperless-ngx.com/)<br />[Github](https://github.com/paperless-ngx/paperless-ngx) |
|
|
|
|
|
|
|
|
```yaml
|
|
version: "3.9"
|
|
services:
|
|
redis:
|
|
image: redis:7
|
|
command:
|
|
- /bin/sh
|
|
- -c
|
|
- redis-server --requirepass redispass
|
|
container_name: PaperlessNGX-REDIS
|
|
hostname: paper-redis
|
|
mem_limit: 512m
|
|
mem_reservation: 256m
|
|
cpu_shares: 768
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
read_only: true
|
|
user: 1026:100
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "redis-cli ping || exit 1"]
|
|
volumes:
|
|
- /volume1/docker/paperlessngx/redis:/data:rw
|
|
environment:
|
|
TZ: Europe/Paris
|
|
restart: on-failure:5
|
|
|
|
db:
|
|
image: postgres:16
|
|
container_name: PaperlessNGX-DB
|
|
hostname: paper-db
|
|
mem_limit: 1g
|
|
cpu_shares: 768
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
healthcheck:
|
|
test: ["CMD", "pg_isready", "-q", "-d", "paperless", "-U", "paperlessuser"]
|
|
timeout: 45s
|
|
interval: 10s
|
|
retries: 10
|
|
volumes:
|
|
- /volume1/docker/paperlessngx/db:/var/lib/postgresql/data:rw
|
|
environment:
|
|
POSTGRES_DB: paperless
|
|
POSTGRES_USER: paperlessuser
|
|
POSTGRES_PASSWORD: paperlesspass
|
|
restart: on-failure:5
|
|
|
|
gotenberg:
|
|
image: gotenberg/gotenberg:latest
|
|
container_name: PaperlessNGX-GOTENBERG
|
|
hostname: gotenberg
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
user: 1026:100
|
|
command:
|
|
- "gotenberg"
|
|
- "--chromium-disable-javascript=true"
|
|
- "--chromium-allow-list=file:///tmp/.*"
|
|
restart: on-failure:5
|
|
|
|
tika:
|
|
image: ghcr.io/paperless-ngx/tika:latest
|
|
container_name: PaperlessNGX-TIKA
|
|
hostname: tika
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
user: 1026:100
|
|
restart: on-failure:5
|
|
|
|
paperless:
|
|
image: ghcr.io/paperless-ngx/paperless-ngx:latest
|
|
container_name: PaperlessNGX
|
|
hostname: paperless-ngx
|
|
mem_limit: 6g
|
|
cpu_shares: 1024
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:8000"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 5
|
|
ports:
|
|
- 8777:8000
|
|
volumes:
|
|
- /volume1/docker/paperlessngx/data:/usr/src/paperless/data:rw
|
|
- /volume1/docker/paperlessngx/media:/usr/src/paperless/media:rw
|
|
- /volume1/docker/paperlessngx/export:/usr/src/paperless/export:rw
|
|
- /volume1/docker/paperlessngx/consume:/usr/src/paperless/consume:rw
|
|
- /volume1/docker/paperlessngx/trash:/usr/src/paperless/trash:rw
|
|
environment:
|
|
PAPERLESS_REDIS: redis://:redispass@paper-redis:6379
|
|
PAPERLESS_DBENGINE: postgresql
|
|
PAPERLESS_DBHOST: paper-db
|
|
PAPERLESS_DBNAME: paperless
|
|
PAPERLESS_DBUSER: paperlessuser
|
|
PAPERLESS_DBPASS: paperlesspass
|
|
PAPERLESS_TRASH_DIR: ../trash
|
|
PAPERLESS_FILENAME_FORMAT: '{created_year}/{correspondent}/{document_type}/{title}'
|
|
PAPERLESS_OCR_ROTATE_PAGES_THRESHOLD: 6
|
|
PAPERLESS_TASK_WORKERS: 1
|
|
USERMAP_UID: 1026
|
|
USERMAP_GID: 100
|
|
PAPERLESS_TIME_ZONE: Europe/Paris
|
|
PAPERLESS_URL: https://paperlessngx.photos-nas.ovh
|
|
PAPERLESS_CSRF_TRUSTED_ORIGINS: https://paperlessngx.photos-nas.ovh
|
|
PAPERLESS_OCR_LANGUAGE: deu+eng
|
|
PAPERLESS_TIKA_ENABLED: 1
|
|
PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000
|
|
PAPERLESS_TIKA_ENDPOINT: http://tika:9998
|
|
env_file:
|
|
- stack.env
|
|
restart: on-failure:5
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
tika:
|
|
condition: service_started
|
|
gotenberg:
|
|
condition: service_started
|
|
|
|
networks:
|
|
default:
|
|
driver: bridge
|
|
ipam:
|
|
config:
|
|
- subnet: 172.16.59.0/24
|
|
```
|
|
|