Migrate Portainer stacks to Komodo
- Add 11 new stack compose files from syn01 and syn02 - syn01 stacks: postgres01, paperless-ngx, minio, beszel-hub, gitea, adguard - syn02 stacks: radarr, lidarr, sabnzbd, sonarr, arr-cleanup - Update resources.toml with all new stack definitions - Remove embedded file_contents from prowlarr stack - Use environment variables for sensitive data (passwords, API keys) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
148
stacks/paperless-ngx.compose.yml
Normal file
148
stacks/paperless-ngx.compose.yml
Normal file
@@ -0,0 +1,148 @@
|
||||
version: "3.9"
|
||||
|
||||
services:
|
||||
redis:
|
||||
image: redis:7
|
||||
command:
|
||||
- /bin/sh
|
||||
- -c
|
||||
- redis-server --requirepass redispass
|
||||
container_name: PaperlessNGX-REDIS
|
||||
hostname: paper-redis
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
read_only: true
|
||||
user: 1026:100
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "redis-cli ping || exit 1"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
volumes:
|
||||
- /volume1/docker/paperlessngx/redis:/data:rw
|
||||
environment:
|
||||
TZ: America/Los_Angeles
|
||||
restart: on-failure:5
|
||||
networks:
|
||||
- paperless-ngx_default
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
memory: 512M
|
||||
reservations:
|
||||
memory: 256M
|
||||
|
||||
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
|
||||
networks:
|
||||
- paperless-ngx_default
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
memory: 2G
|
||||
reservations:
|
||||
memory: 1G
|
||||
|
||||
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
|
||||
environment:
|
||||
JAVA_OPTS: "-Xmx2g -Xms1g"
|
||||
networks:
|
||||
- paperless-ngx_default
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
memory: 3G
|
||||
reservations:
|
||||
memory: 1.5G
|
||||
|
||||
paperless:
|
||||
image: ghcr.io/paperless-ngx/paperless-ngx:latest
|
||||
container_name: PaperlessNGX
|
||||
hostname: paperless-ngx
|
||||
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: PgBouncer
|
||||
PAPERLESS_DBPORT: 6432
|
||||
PAPERLESS_DBNAME: paperless
|
||||
PAPERLESS_DBUSER: paperless
|
||||
PAPERLESS_DBPASS: ${PAPERLESS_DBPASS}
|
||||
PAPERLESS_EMPTY_TRASH_DIR: ../trash
|
||||
PAPERLESS_FILENAME_FORMAT: '{created_year}/{correspondent}/{document_type}/{title}'
|
||||
PAPERLESS_OCR_ROTATE_PAGES_THRESHOLD: 6
|
||||
PAPERLESS_OCR_PAGES: 0 # Process all pages (current default)
|
||||
PAPERLESS_OCR_MODE: skip # Skip OCR on already-OCRed docs (current default)
|
||||
PAPERLESS_TASK_WORKERS: 2
|
||||
PAPERLESS_THREADS_PER_WORKER: 2 # For OCR parallelization
|
||||
PAPERLESS_WEBSERVER_WORKERS: 1 # Keep at 1 for 4-core system
|
||||
USERMAP_UID: 1026
|
||||
USERMAP_GID: 100
|
||||
PAPERLESS_TIME_ZONE: America/Los_Angeles
|
||||
PAPERLESS_ADMIN_USER: stray
|
||||
PAPERLESS_ADMIN_PASSWORD: ${PAPERLESS_ADMIN_PASSWORD}
|
||||
PAPERLESS_URL: https://paperlessngx.straymoog.xyz
|
||||
PAPERLESS_CSRF_TRUSTED_ORIGINS: https://paperlessngx.straymoog.xyz
|
||||
PAPERLESS_OCR_LANGUAGE: eng
|
||||
PAPERLESS_TIKA_ENABLED: 1
|
||||
PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000
|
||||
PAPERLESS_TIKA_ENDPOINT: http://tika:9998
|
||||
PAPERLESS_OCR_USER_ARGS: '{"invalidate_digital_signatures": true}'
|
||||
PAPERLESS_DB_READ_CACHE_ENABLED: true
|
||||
PAPERLESS_READ_CACHE_TTL: 3600 # 1 hour cache
|
||||
PAPERLESS_DB_POOLSIZE: 4
|
||||
restart: on-failure:5
|
||||
depends_on:
|
||||
redis:
|
||||
condition: service_healthy
|
||||
tika:
|
||||
condition: service_started
|
||||
gotenberg:
|
||||
condition: service_started
|
||||
networks:
|
||||
- paperless-ngx_default
|
||||
- paperless_shared
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
memory: 5G
|
||||
reservations:
|
||||
memory: 2.5G
|
||||
|
||||
networks:
|
||||
paperless-ngx_default:
|
||||
driver: bridge
|
||||
paperless_shared:
|
||||
external: true
|
||||
name: paperless_shared
|
||||
Reference in New Issue
Block a user