Initial commit

This commit is contained in:
2025-11-06 20:28:41 +01:00
commit 5fc4fbcef3
182 changed files with 4742 additions and 0 deletions

8
quadlets/arr/arr.pod Normal file
View File

@@ -0,0 +1,8 @@
[Pod]
PodName=arr
PublishPort=9018:8080
PublishPort=9019:8686
PublishPort=9020:8989
PublishPort=9021:9696
PublishPort=9022:7878
PublishPort=9023:6767

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/arr/storage/bazarr-config
Driver=local
Options=bind
Type=none
VolumeName=bazarr-config

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/arr/storage/bazarr-data
Driver=local
Options=bind
Type=none
VolumeName=bazarr-data

View File

@@ -0,0 +1,24 @@
[Unit]
Description=Bazarr container
After=gluetun.container
Requires=gluetun.container
[Container]
AutoUpdate=registry
ContainerName=bazarr
Environment=PGID=1000
Environment=PUID=1000
Environment=TZ=Europe/Zurich
Image=lscr.io/linuxserver/bazarr:latest
Network=gluetun.container
Pod=arr.pod
StartWithPod=true
Timezone=Europe/Zurich
Volume=bazarr-config.volume:/config
Volume=bazarr-data.volume:/data
[Service]
Restart=always
[Install]
WantedBy=default.target

View File

@@ -0,0 +1,26 @@
[Unit]
Description=Arr* Gluetun container
[Container]
AddCapability=NET_ADMIN
AddDevice=/dev/net/tun:/dev/net/tun
AutoUpdate=registry
ContainerName=gluetun
Environment=OPENVPN_VERSION=2.5
Environment=SERVER_COUNTRIES=Netherlands
Environment=UPDATER_PERIOD=
Environment=VPN_SERVICE_PROVIDER=nordvpn
Environment=VPN_TYPE=openvpn
Environment=TZ=Europe/Zurich
Image=docker.io/qmcgaw/gluetun:v3.40
Pod=arr.pod
Secret=vpn-user,type=env,target=OPENVPN_USER
Secret=vpn-password,type=env,target=OPENVPN_PASSWORD
StartWithPod=true
Timezone=Europe/Zurich
[Service]
Restart=always
[Install]
WantedBy=default.target

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/arr/storage/lidarr-config
Driver=local
Options=bind
Type=none
VolumeName=lidarr-config

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/arr/storage/lidarr-data
Driver=local
Options=bind
Type=none
VolumeName=lidarr-data

View File

@@ -0,0 +1,24 @@
[Unit]
Description=Lidarr container
After=gluetun.container
Requires=gluetun.container
[Container]
AutoUpdate=registry
ContainerName=lidarr
Environment=PGID=1000
Environment=PUID=1000
Environment=TZ=Europe/Zurich
Image=lscr.io/linuxserver/lidarr:latest
Network=gluetun.container
Pod=arr.pod
StartWithPod=true
Timezone=Europe/Zurich
Volume=lidarr-config.volume:/config
Volume=lidarr-data.volume:/data
[Service]
Restart=always
[Install]
WantedBy=default.target

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/arr/storage/overseerr-config
Driver=local
Options=bind
Type=none
VolumeName=overseerr-config

View File

@@ -0,0 +1,23 @@
[Unit]
Description=Overseerr container
After=gluetun.container
Requires=gluetun.container
[Container]
AutoUpdate=registry
ContainerName=overseerr
Environment=LOG_LEVEL=debug
Environment=PORT=8080
Environment=TZ=Europe/Zurich
Image=docker.io/sctx/overseerr:latest
Network=gluetun.container
Pod=arr.pod
StartWithPod=true
Timezone=Europe/Zurich
Volume=overseerr-config.volume:/app/config
[Service]
Restart=always
[Install]
WantedBy=default.target

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/arr/storage/prowlarr-config
Driver=local
Options=bind
Type=none
VolumeName=prowlarr-config

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/arr/storage/prowlarr-data
Driver=local
Options=bind
Type=none
VolumeName=prowlarr-data

View File

@@ -0,0 +1,24 @@
[Unit]
Description=Prowlarr container
After=gluetun.container
Requires=gluetun.container
[Container]
AutoUpdate=registry
ContainerName=prowlarr
Environment=PGID=1000
Environment=PUID=1000
Environment=TZ=Europe/Zurich
Image=lscr.io/linuxserver/prowlarr:latest
Network=gluetun.container
Pod=arr.pod
StartWithPod=true
Timezone=Europe/Zurich
Volume=prowlarr-config.volume:/config
Volume=prowlarr-data.volume:/data
[Service]
Restart=always
[Install]
WantedBy=default.target

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/arr/storage/radarr-config
Driver=local
Options=bind
Type=none
VolumeName=radarr-config

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/arr/storage/radarr-data
Driver=local
Options=bind
Type=none
VolumeName=radarr-data

View File

@@ -0,0 +1,24 @@
[Unit]
Description=Radarr container
After=gluetun.container
Requires=gluetun.container
[Container]
AutoUpdate=registry
ContainerName=radarr
Environment=PGID=1000
Environment=PUID=1000
Environment=TZ=Europe/Zurich
Image=lscr.io/linuxserver/radarr:latest
Network=gluetun.container
Pod=arr.pod
StartWithPod=true
Timezone=Europe/Zurich
Volume=radarr-config.volume:/config
Volume=radarr-data.volume:/data
[Service]
Restart=always
[Install]
WantedBy=default.target

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/arr/storage/sonarr-config
Driver=local
Options=bind
Type=none
VolumeName=sonarr-config

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/arr/storage/sonarr-data
Driver=local
Options=bind
Type=none
VolumeName=sonarr-data

View File

@@ -0,0 +1,24 @@
[Unit]
Description=Sonarr container
After=gluetun.container
Requires=gluetun.container
[Container]
AutoUpdate=registry
ContainerName=sonarr
Environment=PGID=1000
Environment=PUID=1000
Environment=TZ=Europe/Zurich
Image=lscr.io/linuxserver/sonarr:latest
Network=gluetun.container
Pod=arr.pod
StartWithPod=true
Timezone=Europe/Zurich
Volume=sonarr-config.volume:/config
Volume=sonarr-data.volume:/data
[Service]
Restart=always
[Install]
WantedBy=default.target

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/gitea/storage/data
Driver=local
Options=bind
Type=none
VolumeName=gitea-data

View File

@@ -0,0 +1,25 @@
[Unit]
Description=Gitea database container
[Container]
AutoUpdate=registry
ContainerName=gitea-database
Environment=POSTGRES_USER=gitea
Environment=POSTGRES_DB=gitea
Environment=TZ=Europe/Zurich
HealthCmd=pg_isready -U gitea
HealthInterval=30s
HealthTimeout=10s
HealthRetries=5
Image=docker.io/postgres:18
Pod=gitea.pod
Secret=database-password,type=env,target=POSTGRES_PASSWORD
StartWithPod=true
Timezone=Europe/Zurich
Volume=gitea-database.volume:/var/lib/postgresql
[Service]
Restart=always
[Install]
WantedBy=default.target

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/gitea/storage/database
Driver=local
Options=bind
Type=none
VolumeName=gitea-database

View File

@@ -0,0 +1,29 @@
[Unit]
Description=Gitea container
After=gitea-database.container
Requires=gitea-database.container
[Container]
AutoUpdate=registry
ContainerName=gitea
Environment=DOMAIN=git.gtache.ch
Environment=GITEA__database__DB_TYPE=postgres
Environment=GITEA__database__HOST=gitea-database:5432
Environment=GITEA__database__NAME=gitea
Environment=GITEA__database__USER=gitea
Environment=SSH_DOMAIN=git.gtache.ch
Environment=SSH_LISTEN_PORT=2222
Environment=SSH_PORT=2222
Environment=TZ=Europe/Zurich
Image=docker.io/gitea/gitea:latest
Pod=gitea.pod
Secret=database-password,type=env,target=GITEA__database__PASSWD
StartWithPod=true
Timezone=Europe/Zurich
Volume=gitea-data.volume:/data
[Service]
Restart=always
[Install]
WantedBy=default.target

4
quadlets/gitea/gitea.pod Normal file
View File

@@ -0,0 +1,4 @@
[Pod]
PodName=gitea
PublishPort=9007:3000
PublishPort=2222:2222

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/homeassistant/storage/config
Driver=local
Options=bind
Type=none
VolumeName=homeassistant-config

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/homeassistant/storage/ssh
Driver=local
Options=bind
Type=none
VolumeName=homeassistant-ssh

View File

@@ -0,0 +1,21 @@
[Unit]
Description=Homeassistant container
[Container]
AutoUpdate=registry
ContainerName=homeassistant
Environment=PUID=1006
Environment=PGID=1006
Environment=TZ=Europe/Zurich
Image=lscr.io/linuxserver/homeassistant:latest
Pod=homeassistant.pod
StartWithPod=true
Timezone=Europe/Zurich
Volume=homeassistant-config.volume:/config
Volume=homeassistant-ssh.volume:/root/.ssh
[Service]
Restart=always
[Install]
WantedBy=default.target

View File

@@ -0,0 +1,3 @@
[Pod]
PodName=homeassistant
PublishPort=9003:8123

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/jdownloader/storage/config
Driver=local
Options=bind
Type=none
VolumeName=jdownloader-config

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/jdownloader/storage/output
Driver=local
Options=bind
Type=none
VolumeName=jdownloader-output

View File

@@ -0,0 +1,25 @@
[Unit]
Description=JDownloader container
[Container]
AutoUpdate=registry
ContainerName=jdownloader
Environment=GROUP_ID=1005
Environment=JDOWNLOADER_HEADLESS=1
Environment=MYJDOWNLOADER_DEVICE_NAME=pi4
Environment=TZ=Europe/Zurich
Environment=USER_ID=1005
Image=docker.io/jlesage/jdownloader-2:latest
Pod=jdownloader.pod
Secret=jdownloader-email,type=env,target=MYJDOWNLOADER_EMAIL
Secret=jdownloader-password,type=env,target=MYJDOWNLOADER_PASSWORD
StartWithPod=true
Timezone=Europe/Zurich
Volume=jdownloader-config.volume:/config
Volume=jdownloader-output.volume:/output
[Service]
Restart=always
[Install]
WantedBy=default.target

View File

@@ -0,0 +1,3 @@
[Pod]
PodName=jdownloader
PublishPort=3129:3129

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/kiwix/storage/data
Driver=local
Options=bind
Type=none
VolumeName=kiwix-data

View File

@@ -0,0 +1,18 @@
[Unit]
Description=Kiwix container
[Container]
AutoUpdate=registry
ContainerName=kiwix
Exec='*.zim'
Image=ghcr.io/kiwix/kiwix-serve:latest
Pod=kiwix.pod
StartWithPod=true
Timezone=Europe/Zurich
Volume=kiwix-data.volume:/data
[Service]
Restart=always
[Install]
WantedBy=default.target

3
quadlets/kiwix/kiwix.pod Normal file
View File

@@ -0,0 +1,3 @@
[Pod]
PodName=kiwix
PublishPort=9017:8080

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/komga/storage/config
Driver=local
Options=bind
Type=none
VolumeName=komga-config

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/komga/storage/data
Driver=local
Options=bind
Type=none
VolumeName=komga-data

View File

@@ -0,0 +1,19 @@
[Unit]
Description=Komga container
[Container]
AutoUpdate=registry
ContainerName=komga
Environment=TZ=Europe/Zurich
Image=docker.io/gotson/komga:latest
Pod=komga.pod
StartWithPod=true
Timezone=Europe/Zurich
Volume=komga-config.volume:/config
Volume=komga-data.volume:/data
[Service]
Restart=always
[Install]
WantedBy=default.target

3
quadlets/komga/komga.pod Normal file
View File

@@ -0,0 +1,3 @@
[Pod]
PodName=komga
PublishPort=9015:25600

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/navidrome/storage/data
Driver=local
Options=bind
Type=none
VolumeName=navidrome-data

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/navidrome/storage/music
Driver=local
Options=bind
Type=none
VolumeName=navidrome-music

View File

@@ -0,0 +1,20 @@
[Unit]
Description=Navidrome container
[Container]
AutoUpdate=registry
ContainerName=navidrome
Environment=TZ=Europe/Zurich
Image=ghcr.io/navidrome/navidrome:latest
Pod=navidrome.pod
Secret=encryption-key,type=env,target=ND_PASSWORDENCRYPTIONKEY
StartWithPod=true
Timezone=Europe/Zurich
Volume=navidrome-data.volume:/data
Volume=navidrome-music.volume:/music:ro
[Service]
Restart=always
[Install]
WantedBy=default.target

View File

@@ -0,0 +1,3 @@
[Pod]
PodName=navidrome
PublishPort=9006:4533

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/nextcloud/storage/apps
Driver=local
Options=bind
Type=none
VolumeName=nextcloud-apps

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/nextcloud/storage/config
Driver=local
Options=bind
Type=none
VolumeName=nextcloud-config

View File

@@ -0,0 +1,30 @@
[Unit]
Description=Nextcloud cron container
After=nextcloud-database.container
After=nextcloud-redis.container
After=nextcloud.container
Requires=nextcloud-database.container
Requires=nextcloud-redis.container
Requires=nextcloud.container
[Container]
AutoUpdate=registry
ContainerName=nextcloud-cron
Entrypoint=/cron.sh
Environment=TZ=Europe/Zurich
Image=docker.io/nextcloud:32
Pod=nextcloud.pod
StartWithPod=true
Timezone=Europe/Zurich
Volume=nextcloud-html.volume:/var/www/html
Volume=nextcloud-config.volume:/var/www/html/config
Volume=nextcloud-apps.volume:/var/www/html/custom_apps
Volume=nextcloud-themes.volume:/var/www/html/themes
Volume=/var/mnt/nas/containers/nextcloud/storage/redis-session.ini:/usr/local/etc/php/conf.d/redis-session.ini
Volume=nextcloud-data.volume:/var/www/html/data
[Service]
Restart=always
[Install]
WantedBy=default.target

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/nextcloud/storage/data
Driver=local
Options=bind
Type=none
VolumeName=nextcloud-data

View File

@@ -0,0 +1,22 @@
[Unit]
Description=Nextcloud database container
[Container]
AutoUpdate=registry
ContainerName=nextcloud-database
Environment=MYSQL_DATABASE=nextcloud
Environment=TZ=Europe/Zurich
Image=docker.io/mariadb:latest
Pod=nextcloud.pod
Secret=database-user,type=env,target=MYSQL_USER
Secret=database-password,type=env,target=MYSQL_PASSWORD
Secret=database-root-password,type=env,target=MYSQL_ROOT_PASSWORD
StartWithPod=true
Timezone=Europe/Zurich
Volume=nextcloud-database.volume:/var/lib/mysql
[Service]
Restart=always
[Install]
WantedBy=default.target

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/nextcloud/storage/database
Driver=local
Options=bind
Type=none
VolumeName=nextcloud-database

View File

@@ -0,0 +1,29 @@
[Unit]
Description=Nextcloud HaRP container
After=nextcloud-database.container
After=nextcloud-redis.container
Requires=nextcloud-database.container
Requires=nextcloud-redis.container
[Container]
AutoUpdate=registry
ContainerName=nextcloud
Environment=NC_INSTANCE_URL=http://nextcloud.local
Environment=TZ=Europe/Zurich
Image=ghcr.io/nextcloud/nextcloud-appapi-harp:release
Pod=nextcloud.pod
Secret=hp-key,type=env,target=HP_SHARED_KEY
StartWithPod=true
Timezone=Europe/Zurich
Volume=nextcloud-html.volume:/var/www/html
Volume=nextcloud-config.volume:/var/www/html/config
Volume=nextcloud-apps.volume:/var/www/html/custom_apps
Volume=nextcloud-themes.volume:/var/www/html/themes
Volume=/var/mnt/nas/containers/nextcloud/storage/redis-session.ini:/usr/local/etc/php/conf.d/redis-session.ini
Volume=nextcloud-data.volume:/var/www/html/data
[Service]
Restart=always
[Install]
WantedBy=default.target

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/nextcloud/storage/html
Driver=local
Options=bind
Type=none
VolumeName=nextcloud-html

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/nextcloud/storage/php-config
Driver=local
Options=bind
Type=none
VolumeName=nextcloud-php-config

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/nextcloud/storage/redis-config
Driver=local
Options=bind
Type=none
VolumeName=nextcloud-redis-config

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/nextcloud/storage/redis-data
Driver=local
Options=bind
Type=none
VolumeName=nextcloud-redis-data

View File

@@ -0,0 +1,21 @@
[Unit]
Description=Nextcloud Redis container
[Container]
AutoUpdate=registry
ContainerName=nextcloud-redis
Environment=TZ=Europe/Zurich
Exec=/bin/sh -c 'redis-server --appendonly yes --requirepass $${REDIS_PASSWORD}'
Image=docker.io/redis:alpine
Pod=nextcloud.pod
Secret=nextcloud-redis-password,type=env,target=REDIS_PASSWORD
StartWithPod=true
Timezone=Europe/Zurich
Volume=nextcloud-redis-config.volume:/usr/local/etc/redis
Volume=nextcloud-redis-data.volume:/data
[Service]
Restart=always
[Install]
WantedBy=default.target

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/nextcloud/storage/themes
Driver=local
Options=bind
Type=none
VolumeName=nextcloud-themes

View File

@@ -0,0 +1,40 @@
[Unit]
Description=Nextcloud container
After=nextcloud-database.container
After=nextcloud-redis.container
Requires=nextcloud-database.container
Requires=nextcloud-redis.container
[Container]
AutoUpdate=registry
ContainerName=nextcloud
Environment=MYSQL_DATABASE=nextcloud
Environment=MYSQL_HOST=nextcloud-database
Environment=NEXTCLOUD_TRUSTED_DOMAINS=localhost host.containers.internal nextcloud.gtache.ch
Environment=PHP_MEMORY_LIMIT=1024M
Environment=PHP_UPLOAD_LIMIT=100G
Environment=REDIS_HOST=nextcloud-redis
Environment=TRUSTED_PROXIES=192.168.0.0/16 172.16.0.0/12 169.254.0.0/16 10.0.0.0/8
Environment=TZ=Europe/Zurich
Image=docker.io/nextcloud:32
Pod=nextcloud.pod
Secret=database-user,type=env,target=MYSQL_USER
Secret=database-password,type=env,target=MYSQL_PASSWORD
Secret=nextcloud-admin-user,type=env,target=NEXTCLOUD_ADMIN_USER
Secret=nextcloud-admin-password,type=env,target=NEXTCLOUD_ADMIN_PASSWORD
Secret=nextcloud-redis-password,type=env,target=REDIS_HOST_PASSWORD
StartWithPod=true
Timezone=Europe/Zurich
Volume=nextcloud-html.volume:/var/www/html
Volume=nextcloud-config.volume:/var/www/html/config
Volume=nextcloud-apps.volume:/var/www/html/custom_apps
Volume=nextcloud-themes.volume:/var/www/html/themes
Volume=/var/mnt/nas/containers/nextcloud/storage/redis-session.ini:/usr/local/etc/php/conf.d/redis-session.ini
Volume=/var/mnt/nas/containers/nextcloud/storage/remoteip.conf:/etc/apache2/conf-enabled/remoteip.conf
Volume=nextcloud-data.volume:/var/www/html/data
[Service]
Restart=always
[Install]
WantedBy=default.target

View File

@@ -0,0 +1,3 @@
[Pod]
PodName=nextcloud
PublishPort=9004:80

View File

@@ -0,0 +1,33 @@
[Unit]
Description=NGINX ACME container
After=nginx.container
Requires=nginx.container
[Container]
AutoUpdate=registry
ContainerName=nginx-acme
Environment=DEFAULT_EMAIL=guillaume.tache@hotmail.com
Environment=TZ=Europe/Zurich
Image=docker.io/nginxproxy/acme-companion:2.2.9
Pod=nginx.pod
StartWithPod=true
Timezone=Europe/Zurich
Volume=/var/mnt/nas/containers/nginx/storage/network_internal.conf:/etc/nginx/network_internal.conf:ro
Volume=/var/mnt/nas/containers/nginx/storage/nginx.conf:/etc/nginx/nginx.conf:ro
Volume=nginx-certs.volume:/etc/nginx/certs:z
Volume=nginx-config.volume:/etc/nginx/conf.d
Volume=nginx-html.volume:/usr/share/nginx/html
Volume=nginx-stream.volume:/etc/nginx/stream.d
Volume=nginx-vhost.volume:/etc/nginx/vhost.d
Volume=nginx-acme:/etc/acme.sh:Z
Volume=/var/mnt/nas/containers/nginx/storage/app/entrypoint.sh:/app/entrypoint.sh:ro
Volume=/var/mnt/nas/containers/nginx/storage/app/functions.sh:/app/functions.sh:ro
Volume=/var/mnt/nas/containers/nginx/storage/app/start.sh:/app/start.sh:ro
Volume=/var/mnt/nas/containers/nginx/storage/app/letsencrypt_service:/app/letsencrypt_service:ro
Volume=/var/mnt/nas/containers/nginx/storage/app/letsencrypt_user_data:/app/letsencrypt_user_data:ro
[Service]
Restart=always
[Install]
WantedBy=default.target

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/nginx/storage/acme
Driver=local
Options=bind
Type=none
VolumeName=nginx-acme

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/nginx/storage/certs
Driver=local
Options=bind
Type=none
VolumeName=nginx-certs

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/nginx/storage/config
Driver=local
Options=bind
Type=none
VolumeName=nginx-config

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/nginx/storage/html
Driver=local
Options=bind
Type=none
VolumeName=nginx-html

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/nginx/storage/stream
Driver=local
Options=bind
Type=none
VolumeName=nginx-stream

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/nginx/storage/vhost
Driver=local
Options=bind
Type=none
VolumeName=nginx-vhost

View File

@@ -0,0 +1,24 @@
[Unit]
Description=NGINX container
[Container]
AutoUpdate=registry
ContainerName=nginx
Environment=TZ=Europe/Zurich
Image=docker.io/nginx:latest
Pod=nginx.pod
StartWithPod=true
Timezone=Europe/Zurich
Volume=/var/mnt/nas/containers/nginx/storage/network_internal.conf:/etc/nginx/network_internal.conf:ro
Volume=/var/mnt/nas/containers/nginx/storage/nginx.conf:/etc/nginx/nginx.conf:ro
Volume=nginx-certs.volume:/etc/nginx/certs:z
Volume=nginx-config.volume:/etc/nginx/conf.d
Volume=nginx-html.volume:/usr/share/nginx/html
Volume=nginx-stream.volume:/etc/nginx/stream.d
Volume=nginx-vhost.volume:/etc/nginx/vhost.d
[Service]
Restart=always
[Install]
WantedBy=default.target

4
quadlets/nginx/nginx.pod Normal file
View File

@@ -0,0 +1,4 @@
[Pod]
PodName=nginx
PublishPort=8080:80
PublishPort=4443:443

View File

@@ -0,0 +1,21 @@
[Unit]
Description=Pairdrop container
[Container]
AutoUpdate=registry
ContainerName=pairdrop
Environment=DEBUG_MODE=false
Environment=RATE_LIMIT=false
Environment=TZ=Europe/Zurich
Environment=WS_FALLBACK=false
Image=lscr.io/linuxserver/pairdrop:latest
Pod=pairdrop.pod
ReadOnly=true
StartWithPod=true
Timezone=Europe/Zurich
[Service]
Restart=always
[Install]
WantedBy=default.target

View File

@@ -0,0 +1,3 @@
[Pod]
PodName=pairdrop
PublishPort=3000:3000

View File

@@ -0,0 +1,18 @@
[Unit]
Description=Gotenberg container for Paperless
[Container]
AutoUpdate=registry
ContainerName=gotenberg
Environment=TZ=Europe/Zurich
Exec=gotenberg --chromium-disable-javascript=true --chromium-allow-list=file:///tmp/.*
Image=docker.io/gotenberg/gotenberg:8
Pod=paperless.pod
StartWithPod=true
Timezone=Europe/Zurich
[Service]
Restart=always
[Install]
WantedBy=default.target

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/paperless/storage/consume
Driver=local
Options=bind
Type=none
VolumeName=paperless-consume

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/paperless/storage/data
Driver=local
Options=bind
Type=none
VolumeName=paperless-data

View File

@@ -0,0 +1,21 @@
[Unit]
Description=Database container for Paperless
[Container]
AutoUpdate=registry
ContainerName=paperless-database
Environment=POSTGRES_USER=paperless
Environment=POSTGRES_DB=paperless
Environment=TZ=Europe/Zurich
Image=docker.io/library/postgres:18
Pod=paperless.pod
Secret=database-password,type=env,target=POSTGRES_PASSWORD
StartWithPod=true
Timezone=Europe/Zurich
Volume=paperless-database.volume:/var/lib/postgresql
[Service]
Restart=always
[Install]
WantedBy=default.target

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/paperless/storage/database
Driver=local
Options=bind
Type=none
VolumeName=paperless-database

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/paperless/storage/export
Driver=local
Options=bind
Type=none
VolumeName=paperless-export

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/paperless/storage/media
Driver=local
Options=bind
Type=none
VolumeName=paperless-media

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/paperless/storage/redis-data
Driver=local
Options=bind
Type=none
VolumeName=paperless-redis-data

View File

@@ -0,0 +1,18 @@
[Unit]
Description=Redis container for Paperless
[Container]
AutoUpdate=registry
ContainerName=paperless-redis
Environment=TZ=Europe/Zurich
Image=docker.io/library/redis:8
Pod=paperless.pod
StartWithPod=true
Timezone=Europe/Zurich
Volume=paperless-redis-data.volume:/data
[Service]
Restart=always
[Install]
WantedBy=default.target

View File

@@ -0,0 +1,43 @@
[Unit]
Description=Paperless container
After=gotenberg.container
After=paperless-database.container
After=paperless-redis.container
After=tika.container
Requires=gotenberg.container
Requires=paperless-database.container
Requires=paperless-redis.container
Requires=tika.container
[Container]
AutoUpdate=registry
ContainerName=paperless
Environment=PAPERLESS_CONSUMER_DELETE_DUPLICATES=1
Environment=PAPERLESS_DBHOST=paperless-database
Environment=PAPERLESS_OCR_LANGUAGE=fra
Environment=PAPERLESS_OCR_USER_ARGS='{"invalidate_digital_signatures": true}'
Environment=PAPERLESS_REDIS=redis://paperless-redis:6379
Environment=PAPERLESS_TASK_WORKERS=2
Environment=PAPERLESS_TIKA_ENABLED=1
Environment=PAPERLESS_TIKA_GOTENBERG_ENDPOINT=http://gotenberg:3000
Environment=PAPERLESS_TIKA_ENDPOINT=http://tika:9998
Environment=PAPERLESS_TIME_ZONE=Europe/Zurich
Environment=PAPERLESS_URL=https://paperless.gtache.ch
Environment=TZ=Europe/Zurich
Environment=USERMAP_GID=1020
Environment=USERMAP_UID=1020
Image=ghcr.io/paperless-ngx/paperless-ngx:latest
Pod=paperless.pod
Secret=paperless-secret-key,type=env,target=PAPERLESS_SECRET_KEY
StartWithPod=true
Timezone=Europe/Zurich
Volume=paperless-data.volume:/usr/src/paperless/data
Volume=paperless-media.volume:/usr/src/paperless/media
Volume=paperless-export.volume:/usr/src/paperless/export
Volume=paperless-consume.volume:/usr/src/paperless/consume
[Service]
Restart=always
[Install]
WantedBy=default.target

View File

@@ -0,0 +1,3 @@
[Pod]
PodName=paperless
PublishPort=9010:8000

View File

@@ -0,0 +1,17 @@
[Unit]
Description=Tika container for Paperless
[Container]
AutoUpdate=registry
ContainerName=tika
Environment=TZ=Europe/Zurich
Image=docker.io/apache/tika:latest
Pod=paperless.pod
StartWithPod=true
Timezone=Europe/Zurich
[Service]
Restart=always
[Install]
WantedBy=default.target

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/pihole/storage/config
Driver=local
Options=bind
Type=none
VolumeName=pihole-config

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/pihole/storage/dnsmasq
Driver=local
Options=bind
Type=none
VolumeName=pihole-dnsmasq

View File

@@ -0,0 +1,36 @@
[Unit]
Description=Unbound container
After=unbound.container
Requires=unbound.container
[Container]
AutoUpdate=registry
Command=CMD redis-server /usr/local/etc/redis/redis.conf
ContainerName=pihole
Environment=DNSMASQ_USER=pihole
Environment=FTLCONF_LOCAL_IPV4=192.168.1.103
Environment=PIHOLE_DNS_=172.20.0.7#5335
Environment=PIHOLE_GID=1001
Environment=PIHOLE_UID=1001
Environment=VIRTUAL_HOST=pihole
Environment=TZ=Europe/Zurich
HealthCheck=CMD /usr/local/unbound/sbin/healthcheck.sh
HealthInterval=30s
HealthTimeout=10s
HealthRetries=5
Image=docker.io/pihole/pihole:latest
IP=172.20.0.6
Network=pihole.network
Pod=pihole.pod
Secret=webserver-password,type=env,target=FTLCONF_webserver_api_password
StartWithPod=true
Timezone=Europe/Zurich
Volume=redis-data.volume:/data
Volume=pihole-config.volume:/etc/pihole
Volume=pihole-dnsmasq.volume:/etc/dnsmasq.d
[Service]
Restart=always
[Install]
WantedBy=default.target

View File

@@ -0,0 +1,4 @@
[Network]
Driver=bridge
NetworkName=pihole
Subnet=172.20.0.0/16

View File

@@ -0,0 +1,4 @@
[Pod]
PodName=pihole
PublishPort=5335:53
PublishPort=9005:80

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/pihole/storage/unbound-conf
Driver=local
Options=bind
Type=none
VolumeName=unbound-conf

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/pihole/storage/unbound-iana
Driver=local
Options=bind
Type=none
VolumeName=unbound-iana

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/pihole/storage/unbound-log
Driver=local
Options=bind
Type=none
VolumeName=unbound-log

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/pihole/storage/unbound-redis-cache
Driver=local
Options=bind
Type=none
VolumeName=unbound-redis-cache

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/pihole/storage/unbound-redis-conf
Driver=local
Options=bind
Type=none
VolumeName=unbound-redis-conf

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/pihole/storage/unbound-redis-data
Driver=local
Options=bind
Type=none
VolumeName=unbound-redis-data

View File

@@ -0,0 +1,19 @@
[Unit]
Description=Unbound socket container
[Container]
AutoUpdate=registry
Command=CMD chown -R 999:1001 /usr/local/unbound/cachedb.d/ && /bin/sh
ContainerName=unbound-redis-socket
Environment=TZ=Europe/Zurich
Image=docker.io/busybox
Pod=pihole.pod
StartWithPod=true
Timezone=Europe/Zurich
Volume=unbound-redis-cache.volume:/usr/local/unbound/cachedb.d
[Service]
Restart=always
[Install]
WantedBy=default.target

View File

@@ -0,0 +1,27 @@
[Unit]
Description=Redis container
After=unbound-redis-socket.container
Requires=unbound-redis-socket.container
[Container]
AutoUpdate=registry
Command=CMD redis-server /usr/local/etc/redis/redis.conf
ContainerName=unbound-redis
Environment=TZ=Europe/Zurich
HealthCheck=CMD /bin/bash -c '[[ -S /usr/local/unbound/cachedb.d/redis.sock ]]'
HealthInterval=30s
HealthTimeout=10s
HealthRetries=5
Image=docker.io/redis:alpine
Pod=pihole.pod
StartWithPod=true
Timezone=Europe/Zurich
Volume=unbound-redis-data.volume:/data
Volume=unbound-redis-conf.volume:/usr/local/etc/redis
Volume=unbound-redis-cache.volume:/usr/local/unbound/cachedb.d
[Service]
Restart=always
[Install]
WantedBy=default.target

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/pihole/storage/unbound-zones
Driver=local
Options=bind
Type=none
VolumeName=unbound-zones

View File

@@ -0,0 +1,38 @@
[Unit]
Description=Unbound container
After=unbound-redis.container
Requires=unbound-redis.container
[Container]
AutoUpdate=registry
Command=CMD redis-server /usr/local/etc/redis/redis.conf
ContainerName=unbound
DNS=172.20.0.7
Environment=TZ=Europe/Zurich
Environment=GID=1001
Environment=UID=1001
Environment=UNBOUND_GID=1001
Environment=UNBOUND_UID=1001
HealthCheck=CMD /usr/local/unbound/sbin/healthcheck.sh
HealthInterval=30s
HealthTimeout=10s
HealthRetries=5
Image=docker.io/madnuttah/unbound:latest
IP=172.20.0.7
Network=pihole.network
Pod=pihole.pod
StartWithPod=true
Timezone=Europe/Zurich
Volume=redis-data.volume:/data
Volume=unbound.volume:/usr/local/unbound
Volume=unbound-conf.volume:/usr/local/unbound/conf.d
Volume=unbound-iana.volume:/usr/local/unbound/iana.d
Volume=unbound-log.volume:/usr/local/unbound/log.d
Volume=unbound-zones.volume:/usr/local/unbound/zones.d
Volume=unbound-cache.volume:/usr/local/unbound/cachedb.d/
[Service]
Restart=always
[Install]
WantedBy=default.target

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/pihole/storage/unbound
Driver=local
Options=bind
Type=none
VolumeName=unbound

View File

@@ -0,0 +1,26 @@
[Unit]
Description=QBittorrent Gluetun container
[Container]
AddCapability=NET_ADMIN
AddDevice=/dev/net/tun:/dev/net/tun
AutoUpdate=registry
ContainerName=gluetun
Environment=OPENVPN_VERSION=2.5
Environment=SERVER_COUNTRIES=Netherlands
Environment=UPDATER_PERIOD=
Environment=VPN_SERVICE_PROVIDER=nordvpn
Environment=VPN_TYPE=openvpn
Environment=TZ=Europe/Zurich
Image=docker.io/qmcgaw/gluetun:v3.40
Pod=qbittorrent.pod
Secret=vpn-user,type=env,target=OPENVPN_USER
Secret=vpn-password,type=env,target=OPENVPN_PASSWORD
StartWithPod=true
Timezone=Europe/Zurich
[Service]
Restart=always
[Install]
WantedBy=default.target

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/qbittorrent/storage/config
Driver=local
Options=bind
Type=none
VolumeName=qbittorrent-config

View File

@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/qbittorrent/storage/downloads
Driver=local
Options=bind
Type=none
VolumeName=qbittorrent-downloads

Some files were not shown because too many files have changed in this diff Show More