- 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>
167 lines
3.7 KiB
YAML
167 lines
3.7 KiB
YAML
version: '3.8'
|
|
|
|
services:
|
|
db:
|
|
image: postgres:16
|
|
container_name: PostgreSQL
|
|
environment:
|
|
- POSTGRES_DB=postgres
|
|
- POSTGRES_USER=root
|
|
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
|
- POSTGRES_INITDB_ARGS=--encoding=UTF8 --lc-collate=C --lc-ctype=C
|
|
|
|
command:
|
|
- "postgres"
|
|
- "-c"
|
|
- "shared_buffers=2GB"
|
|
- "-c"
|
|
- "effective_cache_size=6GB"
|
|
- "-c"
|
|
- "maintenance_work_mem=512MB"
|
|
- "-c"
|
|
- "checkpoint_completion_target=0.9"
|
|
- "-c"
|
|
- "wal_buffers=16MB"
|
|
- "-c"
|
|
- "default_statistics_target=100"
|
|
- "-c"
|
|
- "random_page_cost=1.1"
|
|
- "-c"
|
|
- "effective_io_concurrency=200"
|
|
- "-c"
|
|
- "work_mem=32MB"
|
|
- "-c"
|
|
- "min_wal_size=1GB"
|
|
- "-c"
|
|
- "max_wal_size=4GB"
|
|
- "-c"
|
|
- "max_worker_processes=8"
|
|
- "-c"
|
|
- "max_parallel_workers_per_gather=4"
|
|
- "-c"
|
|
- "max_parallel_workers=8"
|
|
- "-c"
|
|
- "max_parallel_maintenance_workers=4"
|
|
- "-c"
|
|
- "max_connections=100"
|
|
- "-c"
|
|
- "log_min_duration_statement=1000"
|
|
- "-c"
|
|
- "log_line_prefix=%t [%p]: [%l-1] user=%u,db=%d,app=%a,client=%h "
|
|
- "-c"
|
|
- "log_checkpoints=on"
|
|
- "-c"
|
|
- "log_connections=on"
|
|
- "-c"
|
|
- "log_disconnections=on"
|
|
- "-c"
|
|
- "log_lock_waits=on"
|
|
- "-c"
|
|
- "log_temp_files=0"
|
|
- "-c"
|
|
- "autovacuum_max_workers=3"
|
|
- "-c"
|
|
- "autovacuum_naptime=10s"
|
|
- "-c"
|
|
- "shared_preload_libraries=pg_stat_statements"
|
|
|
|
volumes:
|
|
- /volume1/docker/postgresql:/var/lib/postgresql/data
|
|
|
|
networks:
|
|
- postgres01_default
|
|
- paperless_shared
|
|
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
memory: 8G
|
|
reservations:
|
|
memory: 4G
|
|
|
|
restart: unless-stopped
|
|
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -q -d postgres -U root"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 30s
|
|
|
|
pgbouncer:
|
|
image: pgbouncer/pgbouncer:latest
|
|
container_name: PgBouncer
|
|
environment:
|
|
- DATABASES_HOST=PostgreSQL
|
|
- DATABASES_PORT=5432
|
|
- DATABASES_USER=root
|
|
- DATABASES_PASSWORD=${POSTGRES_PASSWORD}
|
|
- DATABASES_DBNAME=paperless
|
|
- POOL_MODE=transaction
|
|
- MAX_CLIENT_CONN=100
|
|
- DEFAULT_POOL_SIZE=25
|
|
- MIN_POOL_SIZE=10
|
|
- RESERVE_POOL_SIZE=5
|
|
- RESERVE_POOL_TIMEOUT=3
|
|
- SERVER_IDLE_TIMEOUT=600
|
|
- LOG_CONNECTIONS=1
|
|
- LOG_DISCONNECTIONS=1
|
|
networks:
|
|
- paperless_shared
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
memory: 256M
|
|
reservations:
|
|
memory: 128M
|
|
restart: unless-stopped
|
|
|
|
pgadmin:
|
|
image: dpage/pgadmin4:latest
|
|
container_name: pgAdmin
|
|
environment:
|
|
- PGADMIN_DEFAULT_EMAIL=${PGADMIN_EMAIL:-admin@admin.com}
|
|
- PGADMIN_DEFAULT_PASSWORD=${PGADMIN_PASSWORD:-admin}
|
|
- PGADMIN_CONFIG_SERVER_MODE=True
|
|
- PGADMIN_CONFIG_MASTER_PASSWORD_REQUIRED=True
|
|
|
|
volumes:
|
|
- /volume1/docker/postgresadmin:/var/lib/pgadmin
|
|
|
|
ports:
|
|
- "2660:80"
|
|
|
|
networks:
|
|
- postgres01_default
|
|
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
memory: 512M
|
|
reservations:
|
|
memory: 256M
|
|
|
|
restart: unless-stopped
|
|
|
|
healthcheck:
|
|
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:80"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 30s
|
|
|
|
networks:
|
|
postgres01_default:
|
|
driver: bridge
|
|
paperless_shared:
|
|
external: true
|
|
name: paperless_shared
|