Stacks from Dockhand
This commit is contained in:
23
Stacks/DS1-Main/audiobookshelf/compose.yaml
Normal file
23
Stacks/DS1-Main/audiobookshelf/compose.yaml
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
services:
|
||||||
|
audiobookshelf:
|
||||||
|
container_name: Audiobookshelf
|
||||||
|
image: advplyr/audiobookshelf
|
||||||
|
security_opt:
|
||||||
|
- no-new-privileges:true
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD-SHELL", "nc -z 127.0.0.1 80 || exit 1"]
|
||||||
|
interval: 10s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
start_period: 90s
|
||||||
|
mem_limit: 4g
|
||||||
|
cpu_shares: 768
|
||||||
|
environment:
|
||||||
|
JWT_SECRET_KEY: dOxZYTTZgXKMHkqLBIQVImayQXAVWdzGBPuFJKggzcgvgPJPXpWzqzKaUOIOGGIr
|
||||||
|
ports:
|
||||||
|
- 13378:80
|
||||||
|
volumes:
|
||||||
|
- /volume1/docker/audiobookshelf:/config:rw
|
||||||
|
- /volume1/docker/audiobookshelf/metadata:/metadata:rw
|
||||||
|
- /volume1/data/docker/audiobookshelf/audiobooks:/audiobooks:rw
|
||||||
|
restart: on-failure:5
|
||||||
46
Stacks/DS1-Main/gitea/compose.yaml
Normal file
46
Stacks/DS1-Main/gitea/compose.yaml
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
services:
|
||||||
|
db:
|
||||||
|
image: postgres:18
|
||||||
|
container_name: Gitea-DB
|
||||||
|
hostname: gitea-db
|
||||||
|
security_opt:
|
||||||
|
- no-new-privileges:true
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "pg_isready", "-q", "-d", "gitea", "-U", "giteauser"]
|
||||||
|
timeout: 45s
|
||||||
|
interval: 10s
|
||||||
|
retries: 10
|
||||||
|
volumes:
|
||||||
|
- /volume1/docker/gitea/db:/var/lib/postgresql:rw
|
||||||
|
environment:
|
||||||
|
- POSTGRES_DB=gitea
|
||||||
|
- POSTGRES_USER=giteauser
|
||||||
|
- POSTGRES_PASSWORD=giteapass
|
||||||
|
restart: on-failure:5
|
||||||
|
|
||||||
|
web:
|
||||||
|
image: gitea/gitea:latest
|
||||||
|
container_name: Gitea
|
||||||
|
hostname: gitea
|
||||||
|
security_opt:
|
||||||
|
- no-new-privileges:true
|
||||||
|
healthcheck:
|
||||||
|
test: wget --no-verbose --tries=1 --spider http://localhost:3000/ || exit 1
|
||||||
|
ports:
|
||||||
|
- 3052:3000
|
||||||
|
- 2222:22
|
||||||
|
volumes:
|
||||||
|
- /volume1/docker/gitea/data:/data:rw
|
||||||
|
- /volume1/docker/gitea/data:/data/git/repositories:rw
|
||||||
|
- /etc/TZ:/etc/TZ:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
environment:
|
||||||
|
- USER_UID=1026
|
||||||
|
- USER_GID=100
|
||||||
|
- GITEA__database__DB_TYPE=postgres
|
||||||
|
- GITEA__database__HOST=gitea-db:5432
|
||||||
|
- GITEA__database__NAME=gitea
|
||||||
|
- GITEA__database__USER=giteauser
|
||||||
|
- GITEA__database__PASSWD=giteapass
|
||||||
|
- ROOT_URL=https://gitea.mschwab.net
|
||||||
|
restart: on-failure:5
|
||||||
76
Stacks/DS1-Main/immich/compose.yaml
Normal file
76
Stacks/DS1-Main/immich/compose.yaml
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
#
|
||||||
|
# WARNING: To install Immich, follow our guide: https://docs.immich.app/install/docker-compose
|
||||||
|
#
|
||||||
|
# Make sure to use the docker-compose.yml of the current release:
|
||||||
|
#
|
||||||
|
# https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
|
||||||
|
#
|
||||||
|
# The compose file on main may not be compatible with the latest release.
|
||||||
|
|
||||||
|
name: immich
|
||||||
|
|
||||||
|
services:
|
||||||
|
immich-server:
|
||||||
|
container_name: immich_server
|
||||||
|
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
|
||||||
|
# extends:
|
||||||
|
# file: hwaccel.transcoding.yml
|
||||||
|
# service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
|
||||||
|
volumes:
|
||||||
|
# Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file
|
||||||
|
- ${UPLOAD_LOCATION}:/data
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
env_file:
|
||||||
|
- stack.env
|
||||||
|
ports:
|
||||||
|
- '2283:2283'
|
||||||
|
depends_on:
|
||||||
|
- redis
|
||||||
|
- database
|
||||||
|
restart: always
|
||||||
|
healthcheck:
|
||||||
|
disable: false
|
||||||
|
|
||||||
|
immich-machine-learning:
|
||||||
|
container_name: immich_machine_learning
|
||||||
|
# For hardware acceleration, add one of -[armnn, cuda, rocm, openvino, rknn] to the image tag.
|
||||||
|
# Example tag: ${IMMICH_VERSION:-release}-cuda
|
||||||
|
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
|
||||||
|
# extends: # uncomment this section for hardware acceleration - see https://docs.immich.app/features/ml-hardware-acceleration
|
||||||
|
# file: hwaccel.ml.yml
|
||||||
|
# service: cpu # set to one of [armnn, cuda, rocm, openvino, openvino-wsl, rknn] for accelerated inference - use the `-wsl` version for WSL2 where applicable
|
||||||
|
volumes:
|
||||||
|
- model-cache:/cache
|
||||||
|
env_file:
|
||||||
|
- stack.env
|
||||||
|
restart: always
|
||||||
|
healthcheck:
|
||||||
|
disable: false
|
||||||
|
|
||||||
|
redis:
|
||||||
|
container_name: immich_redis
|
||||||
|
image: redis:8
|
||||||
|
healthcheck:
|
||||||
|
test: redis-cli ping || exit 1
|
||||||
|
restart: always
|
||||||
|
|
||||||
|
database:
|
||||||
|
container_name: immich_postgres
|
||||||
|
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:bcf63357191b76a916ae5eb93464d65c07511da41e3bf7a8416db519b40b1c23
|
||||||
|
environment:
|
||||||
|
POSTGRES_PASSWORD: ${DB_PASSWORD}
|
||||||
|
POSTGRES_USER: ${DB_USERNAME}
|
||||||
|
POSTGRES_DB: ${DB_DATABASE_NAME}
|
||||||
|
POSTGRES_INITDB_ARGS: '--data-checksums'
|
||||||
|
# Uncomment the DB_STORAGE_TYPE: 'HDD' var if your database isn't stored on SSDs
|
||||||
|
# DB_STORAGE_TYPE: 'HDD'
|
||||||
|
volumes:
|
||||||
|
# Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file
|
||||||
|
- ${DB_DATA_LOCATION}:/var/lib/postgresql/data
|
||||||
|
shm_size: 128mb
|
||||||
|
restart: always
|
||||||
|
healthcheck:
|
||||||
|
disable: false
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
model-cache:
|
||||||
76
Stacks/DS1-Main/immich/docker-compose.yml
Normal file
76
Stacks/DS1-Main/immich/docker-compose.yml
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
#
|
||||||
|
# WARNING: To install Immich, follow our guide: https://docs.immich.app/install/docker-compose
|
||||||
|
#
|
||||||
|
# Make sure to use the docker-compose.yml of the current release:
|
||||||
|
#
|
||||||
|
# https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
|
||||||
|
#
|
||||||
|
# The compose file on main may not be compatible with the latest release.
|
||||||
|
|
||||||
|
name: immich
|
||||||
|
|
||||||
|
services:
|
||||||
|
immich-server:
|
||||||
|
container_name: immich_server
|
||||||
|
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
|
||||||
|
# extends:
|
||||||
|
# file: hwaccel.transcoding.yml
|
||||||
|
# service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
|
||||||
|
volumes:
|
||||||
|
# Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file
|
||||||
|
- ${UPLOAD_LOCATION}:/data
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
env_file:
|
||||||
|
- stack.env
|
||||||
|
ports:
|
||||||
|
- '2283:2283'
|
||||||
|
depends_on:
|
||||||
|
- redis
|
||||||
|
- database
|
||||||
|
restart: always
|
||||||
|
healthcheck:
|
||||||
|
disable: false
|
||||||
|
|
||||||
|
immich-machine-learning:
|
||||||
|
container_name: immich_machine_learning
|
||||||
|
# For hardware acceleration, add one of -[armnn, cuda, rocm, openvino, rknn] to the image tag.
|
||||||
|
# Example tag: ${IMMICH_VERSION:-release}-cuda
|
||||||
|
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
|
||||||
|
# extends: # uncomment this section for hardware acceleration - see https://docs.immich.app/features/ml-hardware-acceleration
|
||||||
|
# file: hwaccel.ml.yml
|
||||||
|
# service: cpu # set to one of [armnn, cuda, rocm, openvino, openvino-wsl, rknn] for accelerated inference - use the `-wsl` version for WSL2 where applicable
|
||||||
|
volumes:
|
||||||
|
- model-cache:/cache
|
||||||
|
env_file:
|
||||||
|
- stack.env
|
||||||
|
restart: always
|
||||||
|
healthcheck:
|
||||||
|
disable: false
|
||||||
|
|
||||||
|
redis:
|
||||||
|
container_name: immich_redis
|
||||||
|
image: redis:8
|
||||||
|
healthcheck:
|
||||||
|
test: redis-cli ping || exit 1
|
||||||
|
restart: always
|
||||||
|
|
||||||
|
database:
|
||||||
|
container_name: immich_postgres
|
||||||
|
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:bcf63357191b76a916ae5eb93464d65c07511da41e3bf7a8416db519b40b1c23
|
||||||
|
environment:
|
||||||
|
POSTGRES_PASSWORD: ${DB_PASSWORD}
|
||||||
|
POSTGRES_USER: ${DB_USERNAME}
|
||||||
|
POSTGRES_DB: ${DB_DATABASE_NAME}
|
||||||
|
POSTGRES_INITDB_ARGS: '--data-checksums'
|
||||||
|
# Uncomment the DB_STORAGE_TYPE: 'HDD' var if your database isn't stored on SSDs
|
||||||
|
# DB_STORAGE_TYPE: 'HDD'
|
||||||
|
volumes:
|
||||||
|
# Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file
|
||||||
|
- ${DB_DATA_LOCATION}:/var/lib/postgresql/data
|
||||||
|
shm_size: 128mb
|
||||||
|
restart: always
|
||||||
|
healthcheck:
|
||||||
|
disable: false
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
model-cache:
|
||||||
26
Stacks/DS1-Main/immich/stack.env
Normal file
26
Stacks/DS1-Main/immich/stack.env
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
# You can find documentation for all the supported env variables at https://docs.immich.app/install/environment-variables
|
||||||
|
|
||||||
|
# The location where your uploaded files are stored
|
||||||
|
UPLOAD_LOCATION=/volume1/data/docker/immich
|
||||||
|
|
||||||
|
# The location where your database files are stored. Network shares are not supported for the database
|
||||||
|
DB_DATA_LOCATION=/volume1/docker/immich/db
|
||||||
|
|
||||||
|
# To set a timezone, uncomment the next line and change Etc/UTC to a TZ identifier from this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
|
||||||
|
# TZ=Etc/UTC
|
||||||
|
|
||||||
|
# The Immich version to use. You can pin this to a specific version like "v2.1.0"
|
||||||
|
|
||||||
|
# Connection secret for postgres. You should change it to a random password
|
||||||
|
# Please use only the characters `A-Za-z0-9`, without special characters or spaces
|
||||||
|
DB_PASSWORD=postgres
|
||||||
|
|
||||||
|
# The values below this line do not need to be changed
|
||||||
|
###################################################################################
|
||||||
|
DB_USERNAME=postgres
|
||||||
|
DB_DATABASE_NAME=immich
|
||||||
|
|
||||||
|
|
||||||
|
IMMICH_VERSION=release
|
||||||
|
|
||||||
|
REDIS_HOSTNAME=immich_redis
|
||||||
17
Stacks/DS1-Main/lemp/docker-compose.yml
Normal file
17
Stacks/DS1-Main/lemp/docker-compose.yml
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
services:
|
||||||
|
php:
|
||||||
|
image: serversideup/php:8.5-fpm-nginx
|
||||||
|
ports:
|
||||||
|
- "81:8080"
|
||||||
|
environment:
|
||||||
|
# Customize PHP with environment variables
|
||||||
|
PHP_OPCACHE_ENABLE: "1"
|
||||||
|
PHP_MEMORY_LIMIT: "512M"
|
||||||
|
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 512M
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
- /volume1/docker/lemp:/var/www/html
|
||||||
65
Stacks/DS1-Main/n8n/compose.yaml
Normal file
65
Stacks/DS1-Main/n8n/compose.yaml
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
services:
|
||||||
|
db:
|
||||||
|
image: postgres:18
|
||||||
|
container_name: n8n-DB
|
||||||
|
hostname: n8n-db
|
||||||
|
security_opt:
|
||||||
|
- no-new-privileges:true
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "pg_isready", "-q", "-d", "n8n", "-U", "n8nuser"]
|
||||||
|
timeout: 45s
|
||||||
|
interval: 10s
|
||||||
|
retries: 10
|
||||||
|
volumes:
|
||||||
|
- /volume1/docker/n8n/db:/var/lib/postgresql:rw
|
||||||
|
environment:
|
||||||
|
TZ: Europe/Zurich
|
||||||
|
POSTGRES_DB: n8n
|
||||||
|
POSTGRES_USER: n8nuser
|
||||||
|
POSTGRES_PASSWORD: n8npass
|
||||||
|
restart: on-failure:5
|
||||||
|
|
||||||
|
n8n:
|
||||||
|
image: n8nio/n8n:latest
|
||||||
|
container_name: n8n
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD-SHELL", "nc -z 127.0.0.1 5678 || exit 1"]
|
||||||
|
interval: 10s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
start_period: 90s
|
||||||
|
hostname: n8n
|
||||||
|
user: 0:0
|
||||||
|
security_opt:
|
||||||
|
- no-new-privileges:true
|
||||||
|
ports:
|
||||||
|
- 5678:5678
|
||||||
|
volumes:
|
||||||
|
- /volume1/docker/n8n/data:/root/.n8n:rw
|
||||||
|
- /volume1/docker/n8n/files:/files:rw
|
||||||
|
environment:
|
||||||
|
N8N_HOST: n8n.mschwab.net
|
||||||
|
WEBHOOK_URL: https://n8n.mschwab.net
|
||||||
|
N8N_EDITOR_BASE_URL: https://n8n.mschwab.net
|
||||||
|
GENERIC_TIMEZONE: Europe/Zurich
|
||||||
|
TZ: Europe/Zurich
|
||||||
|
N8N_PORT: 5678
|
||||||
|
N8N_PROXY_HOPS: 4
|
||||||
|
N8N_ENCRYPTION_KEY: ZOmyQvEDgElilcPkqVxHZOZaBcckRXSBYPuyWGkULRHczUffyBZghUiZhYyfQYiE
|
||||||
|
N8N_PROTOCOL: https
|
||||||
|
NODE_ENV: production
|
||||||
|
N8N_DIAGNOSTICS_ENABLED: false
|
||||||
|
N8N_RUNNERS_ENABLED: true
|
||||||
|
N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS: true
|
||||||
|
N8N_RESTRICT_FILE_ACCESS_TO: /files
|
||||||
|
N8N_SECURE_COOKIE: true #or false if you want to use n8n without synology.me DDNS
|
||||||
|
DB_TYPE: postgresdb
|
||||||
|
DB_POSTGRESDB_DATABASE: n8n
|
||||||
|
DB_POSTGRESDB_HOST: n8n-db
|
||||||
|
DB_POSTGRESDB_PORT: 5432
|
||||||
|
DB_POSTGRESDB_USER: n8nuser
|
||||||
|
DB_POSTGRESDB_PASSWORD: n8npass
|
||||||
|
restart: on-failure:5
|
||||||
|
depends_on:
|
||||||
|
db:
|
||||||
|
condition: service_healthy
|
||||||
41
Stacks/DS1-Main/nextcloud/compose.yaml
Normal file
41
Stacks/DS1-Main/nextcloud/compose.yaml
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
version: "3.9"
|
||||||
|
|
||||||
|
services:
|
||||||
|
db:
|
||||||
|
image: mariadb:11
|
||||||
|
container_name: nextcloud-db
|
||||||
|
restart: unless-stopped
|
||||||
|
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
|
||||||
|
volumes:
|
||||||
|
- /volume1/docker/nextcloud/db:/var/lib/mysql:rw
|
||||||
|
- /volume1/docker/nextcloud/db:/etc/mysql/conf.d:rw
|
||||||
|
environment:
|
||||||
|
- MYSQL_ROOT_PASSWORD=q3OLnO3x%lj7lyT
|
||||||
|
- MYSQL_PASSWORD=JYEGoDdcx27ZB7&
|
||||||
|
- MYSQL_DATABASE=nextcloud
|
||||||
|
- MYSQL_USER=nextcloud
|
||||||
|
|
||||||
|
app:
|
||||||
|
image: nextcloud:latest
|
||||||
|
container_name: nextcloud-app
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "8080:80"
|
||||||
|
volumes:
|
||||||
|
- /volume1/docker/nextcloud/html:/var/www/html:rw
|
||||||
|
- /volume1/docker/nextcloud/config:/var/www/html/config:rw
|
||||||
|
- /volume1/data/docker/nextcloud/data:/var/www/html/data:rw
|
||||||
|
- /volume1/docker/paperlessngx/consume:/mnt/paperlessngx:rw
|
||||||
|
- /volume1/data/docker/immich/upload:/mnt/immich:rw
|
||||||
|
- /volume1/data/nextcloud/:/mnt/synology:rw
|
||||||
|
|
||||||
|
environment:
|
||||||
|
- MYSQL_PASSWORD=JYEGoDdcx27ZB7&
|
||||||
|
- MYSQL_DATABASE=nextcloud
|
||||||
|
- MYSQL_USER=nextcloud
|
||||||
|
- MYSQL_HOST=db
|
||||||
|
- NEXTCLOUD_TRUSTED_DOMAINS=nextcloud.mschwab.net
|
||||||
|
- OVERWRITEHOST=nextcloud.mschwab.net
|
||||||
|
- OVERWRITEPROTOCOL=https
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
17
Stacks/DS1-Main/nginx/docker-compose.yml
Normal file
17
Stacks/DS1-Main/nginx/docker-compose.yml
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
version: "3.8"
|
||||||
|
|
||||||
|
services:
|
||||||
|
app:
|
||||||
|
image: nginx:alpine
|
||||||
|
ports:
|
||||||
|
- "8082:80"
|
||||||
|
environment:
|
||||||
|
- APP_ENV=${APP_ENV:-production}
|
||||||
|
volumes:
|
||||||
|
- ./html:/usr/share/nginx/html:ro
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
# Add more services as needed
|
||||||
|
# networks:
|
||||||
|
# default:
|
||||||
|
# driver: bridge
|
||||||
120
Stacks/DS1-Main/paperlessngx/compose.yaml
Normal file
120
Stacks/DS1-Main/paperlessngx/compose.yaml
Normal file
@@ -0,0 +1,120 @@
|
|||||||
|
services:
|
||||||
|
redis:
|
||||||
|
image: redis:8
|
||||||
|
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"]
|
||||||
|
volumes:
|
||||||
|
- /volume1/docker/paperlessngx/redis:/data:rw
|
||||||
|
environment:
|
||||||
|
TZ: Europe/Zurich
|
||||||
|
restart: on-failure:5
|
||||||
|
|
||||||
|
db:
|
||||||
|
image: postgres:18
|
||||||
|
container_name: PaperlessNGX-DB
|
||||||
|
hostname: paper-db
|
||||||
|
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:rw
|
||||||
|
environment:
|
||||||
|
POSTGRES_DB: paperless
|
||||||
|
POSTGRES_USER: paperlessuser
|
||||||
|
POSTGRES_PASSWORD: paperlesspass
|
||||||
|
restart: on-failure:5
|
||||||
|
|
||||||
|
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/data/docker/paperlessngx/data:/usr/src/paperless/data:rw
|
||||||
|
- /volume1/data/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_EMPTY_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/Zurich
|
||||||
|
PAPERLESS_SECRET_KEY: pbasJHwKYTKIYOIBABKyEmKHvjSCrStEVUcRvPOcbJrrJddgrlbKQiSrUAOxZztO
|
||||||
|
PAPERLESS_ADMIN_USER: michael
|
||||||
|
PAPERLESS_ADMIN_PASSWORD: schwa-mi4Paperless
|
||||||
|
PAPERLESS_URL: https://paperngx.mschwab.net
|
||||||
|
PAPERLESS_CSRF_TRUSTED_ORIGINS: https://paperngx.mschwab.net
|
||||||
|
PAPERLESS_OCR_LANGUAGE: deu+eng
|
||||||
|
PAPERLESS_CONSUMER_RECURSIVE: true
|
||||||
|
PAPERLESS_CONSUMER_SUBDIRS_AS_TAGS: true
|
||||||
|
PAPERLESS_TIKA_ENABLED: 1
|
||||||
|
PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000
|
||||||
|
PAPERLESS_TIKA_ENDPOINT: http://tika:9998
|
||||||
|
restart: on-failure:5
|
||||||
|
depends_on:
|
||||||
|
db:
|
||||||
|
condition: service_healthy
|
||||||
|
redis:
|
||||||
|
condition: service_healthy
|
||||||
|
tika:
|
||||||
|
condition: service_started
|
||||||
|
gotenberg:
|
||||||
|
condition: service_started
|
||||||
|
|
||||||
|
gotenberg:
|
||||||
|
image: docker.io/gotenberg/gotenberg:7.10
|
||||||
|
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
|
||||||
|
healthcheck:
|
||||||
|
disable: false
|
||||||
|
|
||||||
|
tika:
|
||||||
|
image: docker.io/apache/tika:latest
|
||||||
|
container_name: PaperlessNGX-TIKA
|
||||||
|
hostname: tika
|
||||||
|
security_opt:
|
||||||
|
- no-new-privileges:true
|
||||||
|
user: 1026:100
|
||||||
|
restart: on-failure:5
|
||||||
|
healthcheck:
|
||||||
|
disable: false
|
||||||
120
Stacks/DS1-Main/paperlessngx/docker-compose.yml
Normal file
120
Stacks/DS1-Main/paperlessngx/docker-compose.yml
Normal file
@@ -0,0 +1,120 @@
|
|||||||
|
services:
|
||||||
|
redis:
|
||||||
|
image: redis:8
|
||||||
|
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"]
|
||||||
|
volumes:
|
||||||
|
- /volume1/docker/paperlessngx/redis:/data:rw
|
||||||
|
environment:
|
||||||
|
TZ: Europe/Zurich
|
||||||
|
restart: on-failure:5
|
||||||
|
|
||||||
|
db:
|
||||||
|
image: postgres:18
|
||||||
|
container_name: PaperlessNGX-DB
|
||||||
|
hostname: paper-db
|
||||||
|
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:rw
|
||||||
|
environment:
|
||||||
|
POSTGRES_DB: paperless
|
||||||
|
POSTGRES_USER: paperlessuser
|
||||||
|
POSTGRES_PASSWORD: paperlesspass
|
||||||
|
restart: on-failure:5
|
||||||
|
|
||||||
|
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/data/docker/paperlessngx/data:/usr/src/paperless/data:rw
|
||||||
|
- /volume1/data/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_EMPTY_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/Zurich
|
||||||
|
PAPERLESS_SECRET_KEY: pbasJHwKYTKIYOIBABKyEmKHvjSCrStEVUcRvPOcbJrrJddgrlbKQiSrUAOxZztO
|
||||||
|
PAPERLESS_ADMIN_USER: michael
|
||||||
|
PAPERLESS_ADMIN_PASSWORD: schwa-mi4Paperless
|
||||||
|
PAPERLESS_URL: https://paperngx.mschwab.net
|
||||||
|
PAPERLESS_CSRF_TRUSTED_ORIGINS: https://paperngx.mschwab.net
|
||||||
|
PAPERLESS_OCR_LANGUAGE: deu+eng
|
||||||
|
PAPERLESS_CONSUMER_RECURSIVE: true
|
||||||
|
PAPERLESS_CONSUMER_SUBDIRS_AS_TAGS: true
|
||||||
|
PAPERLESS_TIKA_ENABLED: 1
|
||||||
|
PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000
|
||||||
|
PAPERLESS_TIKA_ENDPOINT: http://tika:9998
|
||||||
|
restart: on-failure:5
|
||||||
|
depends_on:
|
||||||
|
db:
|
||||||
|
condition: service_healthy
|
||||||
|
redis:
|
||||||
|
condition: service_healthy
|
||||||
|
tika:
|
||||||
|
condition: service_started
|
||||||
|
gotenberg:
|
||||||
|
condition: service_started
|
||||||
|
|
||||||
|
gotenberg:
|
||||||
|
image: docker.io/gotenberg/gotenberg:7.10
|
||||||
|
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
|
||||||
|
healthcheck:
|
||||||
|
disable: false
|
||||||
|
|
||||||
|
tika:
|
||||||
|
image: docker.io/apache/tika:latest
|
||||||
|
container_name: PaperlessNGX-TIKA
|
||||||
|
hostname: tika
|
||||||
|
security_opt:
|
||||||
|
- no-new-privileges:true
|
||||||
|
user: 1026:100
|
||||||
|
restart: on-failure:5
|
||||||
|
healthcheck:
|
||||||
|
disable: false
|
||||||
9
Stacks/DS1-Main/snippet-box/compose.yaml
Normal file
9
Stacks/DS1-Main/snippet-box/compose.yaml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
services:
|
||||||
|
snippet-box:
|
||||||
|
image: pawelmalak/snippet-box:latest
|
||||||
|
container_name: snippet-box
|
||||||
|
volumes:
|
||||||
|
- /volume1/docker/snippetbox/data:/app/data
|
||||||
|
ports:
|
||||||
|
- 5212:5000
|
||||||
|
restart: unless-stopped
|
||||||
47
Stacks/DS1-Main/vaultwarden/compose.yaml
Normal file
47
Stacks/DS1-Main/vaultwarden/compose.yaml
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
services:
|
||||||
|
db:
|
||||||
|
image: postgres:17
|
||||||
|
container_name: Vaultwarden-DB
|
||||||
|
hostname: vaultwarden-db
|
||||||
|
security_opt:
|
||||||
|
- no-new-privileges:true
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "pg_isready", "-q", "-d", "vaultwarden", "-U", "vaultwardenuser"]
|
||||||
|
timeout: 45s
|
||||||
|
interval: 10s
|
||||||
|
retries: 10
|
||||||
|
volumes:
|
||||||
|
- /volume1/docker/vaultwarden/db:/var/lib/postgresql/data:rw
|
||||||
|
environment:
|
||||||
|
POSTGRES_DB: vaultwarden
|
||||||
|
POSTGRES_USER: vaultwardenuser
|
||||||
|
POSTGRES_PASSWORD: vaultwardenpass
|
||||||
|
restart: on-failure:5
|
||||||
|
|
||||||
|
vaultwarden:
|
||||||
|
image: vaultwarden/server:latest
|
||||||
|
container_name: Vaultwarden
|
||||||
|
hostname: vaultwarden
|
||||||
|
security_opt:
|
||||||
|
- no-new-privileges:true
|
||||||
|
user: 1026:100
|
||||||
|
ports:
|
||||||
|
- 4080:4020
|
||||||
|
volumes:
|
||||||
|
- /volume1/docker/vaultwarden/data:/data:rw
|
||||||
|
environment:
|
||||||
|
ROCKET_PORT: 4020
|
||||||
|
DATABASE_URL: postgresql://vaultwardenuser:vaultwardenpass@vaultwarden-db:5432/vaultwarden
|
||||||
|
ADMIN_TOKEN: schwa-mi@VaultWarden
|
||||||
|
DISABLE_ADMIN_TOKEN: false
|
||||||
|
DOMAIN: https://vaultwarden.mschwab.net
|
||||||
|
SMTP_HOST: smtp.gmail.com
|
||||||
|
SMTP_FROM: michael.schwab82@gmail.com
|
||||||
|
SMTP_PORT: 587
|
||||||
|
SMTP_SECURITY: starttls
|
||||||
|
SMTP_USERNAME: michael.schwab82@gmail.com
|
||||||
|
SMTP_PASSWORD: jaiauojwzxxjiwgz
|
||||||
|
restart: on-failure:5
|
||||||
|
depends_on:
|
||||||
|
db:
|
||||||
|
condition: service_started
|
||||||
47
Stacks/DS1-Main/vaultwarden/docker-compose.yml
Normal file
47
Stacks/DS1-Main/vaultwarden/docker-compose.yml
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
services:
|
||||||
|
db:
|
||||||
|
image: postgres:17
|
||||||
|
container_name: Vaultwarden-DB
|
||||||
|
hostname: vaultwarden-db
|
||||||
|
security_opt:
|
||||||
|
- no-new-privileges:true
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "pg_isready", "-q", "-d", "vaultwarden", "-U", "vaultwardenuser"]
|
||||||
|
timeout: 45s
|
||||||
|
interval: 10s
|
||||||
|
retries: 10
|
||||||
|
volumes:
|
||||||
|
- /volume1/docker/vaultwarden/db:/var/lib/postgresql/data:rw
|
||||||
|
environment:
|
||||||
|
POSTGRES_DB: vaultwarden
|
||||||
|
POSTGRES_USER: vaultwardenuser
|
||||||
|
POSTGRES_PASSWORD: vaultwardenpass
|
||||||
|
restart: on-failure:5
|
||||||
|
|
||||||
|
vaultwarden:
|
||||||
|
image: vaultwarden/server:latest
|
||||||
|
container_name: Vaultwarden
|
||||||
|
hostname: vaultwarden
|
||||||
|
security_opt:
|
||||||
|
- no-new-privileges:true
|
||||||
|
user: 1026:100
|
||||||
|
ports:
|
||||||
|
- 4080:4020
|
||||||
|
volumes:
|
||||||
|
- /volume1/docker/vaultwarden/data:/data:rw
|
||||||
|
environment:
|
||||||
|
ROCKET_PORT: 4020
|
||||||
|
DATABASE_URL: postgresql://vaultwardenuser:vaultwardenpass@vaultwarden-db:5432/vaultwarden
|
||||||
|
ADMIN_TOKEN: schwa-mi@VaultWarden
|
||||||
|
DISABLE_ADMIN_TOKEN: false
|
||||||
|
DOMAIN: https://vaultwarden.mschwab.net
|
||||||
|
SMTP_HOST: smtp.gmail.com
|
||||||
|
SMTP_FROM: michael.schwab82@gmail.com
|
||||||
|
SMTP_PORT: 587
|
||||||
|
SMTP_SECURITY: starttls
|
||||||
|
SMTP_USERNAME: michael.schwab82@gmail.com
|
||||||
|
SMTP_PASSWORD: jaiauojwzxxjiwgz
|
||||||
|
restart: on-failure:5
|
||||||
|
depends_on:
|
||||||
|
db:
|
||||||
|
condition: service_started
|
||||||
19
Stacks/DS1-Main/vscode/compose.yaml
Normal file
19
Stacks/DS1-Main/vscode/compose.yaml
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
services:
|
||||||
|
wallos:
|
||||||
|
container_name: vscode
|
||||||
|
image: ghcr.io/linuxserver/code-server
|
||||||
|
|
||||||
|
mem_limit: 4g
|
||||||
|
cpu_shares: 768
|
||||||
|
|
||||||
|
restart: on-failure:5
|
||||||
|
ports:
|
||||||
|
- 8377:8443
|
||||||
|
volumes:
|
||||||
|
- /volume1/docker/vscode:/config
|
||||||
|
- /volume1/data/docker/vscode/workspace:/home/workspace
|
||||||
|
environment:
|
||||||
|
TZ: Europe/Zurich
|
||||||
|
PASSWORD: schwa-mi4Vscode
|
||||||
|
PROXY_DOMAIN: vscode.mschwab.net
|
||||||
|
SUDO_PASSWORD: schwa-mi4Vscode
|
||||||
18
Stacks/DS1-Main/wallos/docker-compose.yml
Normal file
18
Stacks/DS1-Main/wallos/docker-compose.yml
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
services:
|
||||||
|
wallos:
|
||||||
|
container_name: Wallos
|
||||||
|
image: bellamy/wallos:latest
|
||||||
|
healthcheck:
|
||||||
|
test: curl -f http://localhost:80/ || exit 1
|
||||||
|
mem_limit: 4g
|
||||||
|
cpu_shares: 768
|
||||||
|
security_opt:
|
||||||
|
- no-new-privileges:true
|
||||||
|
restart: on-failure:5
|
||||||
|
ports:
|
||||||
|
- 8353:80/tcp
|
||||||
|
volumes:
|
||||||
|
- /volume1/docker/wallos/images:/var/www/html/images/uploads/logos:rw
|
||||||
|
- /volume1/docker/wallos/db:/var/www/html/db:rw
|
||||||
|
environment:
|
||||||
|
TZ: Europe/Zurich
|
||||||
11
Stacks/DS1-Main/web-check/compose.yaml
Normal file
11
Stacks/DS1-Main/web-check/compose.yaml
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
services:
|
||||||
|
webcheck:
|
||||||
|
container_name: Web-Check
|
||||||
|
image: lissy93/web-check
|
||||||
|
mem_limit: 4g
|
||||||
|
cpu_shares: 768
|
||||||
|
security_opt:
|
||||||
|
- no-new-privileges:true
|
||||||
|
restart: on-failure:5
|
||||||
|
ports:
|
||||||
|
- 6160:3000
|
||||||
Reference in New Issue
Block a user