From 90544d19dea001301060eb5db130b1fb4a1fe7a3 Mon Sep 17 00:00:00 2001 From: openhands Date: Thu, 16 Jul 2026 05:08:05 +0000 Subject: [PATCH] fix remaining non-_dev stacks: bookstack, gitea, heimdall, invokeai, n8n, nextcloud, opencode, paperless, pihole, qbittorrent, stash --- bookstack/compose.yaml | 34 ++++++-------- bookstack/sample.env | 19 ++++---- gitea/compose.yaml | 34 ++++++-------- gitea/sample.env | 17 ++++--- heimdall/compose.yaml | 5 +-- heimdall/sample.env | 7 +-- invokeai/compose.yaml | 12 +++-- invokeai/sample.env | 3 +- n8n/compose.yaml | 9 ++-- n8n/sample.env | 15 ++----- nextcloud/compose.yaml | 34 +++++++------- nextcloud/sample.env | 16 ++++--- opencode/compose.yaml | 25 ++++++----- opencode/sample.env | 9 ++-- paperless/compose.yaml | 97 ++++++++++++++++++---------------------- paperless/sample.env | 24 ++++++---- pihole/compose.yaml | 9 ++-- pihole/sample.env | 8 ++-- qbittorrent/compose.yaml | 22 +++++---- qbittorrent/sample.env | 8 ++-- stash/compose.yaml | 18 ++++---- stash/sample.env | 7 ++- 22 files changed, 211 insertions(+), 221 deletions(-) diff --git a/bookstack/compose.yaml b/bookstack/compose.yaml index 6bfc2d9..8e9cfbe 100644 --- a/bookstack/compose.yaml +++ b/bookstack/compose.yaml @@ -1,12 +1,10 @@ services: bookstack: image: ${BOOKSTACK_IMAGE:-solidnerd/bookstack:latest} - restart: unless-stopped - depends_on: - - mariadb + restart: ${BOOKSTACK_RESTART:-unless-stopped} volumes: - - bookstack-storage:/var/www/bookstack/storage/uploads - - bookstack-uploads:/var/www/bookstack/public/uploads + - ${VOL_PATH}/bookstack/uploads:/var/www/bookstack/storage/uploads + - ${VOL_PATH}/bookstack/public:/var/www/bookstack/public/uploads environment: - APP_KEY=${BOOKSTACK_APP_KEY:-APP_KEY} - APP_TIMEZONE=${BOOKSTACK_APP_TIMEZONE:-America/Vancouver} @@ -17,32 +15,28 @@ services: - DB_USERNAME=${BOOKSTACK_DB_USERNAME:-dbuser} - REVISION_LIMIT=${BOOKSTACK_REVISION_LIMIT:-false} ports: - - "8080:8080" + - ${BOOKSTACK_PORT:-8080}:8080 networks: - proxy - internal + depends_on: + - mariadb mariadb: image: ${MARIADB_IMAGE:-mariadb:latest} - restart: unless-stopped + restart: ${MARIADB_RESTART:-unless-stopped} command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb-file-per-table=1 --skip-innodb-read-only-compressed - environment: - - MARIADB_DATABASE=${MARIADB_MARIADB_DATABASE:-bookstack} - - MARIADB_ROOT_PASSWORD=${MARIADB_MARIADB_ROOT_PASSWORD:-ChangeThisPassword} - - MARIADB_USER=${MARIADB_MARIADB_USER:-dbuser} - - MARIADB_PASSWORD=${MARIADB_MARIADB_PASSWORD:-AlsoChangeThisPassword} volumes: - - mariadb-data:/var/lib/mysql + - ${VOL_PATH}/bookstack/db:/var/lib/mysql + environment: + - MARIADB_DATABASE=${BOOKSTACK_DB_DATABASE:-bookstack} + - MARIADB_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD:-ChangeThisPassword} + - MARIADB_USER=${BOOKSTACK_DB_USERNAME:-dbuser} + - MARIADB_PASSWORD=${BOOKSTACK_DB_PASSWORD:-AlsoChangeThisPassword} networks: - internal -volumes: - bookstack-php-config: - bookstack-storage: - bookstack-uploads: - mariadb-data: - networks: proxy: external: true - internal: \ No newline at end of file + internal: diff --git a/bookstack/sample.env b/bookstack/sample.env index 5fe1491..95ed9c4 100644 --- a/bookstack/sample.env +++ b/bookstack/sample.env @@ -1,18 +1,17 @@ +# Compose +VOL_PATH=/data +BOOKSTACK_IMAGE=solidnerd/bookstack:latest +BOOKSTACK_RESTART=unless-stopped +BOOKSTACK_PORT=8080 +MARIADB_IMAGE=mariadb:latest +MARIADB_RESTART=unless-stopped +MARIADB_ROOT_PASSWORD=ChangeThisPassword + # Bookstack BOOKSTACK_APP_KEY=APP_KEY BOOKSTACK_APP_TIMEZONE=America/Vancouver BOOKSTACK_APP_URL=http://localhost:8080 BOOKSTACK_DB_DATABASE=bookstack -BOOKSTACK_DB_HOST=mariadb:3306 BOOKSTACK_DB_PASSWORD=dbpass BOOKSTACK_DB_USERNAME=dbuser -BOOKSTACK_IMAGE=solidnerd/bookstack:latest BOOKSTACK_REVISION_LIMIT=false - -# MariaDB -MARIADB_IMAGE=mariadb:latest -MARIADB_MARIADB_DATABASE=bookstack -MARIADB_MARIADB_ROOT_PASSWORD=ChangeThisPassword -MARIADB_MARIADB_USER=dbuser -MARIADB_MARIADB_PASSWORD=AlsoChangeThisPassword - diff --git a/gitea/compose.yaml b/gitea/compose.yaml index 5bbe8b5..e5ce886 100644 --- a/gitea/compose.yaml +++ b/gitea/compose.yaml @@ -1,12 +1,9 @@ -# Gitea - services: - gitea: - image: ${GITEA_IMAGE} + image: ${GITEA_IMAGE:-gitea/gitea:latest} restart: ${GITEA_RESTART:-always} volumes: - - ${VOL_PATH}/gitea/gitea:/data + - ${VOL_PATH}/gitea/data:/data environment: - USER_UID=1000 - USER_GID=1000 @@ -22,32 +19,29 @@ services: - GITEA__server__SSH_PORT=${GITEA_SSH_PORT:-22} - ENABLE_SWAGGER=true - MAX_RESPONSE_ITEMS=15 - ports: - - ${GITEA_HOST_SSH_PORT:-22}:${GITEA_SSH_PORT:-22} - - ${GITEA_WEB_PORT:-3000}:3000 + - ${GITEA_SSH_PORT:-22}:22 + - ${GITEA_PORT:-3000}:3000 networks: - proxy - - db + - internal depends_on: - gitea-db gitea-db: - image: ${MARIA_IMAGE:-mariadb:latest} - restart: ${GITEA_RESTART:-always} + image: ${MARIADB_IMAGE:-mariadb:latest} + restart: ${MARIADB_RESTART:-unless-stopped} volumes: - - ${VOL_PATH}/gitea/gitea-db:/var/lib/mysql + - ${VOL_PATH}/gitea/db:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD: ${MARIA_ROOT:-changeMe} - MYSQL_USER: ${GITEA_DB_USER:-gitea} - MYSQL_PASSWORD: ${GITEA_DB_PASS:-changeMe} - MYSQL_DATABASE: ${GITEA_DB_NAME:-gitea} - TZ: ${TZ:-America/Vancouver} + - MARIADB_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD:-changeMe} + - MARIADB_USER=${GITEA_DB_USER:-gitea} + - MARIADB_PASSWORD=${GITEA_DB_PASS:-changeMe} + - MARIADB_DATABASE=${GITEA_DB_NAME:-gitea} networks: - - db + - internal networks: proxy: external: true - db: - driver: bridge + internal: diff --git a/gitea/sample.env b/gitea/sample.env index 80d41b4..b0e7562 100644 --- a/gitea/sample.env +++ b/gitea/sample.env @@ -1,20 +1,19 @@ +# Compose VOL_PATH=/data +GITEA_IMAGE=gitea/gitea:latest +GITEA_RESTART=always +GITEA_PORT=3000 +GITEA_SSH_PORT=22 +MARIADB_IMAGE=mariadb:latest +MARIADB_RESTART=unless-stopped +MARIADB_ROOT_PASSWORD=changeMe # Gitea -GITEA_IMAGE=gitea/gitea:latest GITEA_DB_HOST=gitea-db:3306 GITEA_DB_PASS=changeMe GITEA_DB_NAME=gitea GITEA_DB_USER=gitea GITEA_SSH_DOMAIN=git.example.com -GITEA_SSH_PORT=22 -GITEA_HOST_SSH_PORT=22 -GITEA_WEB_PORT=3000 -GITEA_RESTART=always GITEA_ROOT_URL=https://git.example.com/ GITEA_DOMAIN=git.example.com - -# MariaDB TZ=America/Vancouver -MARIA_IMAGE=mariadb:latest -MARIA_ROOT=changeMe \ No newline at end of file diff --git a/heimdall/compose.yaml b/heimdall/compose.yaml index 8749fc1..c24486b 100644 --- a/heimdall/compose.yaml +++ b/heimdall/compose.yaml @@ -1,10 +1,9 @@ -# Heimdall services: heimdall: - image: ${HEIMDALL_IMAGE} + image: ${HEIMDALL_IMAGE:-linuxserver/heimdall:latest} restart: ${HEIMDALL_RESTART:-unless-stopped} volumes: - - ${VOL_PATH:-./data}/heimdall:/config + - ${VOL_PATH}/heimdall:/config environment: - PGID=${HEIMDALL_PGID:-1000} - PUID=${HEIMDALL_PUID:-1000} diff --git a/heimdall/sample.env b/heimdall/sample.env index 1c936bd..1912e21 100644 --- a/heimdall/sample.env +++ b/heimdall/sample.env @@ -1,7 +1,8 @@ +# Compose +VOL_PATH=/data HEIMDALL_IMAGE=linuxserver/heimdall:latest HEIMDALL_RESTART=unless-stopped -VOL_PATH=/data +HEIMDALL_PORT=8000 HEIMDALL_PGID=1000 HEIMDALL_PUID=1000 -HEIMDALL_PORT=8000 -TZ=America/Vancouver \ No newline at end of file +TZ=America/Vancouver diff --git a/invokeai/compose.yaml b/invokeai/compose.yaml index 150a70d..8aeef70 100644 --- a/invokeai/compose.yaml +++ b/invokeai/compose.yaml @@ -1,13 +1,17 @@ -# InvokeAI Docker Compose services: invokeai: image: ${INVOKEAI_IMAGE:-ghcr.io/invoke-ai/invokeai:latest} restart: ${INVOKEAI_RESTART:-unless-stopped} volumes: - - ${VOL_PATH:-/data}/invokeai:/invokeai + - ${VOL_PATH}/invokeai:/invokeai environment: - INVOKEAI_ROOT=/invokeai - INVOKEAI_PORT=${INVOKEAI_PORT:-9090} ports: - - "${INVOKEAI_PORT:-9090}:9090" - gpus: all + - ${INVOKEAI_PORT:-9090}:9090 + networks: + - proxy + +networks: + proxy: + external: true diff --git a/invokeai/sample.env b/invokeai/sample.env index 0504e0a..416dbff 100644 --- a/invokeai/sample.env +++ b/invokeai/sample.env @@ -1,4 +1,5 @@ +# Compose +VOL_PATH=/data INVOKEAI_IMAGE=ghcr.io/invoke-ai/invokeai:latest INVOKEAI_RESTART=unless-stopped INVOKEAI_PORT=9090 -VOL_PATH=/data diff --git a/n8n/compose.yaml b/n8n/compose.yaml index 552e3b5..1205aac 100644 --- a/n8n/compose.yaml +++ b/n8n/compose.yaml @@ -1,12 +1,10 @@ services: n8n: image: ${N8N_IMAGE:-n8nio/n8n:latest} - restart: unless-stopped + restart: ${N8N_RESTART:-unless-stopped} volumes: - ${VOL_PATH}/n8n/data:/home/node/.n8n - ${VOL_PATH}/n8n/files:/files - ports: - - "${N8N_PORT:-5678}:${N8N_PORT:-5678}" environment: - GENERIC_TIMEZONE=${TZ:-America/Vancouver} - TZ=${TZ:-America/Vancouver} @@ -17,10 +15,11 @@ services: - N8N_PORT=${N8N_PORT:-5678} - N8N_HOST=${N8N_HOST:-localhost} - N8N_EDITOR_BASE_URL=${N8N_EDITOR_BASE_URL:-http://localhost:5678} - - WEBHOOK_URL=${N8N_HOST:-http://localhost:5678} + - WEBHOOK_URL=${N8N_HOST:-http://localhost:5678} - N8N_SECURE_COOKIE=${N8N_SECURE_COOKIE:-true} - HOME=/home/node - user: "1000:1000" + ports: + - ${N8N_PORT:-5678}:5678 networks: - proxy diff --git a/n8n/sample.env b/n8n/sample.env index 530b051..37c9e27 100644 --- a/n8n/sample.env +++ b/n8n/sample.env @@ -1,17 +1,10 @@ +# Compose VOL_PATH=/data -TZ="America/Vancouver" - -# n8n -N8N_IMAGE=n8nio/n8n:latest # or 2.16.1 +N8N_IMAGE=n8nio/n8n:latest +N8N_RESTART=unless-stopped N8N_PORT=5678 N8N_HOST=localhost N8N_PROTOCOL=http N8N_EDITOR_BASE_URL=http://localhost:5678 N8N_SECURE_COOKIE=true - -# NPM Reverse Proxy (override these): -# N8N_HOST=n8n.yourdomain.com -# N8N_PROTOCOL=https -# N8N_EDITOR_BASE_URL=https://n8n.yourdomain.com -# WEBHOOK_URL=https://n8n.yourdomain.com -# N8N_SECURE_COOKIE=true \ No newline at end of file +TZ=America/Vancouver diff --git a/nextcloud/compose.yaml b/nextcloud/compose.yaml index 49533aa..a6cc352 100644 --- a/nextcloud/compose.yaml +++ b/nextcloud/compose.yaml @@ -1,39 +1,37 @@ services: nextcloud-db: image: ${MARIADB_IMAGE:-mariadb:latest} - restart: unless-stopped + restart: ${MARIADB_RESTART:-unless-stopped} command: > --transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb-file-per-table=1 --skip-innodb-read-only-compressed - environment: - - MARIADB_DATABASE=${NEXTCLOUD_DB:-mydb} - - MARIADB_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD:-ChangeThisPassword} - - MARIADB_USER=${NEXTCLOUD_DB_USER:-dbuser} - - MARIADB_PASSWORD=${NEXTCLOUD_DB_PASSWORD:-AlsoChangeThisPassword} volumes: - - ${VOL_PATH:-./data}/nextcloud/db:/var/lib/mysql + - ${VOL_PATH}/nextcloud/db:/var/lib/mysql + environment: + - MARIADB_DATABASE=${NEXTCLOUD_DB:-nextcloud} + - MARIADB_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD:-ChangeThisPassword} + - MARIADB_USER=${NEXTCLOUD_DB_USER:-nextcloud} + - MARIADB_PASSWORD=${NEXTCLOUD_DB_PASSWORD:-ChangeThisPassword} networks: - - nextcloud + - internal nextcloud: image: ${NEXTCLOUD_IMAGE:-nextcloud:latest} - restart: unless-stopped + restart: ${NEXTCLOUD_RESTART:-unless-stopped} + volumes: + - ${VOL_PATH}/nextcloud/data:/var/www/html environment: - - MYSQL_PASSWORD=${NEXTCLOUD_DB_PASSWORD:-password} + - MYSQL_PASSWORD=${NEXTCLOUD_DB_PASSWORD:-ChangeThisPassword} - MYSQL_DATABASE=${NEXTCLOUD_DB:-nextcloud} - MYSQL_USER=${NEXTCLOUD_DB_USER:-nextcloud} - MYSQL_HOST=${NEXTCLOUD_DB_HOST:-nextcloud-db} - volumes: - - ${VOL_PATH:-./data}/nextcloud/nextcloud:/var/www/html networks: - - nextcloud - proxy - -networks: - nextcloud: - driver: bridge + - internal +networks: proxy: - external: true \ No newline at end of file + external: true + internal: diff --git a/nextcloud/sample.env b/nextcloud/sample.env index 485905f..d04bb17 100644 --- a/nextcloud/sample.env +++ b/nextcloud/sample.env @@ -1,11 +1,13 @@ +# Compose VOL_PATH=/data - -#DB -MARIADB_IMAGE=mariadb:12.3.2 -MARIADB_ROOT_PASSWORD=ChangeThisPassword -# nextcloud NEXTCLOUD_IMAGE=nextcloud:latest -NEXTCLOUD_DB_PASSWORD=password +NEXTCLOUD_RESTART=unless-stopped +MARIADB_IMAGE=mariadb:latest +MARIADB_RESTART=unless-stopped +MARIADB_ROOT_PASSWORD=ChangeThisPassword + +# Nextcloud NEXTCLOUD_DB=nextcloud NEXTCLOUD_DB_USER=nextcloud -NEXTCLOUD_DB_HOST=nextcloud-db \ No newline at end of file +NEXTCLOUD_DB_PASSWORD=ChangeThisPassword +NEXTCLOUD_DB_HOST=nextcloud-db diff --git a/opencode/compose.yaml b/opencode/compose.yaml index b5aa19c..64eb19b 100644 --- a/opencode/compose.yaml +++ b/opencode/compose.yaml @@ -1,22 +1,27 @@ -# OpenCode Docker Compose - services: opencode: - image: ${OPENCODE_IMAGE_NAME:-ghcr.io/anomalyco/opencode:latest} + image: ${OPENCODE_IMAGE:-ghcr.io/anomalyco/opencode:latest} restart: ${OPENCODE_RESTART:-unless-stopped} - volumes: - - ${VOL_PATH:-/data}/opencode/config:/config - - ${VOL_PROJECTS:-/data/projects}:/projects - + - ${VOL_PATH}/opencode/config:/config + - ${VOL_PROJECTS:-${VOL_PATH}/projects}:/projects environment: - OPENCODE_PORT=${OPENCODE_PORT:-4096} - OPENCODE_HOSTNAME=${OPENCODE_HOSTNAME:-0.0.0.0} - OPENCODE_CONFIG=/config/config.json - OPENCODE_MODEL=qwen3:8b-16k - OLLAMA_HOST=${OLLAMA_HOST_URL:-http://localhost:11434} - ports: - - "${OPENCODE_PORT:-4096}:4096" + - ${OPENCODE_PORT:-4096}:4096 + command: + - serve + - --port + - ${OPENCODE_PORT:-4096} + - --hostname + - 0.0.0.0 + networks: + - proxy - command: ["serve", "--port", "${OPENCODE_PORT:-4096}", "--hostname", "0.0.0.0"] +networks: + proxy: + external: true diff --git a/opencode/sample.env b/opencode/sample.env index 31116c0..1c22c75 100644 --- a/opencode/sample.env +++ b/opencode/sample.env @@ -1,7 +1,8 @@ -OPENCODE_IMAGE_NAME=ghcr.io/anomalyco/opencode:latest +# Compose +VOL_PATH=/data +VOL_PROJECTS=/data/projects +OPENCODE_IMAGE=ghcr.io/anomalyco/opencode:latest OPENCODE_RESTART=unless-stopped -VOL_PATH=/home/youruser/.local/share -VOL_PROJECTS=/home/youruser/projects OPENCODE_PORT=4096 OPENCODE_HOSTNAME=0.0.0.0 -OLLAMA_HOST=http://localhost:11434 \ No newline at end of file +OLLAMA_HOST=http://localhost:11434 diff --git a/paperless/compose.yaml b/paperless/compose.yaml index 645d7cf..c11c6bc 100644 --- a/paperless/compose.yaml +++ b/paperless/compose.yaml @@ -1,82 +1,73 @@ -############################################################################### -# Paperless-ngx -# Modifed from: https://github.com/paperless-ngx/paperless-ngx/blob/main/docker/compose/docker-compose.mariadb-tika.yml -############################################################################### - services: - paperless-broker: - image: docker.io/library/redis:8 - restart: unless-stopped + image: ${REDIS_IMAGE:-redis:8} + restart: ${REDIS_RESTART:-unless-stopped} volumes: - - ${VOL_PATH:-/data}/paperless/redis:/data + - ${VOL_PATH}/paperless/redis:/data networks: - - paperless + - internal paperless-db: - image: docker.io/library/mariadb:12 - restart: unless-stopped + image: ${MARIADB_IMAGE:-mariadb:latest} + restart: ${MARIADB_RESTART:-unless-stopped} volumes: - - ${VOL_PATH:-/data}/paperless/db:/var/lib/mysql + - ${VOL_PATH}/paperless/db:/var/lib/mysql environment: - MARIADB_HOST: ${PAPERLESS_MARIADB_HOST:-paperless-db} - MARIADB_DATABASE: ${PAPERLESS_MARIADB_DATABASE:-paperless} - MARIADB_USER: ${PAPERLESS_MARIADB_USER:-paperless} - MARIADB_PASSWORD: ${PAPERLESS_MARIADB_PASSWORD:-paperless} - MARIADB_ROOT_PASSWORD: ${PAPERLESS_MARIADB_ROOT_PASSWORD:-paperless} + - MARIADB_HOST=paperless-db + - MARIADB_DATABASE=${PAPERLESS_MARIADB_DATABASE:-paperless} + - MARIADB_USER=${PAPERLESS_MARIADB_USER:-paperless} + - MARIADB_PASSWORD=${PAPERLESS_MARIADB_PASSWORD:-paperless} + - MARIADB_ROOT_PASSWORD=${PAPERLESS_MARIADB_ROOT_PASSWORD:-paperless} networks: - - paperless + - internal paperless-webserver: image: ${PAPERLESS_IMAGE:-ghcr.io/paperless-ngx/paperless-ngx:latest} - restart: unless-stopped + restart: ${PAPERLESS_RESTART:-unless-stopped} volumes: - - ${VOL_PATH:-/data}/paperless/data:/usr/src/paperless/data - - ${VOL_PATH:-/data}/paperless/media:/usr/src/paperless/media - - ${VOL_PATH:-/data}/paperless/export:/usr/src/paperless/export - - ${VOL_PATH:-/data}/paperless/consume:/usr/src/paperless/consume + - ${VOL_PATH}/paperless/data:/usr/src/paperless/data + - ${VOL_PATH}/paperless/media:/usr/src/paperless/media + - ${VOL_PATH}/paperless/export:/usr/src/paperless/export + - ${VOL_PATH}/paperless/consume:/usr/src/paperless/consume environment: - PAPERLESS_REDIS: redis://paperless-broker:6379 - PAPERLESS_DBENGINE: mariadb - PAPERLESS_DBHOST: paperless-db - PAPERLESS_DBUSER: ${PAPERLESS_MARIADB_USER:-paperless} - PAPERLESS_DBPASS: ${PAPERLESS_MARIADB_PASSWORD:-paperless} - PAPERLESS_DBPORT: 3306 - PAPERLESS_TIKA_ENABLED: 1 - PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://paperless-gotenberg:3000 - PAPERLESS_TIKA_ENDPOINT: http://paperless-tika:9998 - PAPERLESS_TIME_ZONE: ${TZ:-America/Vancouver} - PAPERLESS_SECRET_KEY: ${PAPERLESS_SECRET_KEY:-changeme} - PAPERLESS_OCR_LANGUAGE: ${PAPERLESS_OCR_LANGUAGE:-eng} - PAPERLESS_URL: ${PAPERLESS_URL:-http://localhost} - PAPERLESS_CONSUMER_DELETE_DUPLICATES: ${PAPERLESS_CONSUMER_DELETE_DUPLICATES:-0} - PAPERLESS_CONSUMER_RECURSIVE: 1 + - PAPERLESS_REDIS=redis://paperless-broker:6379 + - PAPERLESS_DBENGINE=mariadb + - PAPERLESS_DBHOST=paperless-db + - PAPERLESS_DBUSER=${PAPERLESS_MARIADB_USER:-paperless} + - PAPERLESS_DBPASS=${PAPERLESS_MARIADB_PASSWORD:-paperless} + - PAPERLESS_DBPORT=3306 + - PAPERLESS_TIKA_ENABLED=1 + - PAPERLESS_TIKA_GOTENBERG_ENDPOINT=http://paperless-gotenberg:3000 + - PAPERLESS_TIKA_ENDPOINT=http://paperless-tika:9998 + - PAPERLESS_TIME_ZONE=${TZ:-America/Vancouver} + - PAPERLESS_SECRET_KEY=${PAPERLESS_SECRET_KEY:-changeme} + - PAPERLESS_OCR_LANGUAGE=${PAPERLESS_OCR_LANGUAGE:-eng} + - PAPERLESS_URL=${PAPERLESS_URL:-http://localhost} + - PAPERLESS_CONSUMER_DELETE_DUPLICATES=${PAPERLESS_CONSUMER_DELETE_DUPLICATES:-0} + - PAPERLESS_CONSUMER_RECURSIVE=1 ports: - ${PAPERLESS_PORT:-8000}:8000 networks: - - paperless - proxy + - internal paperless-gotenberg: - image: docker.io/gotenberg/gotenberg:8.25 - 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. + image: ${GOTENBERG_IMAGE:-gotenberg/gotenberg:8.25} + restart: ${GOTENBERG_RESTART:-unless-stopped} command: - - "gotenberg" - - "--chromium-disable-javascript=true" - - "--chromium-allow-list=file:///tmp/.*" + - gotenberg + - --chromium-disable-javascript=true + - --chromium-allow-list=file:///tmp/.* networks: - - paperless + - internal paperless-tika: - image: docker.io/apache/tika:latest - restart: unless-stopped + image: ${TIKA_IMAGE:-apache/tika:latest} + restart: ${TIKA_RESTART:-unless-stopped} networks: - - paperless + - internal networks: proxy: external: true - paperless: - driver: bridge \ No newline at end of file + internal: diff --git a/paperless/sample.env b/paperless/sample.env index 34fd4c3..efe8000 100644 --- a/paperless/sample.env +++ b/paperless/sample.env @@ -1,12 +1,18 @@ -############################################################################### -# Paperless-ngx settings # -# See http://docs.paperless-ngx.com/configuration/ for all available options. -############################################################################### - -TZ=America/Vancouver -VOL_PATH=./data - +# Compose +VOL_PATH=/data PAPERLESS_IMAGE=ghcr.io/paperless-ngx/paperless-ngx:latest +PAPERLESS_RESTART=unless-stopped +PAPERLESS_PORT=8000 +MARIADB_IMAGE=mariadb:latest +MARIADB_RESTART=unless-stopped +REDIS_IMAGE=redis:8 +REDIS_RESTART=unless-stopped +GOTENBERG_IMAGE=gotenberg/gotenberg:8.25 +GOTENBERG_RESTART=unless-stopped +TIKA_IMAGE=apache/tika:latest +TIKA_RESTART=unless-stopped + +# Paperless PAPERLESS_MARIADB_HOST=paperless-db PAPERLESS_MARIADB_DATABASE=paperless PAPERLESS_MARIADB_USER=paperless @@ -16,4 +22,4 @@ PAPERLESS_SECRET_KEY=changeme PAPERLESS_OCR_LANGUAGE=eng PAPERLESS_URL=http://localhost PAPERLESS_CONSUMER_DELETE_DUPLICATES=0 -PAPERLESS_PORT=8000 \ No newline at end of file +TZ=America/Vancouver diff --git a/pihole/compose.yaml b/pihole/compose.yaml index 2607db6..f56f8e7 100644 --- a/pihole/compose.yaml +++ b/pihole/compose.yaml @@ -1,19 +1,16 @@ services: pihole: image: ${PIHOLE_IMAGE:-pihole/pihole:latest} - restart: unless-stopped + restart: ${PIHOLE_RESTART:-unless-stopped} volumes: - - '${VOL_PATH}/pihole/pihole:/etc/pihole' - - '${VOL_PATH}/pihole/dnsmasq:/etc/dnsmasq.d' + - ${VOL_PATH}/pihole/etc:/etc/pihole + - ${VOL_PATH}/pihole/dnsmasq:/etc/dnsmasq.d environment: - TZ=${TZ:-America/Vancouver} - FTLCONF_dns_listeningMode=ALL - FTLCONF_webserver_port=8080o,[::]:8080o,8443os,[::]:8443os network_mode: host cap_add: - # See https://github.com/pi-hole/docker-pi-hole#note-on-capabilities - NET_ADMIN - # Required if you are using Pi-hole as your NTP client to be able to set the host's system time - SYS_TIME - # Optional, if Pi-hole should get some more processing time - SYS_NICE diff --git a/pihole/sample.env b/pihole/sample.env index 9f45f0d..165d407 100644 --- a/pihole/sample.env +++ b/pihole/sample.env @@ -1,3 +1,5 @@ -TZ="America/Vancouver" -PIHOLE_IMAGE="pihole/pihole:2026.05.0" -VOL_PATH="/data/" \ No newline at end of file +# Compose +VOL_PATH=/data +PIHOLE_IMAGE=pihole/pihole:latest +PIHOLE_RESTART=unless-stopped +TZ=America/Vancouver diff --git a/qbittorrent/compose.yaml b/qbittorrent/compose.yaml index b5b6f6f..e253f42 100644 --- a/qbittorrent/compose.yaml +++ b/qbittorrent/compose.yaml @@ -1,18 +1,24 @@ services: qbittorrent: image: ${QBT_IMAGE:-trigus42/qbittorrentvpn:latest} + restart: ${QBT_RESTART:-unless-stopped} + volumes: + - ${VOL_PATH}/qbit/config:/config + - ${VOL_PATH}/qbit/downloads:/downloads + - ${VOL_PATH}/qbit/incomplete:/incomplete + - /dev/net/tun:/dev/net/tun environment: - VPN_TYPE=wireguard - WEBUI_PASSWORD=${QBT_PASS:-ChangeMePass} - volumes: - - "${VOL_PATH:-/data}/qbit/config:/config" - - "${VOL_PATH:-/data}/qbit/downloads:/downloads" - - "${VOL_PATH:-/data}/qbit/incomplete:/incomplete" - - '/dev/net/tun:/dev/net/tun' ports: - - 8080:8080 - restart: unless-stopped + - ${QBT_PORT:-8080}:8080 cap_add: - NET_ADMIN sysctls: - - net.ipv4.conf.all.src_valid_mark=1 \ No newline at end of file + - net.ipv4.conf.all.src_valid_mark=1 + networks: + - proxy + +networks: + proxy: + external: true diff --git a/qbittorrent/sample.env b/qbittorrent/sample.env index e7c6903..145b471 100644 --- a/qbittorrent/sample.env +++ b/qbittorrent/sample.env @@ -1,4 +1,6 @@ -# qbittorrent -QBT_IMAGE=trigus42/qbittorrentvpn:latest -QBT_PASS=01234567890 +# Compose VOL_PATH=/data +QBT_IMAGE=trigus42/qbittorrentvpn:latest +QBT_RESTART=unless-stopped +QBT_PORT=8080 +QBT_PASS=ChangeMePass diff --git a/stash/compose.yaml b/stash/compose.yaml index b5f3823..ef7042e 100644 --- a/stash/compose.yaml +++ b/stash/compose.yaml @@ -1,25 +1,23 @@ services: stashapp: image: ${STASHAPP_IMAGE:-stashapp/stash:latest} - # image: ghcr.io/hotio/stash # Alternative image restart: ${STASHAPP_RESTART:-unless-stopped} volumes: - - /etc/localtime:/etc/localtime:ro - - ${VOL_PATH:-./data}/stash/generated:/generated - - ${VOL_PATH:-./data}/stash/metadata:/metadata - - ${VOL_PATH:-./data}/stash/root:/root/.stash + - ${VOL_PATH}/stash/generated:/generated + - ${VOL_PATH}/stash/metadata:/metadata + - ${VOL_PATH}/stash/root:/root/.stash - ${STASH_CONTENT_PATH:-/data/stash}:/data environment: - STASH_CACHE=${STASHAPP_CACHE:-/cache/} - STASH_DOMAIN_NAME=${STASHAPP_DOMAIN:-stash.yourdomain.ca} - - STASH_GENERATED=${STASHAPP_GENERATED:-/generated/} - - STASH_METADATA=${STASHAPP_METADATA:-/metadata/} - - STASH_STASH=${STASHAPP_STASH:-/data/} + - STASH_GENERATED=/generated/ + - STASH_METADATA=/metadata/ + - STASH_STASH=/data/ ports: - - "${STASHAPP_PORT:-9999}:9999" + - ${STASHAPP_PORT:-9999}:9999 networks: - proxy networks: proxy: - external: true \ No newline at end of file + external: true diff --git a/stash/sample.env b/stash/sample.env index c129e89..afec732 100644 --- a/stash/sample.env +++ b/stash/sample.env @@ -1,12 +1,11 @@ +# Compose VOL_PATH=/data STASH_CONTENT_PATH=/data/stash -# stashapp -STASHAPP_IMAGE=stashapp/stash:latest # https://hub.docker.com/r/stashapp/stash/tags -# ghcr.io/hotio/stash # Alternative image +STASHAPP_IMAGE=stashapp/stash:latest STASHAPP_RESTART=unless-stopped +STASHAPP_PORT=9999 STASHAPP_CACHE=/cache/ STASHAPP_DOMAIN=stash.yourdomain.ca STASHAPP_GENERATED=/generated/ STASHAPP_METADATA=/metadata/ STASHAPP_STASH=/data/ -STASHAPP_PORT=9999 \ No newline at end of file