Replace quadlets with current configuration

This commit is contained in:
topterrorist 2026-09-19 16:49:49 +02:00
parent 4a359f7d5a
commit 792b32ea02
45 changed files with 273 additions and 18 deletions

View file

@ -8,6 +8,7 @@ PartOf=authentik.target
[Container]
Image=docker.io/library/postgres:16-alpine
AutoUpdate=registry
ContainerName=authentik-postgres
Volume=auth_database:/var/lib/postgresql/data

View file

@ -8,6 +8,7 @@ PartOf=authentik.target
[Container]
Image=ghcr.io/goauthentik/server:2026.2.2
AutoUpdate=registry
ContainerName=authentik-server
Exec=server

View file

@ -8,6 +8,7 @@ PartOf=authentik.target
[Container]
Image=ghcr.io/goauthentik/server:2026.2.2
AutoUpdate=registry
ContainerName=authentik-worker
Exec=worker
@ -17,7 +18,7 @@ EnvironmentFile=%h/services/authentik/.env
User=root
Network=authentik.network
Volume=/var/run/docker.sock:/var/run/docker.sock
Volume=/var/run/podman/podman.sock:/var/run/docker.sock
Volume=%h/services/authentik/data:/data
Volume=%h/services/authentik/certs:/certs
Volume=%h/services/authentik/custom-templates:/templates

View file

@ -8,7 +8,8 @@ ContainerName=forgejo-postgres
Environment=POSTGRES_USER={YOUR POSTGRESS USER}
Environment=POSTGRES_PASSWORD={YOUR POSTGRESS PASSWORD}
Environment=POSTGRES_DB=forgejo-sql
Image=postgres:17
Image=docker.io/library/postgres:17
AutoUpdate=registry
Network=forgejo.network
Volume=%h/services/forgejo/postgresql/data:/var/lib/postgresql/data
User=999

View file

@ -11,6 +11,7 @@ ContainerName=forgejo-app
Environment=USER_UID=1000 USER_GID=1000
Environment=FORGEJO__database__HOST=forgejo-postgres
Image=codeberg.org/forgejo/forgejo:11
AutoUpdate=registry
Network=forgejo.network
#AddHost=(something something pasta is dogshit put domain here from host NIC):host-gateway

View file

@ -0,0 +1,6 @@
server {
listen 587 ssl;
proxy_pass 127.0.0.1:588;
ssl_certificate /etc/letsencrypt/live/{YOURDOMAIN.COM}/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/{YOURDOMAIN.COM}/privkey.pem;
}

View file

@ -0,0 +1,34 @@
server {
listen 443 ssl;
server_name mail.{YOURDOMAIN.COM};
ssl_certificate /etc/letsencrypt/live/mail.{YOURDOMAIN.COM}/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mail.{YOURDOMAIN.COM}/privkey.pem;
location / {
proxy_pass http://127.0.0.1:7071;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
sub_filter_once off;
sub_filter '</head>' '<link rel="stylesheet" href="/custom.css"></head>';
}
# custom theming stuff
# location /background.jpg {
# alias /var/www/html/nginx/background.jpg;
# add_header Access-Control-Allow-Origin *;
# }
# location /custom.css {
# alias /var/www/html/nginx/custom_mailu.css;
# default_type text/css;
# add_header Access-Control-Allow-Origin *;
#}
}

7
mailu/config/readme.txt Normal file
View file

@ -0,0 +1,7 @@
lower your privileged ports to 24 for this to run rootlessly
containerd@terrorist-academy-mainserve:~$ sudo tee /etc/sysctl.d/99-unprivileged-port-start.conf >/dev/null <<'EOF'
net.ipv4.ip_unprivileged_port_start=24
EOF
sudo systemctl restart systemd-sysctl.service
sudo sysctl net.ipv4.ip_unprivileged_port_start

View file

@ -11,6 +11,7 @@ Environment=I_KNOW_MY_SETUP_DOESNT_FIT_REQUIREMENTS_AND_WONT_FILE_ISSUES_WITHOUT
EnvironmentFile=%h/services/mailu/mailu.env
HostName=admin
Image=ghcr.io/mailu/admin:2024.06
AutoUpdate=registry
LogDriver=journald
LogOpt=tag=mailu-admin
Network=mailu-default.network:alias=admin

View file

@ -10,6 +10,7 @@ DNS=10.230.230.254
EnvironmentFile=%h/services/mailu/mailu.env
HostName=antispam
Image=ghcr.io/mailu/rspamd:2024.06
AutoUpdate=registry
LogDriver=journald
LogOpt=tag=mailu-antispam
Network=mailu-default.network

View file

@ -5,7 +5,8 @@ PartOf=mailu.target
[Container]
ContainerName=mailu-antivirus
HealthCmd=none
Image=clamav/clamav-debian:1.4
Image=docker.io/clamav/clamav-debian:1.4
AutoUpdate=registry
LogDriver=journald
LogOpt=tag=mailu-antivirus
Network=mailu-clamav.network:alias=antivirus

View file

@ -9,6 +9,7 @@ ContainerName=mailu-fetchmail
DNS=10.230.230.254
EnvironmentFile=%h/services/mailu/mailu.env
Image=ghcr.io/mailu/fetchmail:2024.06
AutoUpdate=registry
LogDriver=journald
LogOpt=tag=mailu-fetchmail
Network=mailu-default.network:alias=fetchmail

View file

@ -9,6 +9,7 @@ ContainerName=mailu-front
DNS=10.230.230.254
EnvironmentFile=%h/services/mailu/mailu.env
Image=ghcr.io/mailu/nginx:2024.06
AutoUpdate=registry
LogDriver=journald
LogOpt=tag=mailu-front
Network=mailu-default.network:alias=front

View file

@ -13,7 +13,8 @@ HealthRetries=3
HealthStartPeriod=10s
HealthTimeout=5s
HostName=tika
Image=apache/tika:latest-full
Image=docker.io/apache/tika:latest-full
AutoUpdate=registry
LogDriver=journald
LogOpt=tag=mailu-tika
Network=mailu-fts-attachments.network:alias=tika

View file

@ -9,6 +9,7 @@ ContainerName=mailu-imap
DNS=10.230.230.254
EnvironmentFile=%h/services/mailu/mailu.env
Image=ghcr.io/mailu/dovecot:2024.06
AutoUpdate=registry
LogDriver=journald
LogOpt=tag=mailu-imap
Network=mailu-default.network:alias=imap

View file

@ -9,6 +9,7 @@ ContainerName=mailu-oletools
DNS=10.230.230.254
HostName=oletools
Image=ghcr.io/mailu/oletools:2024.06
AutoUpdate=registry
LogDriver=journald
LogOpt=tag=mailu-oletools
Network=mailu-oletools.network:alias=oletools

View file

@ -7,7 +7,8 @@ PartOf=mailu.target
[Container]
ContainerName=mailu-redis
DNS=10.230.230.254
Image=redis:alpine
Image=docker.io/library/redis:alpine
AutoUpdate=registry
Network=mailu-default.network:alias=redis
Volume=%h/services/mailu/redis:/data

View file

@ -6,6 +6,7 @@ PartOf=mailu.target
ContainerName=mailu-resolver
EnvironmentFile=%h/services/mailu/mailu.env
Image=ghcr.io/mailu/unbound:2024.06
AutoUpdate=registry
LogDriver=journald
LogOpt=tag=mailu-resolver
Network=mailu-default.network:ip=10.230.230.254

View file

@ -9,6 +9,7 @@ ContainerName=mailu-smtp
DNS=10.230.230.254
EnvironmentFile=%h/services/mailu/mailu.env
Image=ghcr.io/mailu/postfix:2024.06
AutoUpdate=registry
LogDriver=journald
LogOpt=tag=mailu-smtp
Network=mailu-default.network:alias=smtp

View file

@ -5,6 +5,7 @@ PartOf=mailu.target
[Container]
ContainerName=mailu-webdav
Image=ghcr.io/mailu/radicale:2024.06
AutoUpdate=registry
LogDriver=journald
LogOpt=tag=mailu-webdav
Network=mailu-radicale.network:alias=webdav

View file

@ -8,6 +8,7 @@ PartOf=mailu.target
ContainerName=mailu-webmail
EnvironmentFile=%h/services/mailu/mailu.env
Image=ghcr.io/mailu/webmail:2024.06
AutoUpdate=registry
LogDriver=journald
LogOpt=tag=mailu-webmail
Network=mailu-webmail.network:alias=webmail

View file

@ -8,7 +8,8 @@ ContainerName=matrix-coturn
Environment=TURN_CERT_PATH=/etc/coturn/fullchain.pem TURN_KEY_PATH=/etc/coturn/privkey.pem
Image=coturn/coturn:latest
Image=docker.io/coturn/coturn:latest
AutoUpdate=registry
PublishPort=3478:3478/udp
PublishPort=3478:3478/tcp
PublishPort=5349:5349/tcp

View file

@ -8,7 +8,8 @@ AddCapability=NET_BIND_SERVICE
ContainerName=matrix-element-web
Image=vectorim/element-web:latest
Image=docker.io/vectorim/element-web:latest
AutoUpdate=registry
PublishPort=127.0.0.1:8445:80
Volume=%h/services/matrix/element-config.json:/app/config.json:ro

View file

@ -14,6 +14,7 @@ Environment=LIVEKIT_FULL_ACCESS_HOMESERVERS=terrorist.academy
PublishPort=127.0.0.1:8909:8080
Image=ghcr.io/element-hq/lk-jwt-service:latest
AutoUpdate=registry
AddHost=(matrixrtc.{YOURDOMAIN.COM}):host-gateway
[Service]

View file

@ -10,7 +10,8 @@ Environment="LIVEKIT_KEYS={YOUR LIVEKIT KEY}: {YOUR LIVEKIT SECRET}"
Environment=LIVEKIT_WS_UR=wss://matrixrtc.{YOURDOMAIN>COM}
Exec=--config /etc/livekit.yaml
Image=livekit/livekit-server:latest
Image=docker.io/livekit/livekit-server:latest
AutoUpdate=registry
PublishPort=127.0.0.1:7880:7880
PublishPort=50100-50200:50100-50200/udp

View file

@ -9,7 +9,8 @@ ContainerName=matrix-postgres
Environment=POSTGRES_PASSWORD={YOUR POSTGRES PASSWORD}
Environment=POSTGRES_USER=synapse
HostName=matrix-postres
Image=postgres:14
Image=docker.io/library/postgres:14
AutoUpdate=registry
Volume=%h/services/matrix/pgdata:/var/lib/postgresql/data
Volume=%h/services/matrix/turn:/var/lib/turn

View file

@ -6,7 +6,8 @@ PartOf=matrix.target
[Container]
ContainerName=matrix-synapse-admin
HostName=synapse-admin
Image=awesometechnologies/synapse-admin:latest
Image=docker.io/awesometechnologies/synapse-admin:latest
AutoUpdate=registry
PublishPort=127.0.0.1:9092:80
[Service]

View file

@ -12,7 +12,8 @@ ContainerName=matrix-synapse
Environment=SYNAPSE_SERVER_NAME={YOURDOMAIN.COM}
Environment=SYNAPSE_REPORT_STATS=no
Image=matrixdotorg/synapse:latest
Image=docker.io/matrixdotorg/synapse:latest
AutoUpdate=registry
PublishPort=127.0.0.1:8008:8008
PublishPort=127.0.0.1:8449:8448

View file

@ -0,0 +1,50 @@
[Unit]
Description=nextcloud server
Requires=nextcloud-postgres.service nextcloud-redis.service
After=nextcloud-postgres.service nextcloud-redis.service
PartOf=nextcloud.target
[Container]
AddCapability=NET_BIND_SERVICE
ContainerName=nextcloud-app
Environment=POSTGRES_DB={YOUR DATABASE}
Environment=POSTGRES_USER={YOUR DB USER}
Environment=POSTGRES_PASSWORD={YOUR DB PASSWORD}
Environment=APACHE_LISTEN=0.0.0.0:80
Environment=APACHE_SERVER_NAME={YOURDOMAIN.COM
Environment=NEXTCLOUD_DATA_DIR=/var/www/html/data
Environment=REDIS_HOST=nextcloud-redis
Environment=TRUSTED_PROXIES=0.0.0.0/0
Environment=NEXTCLOUD_TRUSTED_DOMAINS={YOURDOMAIN.COM}
Environment=NEXTCLOUD_INIT_HTACCESS=true
Environment=OVERWRITEPROTOCOL=https
Environment=OVERWRITECLIURL={https://YOURDOMAIN.COM}
Environment=PHP_MEMORY_LIMIT=20G
Environment=PHP_UPLOAD_LIMIT=100G
Environment=PHP_POST_MAX_SIZE=100G
Environment=APACHE_BODY_LIMIT=2147483647
Environment=PHP_OPCACHE_MEMORY_CONSUMPTION=512
Environment=POSTGRES_HOST=nextcloud-postgres
#AddHost=(something something pasta is dogshit put domain here from host NIC):host-gateway
Image=docker.io/library/nextcloud:apache
AutoUpdate=registry
Network=nextcloud.network
PublishPort=127.0.0.1:11000:80
Volume=%h/services/nextcloud/tmp:/tmp
Volume=%h/services/nextcloud/html:/var/www/html
Volume=%h/services/nextcloud/data:/mnt/data
Volume=%h/services/nextcloud/storage1:/mnt/storage1
Volume=%h/services/nextcloud/redis-session.ini:/usr/local/etc/php/conf.d/redis-session.ini
Volume=/etc/timezone:/etc/timezone:ro
Volume=/etc/localtime:/etc/localtime:ro
[Service]
Restart=always
[Install]
WantedBy=nextcloud.target

View file

@ -0,0 +1,22 @@
[Unit]
Description=nextcloud collabora
PartOf=nextcloud.target
[Container]
AddCapability=MKNOD
ContainerName=nextcloud-collabora
Environment=DONT_GEN_SSL_CERT=true
Environment="extra_params=--o:ssl.enable=false --o:ssl.termination=true --o:net.post_allow.host[0]=YOURDOMAIN.COM --o:storage.wopi.host[0]=YOURDOMAIN.COM"
Environment=domain=collabora\.YOURDOMAIN\.COM
Image=docker.io/collabora/code:latest
AutoUpdate=registry
Network=nextcloud.network
PublishPort=127.0.0.1:9980:9980
[Service]
Restart=always
[Install]
WantedBy=nextcloud.target

View file

@ -0,0 +1,12 @@
[Unit]
Description=nextcloud cron service
Requires=nextcloud-app.service
After=nextcloud.target nextcloud-app.service
PartOf=nextcloud.target
[Service]
Type=oneshot
ExecStart=/usr/bin/podman exec -u www-data nextcloud-app php -f /var/www/html/cron.php
[Install]
WantedBy=nextcloud.target

View file

@ -0,0 +1,20 @@
[Unit]
Description=nextlcoud postgres
PartOf=nextcloud.target
[Container]
ContainerName=nextcloud-postgres
Environment=POSTGRES_DB={YOUR POSTGRES DB}
Environment=POSTGRES_USER={YOUR POSTGRES USER}
Environment=POSTGRES_PASSWORD={YOUR POSTGRES PASSWORD}
Image=docker.io/library/postgres:17
AutoUpdate=registry
Network=nextcloud.network
Volume=%h/services/nextcloud/postgresql/data:/var/lib/postgresql/data
[Service]
Restart=always
[Install]
WantedBy=nextcloud.target

View file

@ -0,0 +1,18 @@
[Unit]
Description=nextcloud redis
PartOf=nextcloud.target
[Container]
ContainerName=nextcloud-redis
Image=docker.io/library/redis:7
AutoUpdate=registry
Network=nextcloud.network
Volume=%h/services/nextcloud/redis-session.ini:/usr/local/etc/php/conf.d/redis-session.ini
[Service]
Restart=always
[Install]
WantedBy=nextcloud.target

View file

@ -0,0 +1,17 @@
[Unit]
Description=nextcloud valkey
PartOf=nextcloud.target
[Container]
ContainerName=nextcloud-valkey
Image=docker.io/valkey/valkey:8-alpine
AutoUpdate=registry
Network=nextcloud.network
Volume=%h/services/nextcloud/valkey:/data
[Service]
Restart=always
[Install]
WantedBy=nextcloud.target

View file

@ -0,0 +1,6 @@
[Unit]
Description=Nextcloud podman network
[Network]
Driver=bridge
NetworkName=nextcloud

View file

@ -0,0 +1,20 @@
[Unit]
Description=Nextcloud container stack
Wants=nextcloud-app.service
Wants=nextcloud-collabora.service
Wants=nextcloud-postgres.service
Wants=nextcloud-redis.service
Wants=nextcloud-valkey.service
Wants=nextcloud-network.service
Wants=nextcloud-cron.timer
After=nextcloud-network.service
After=nextcloud-postgres.service
After=nextcloud-redis.service
After=nextcloud-valkey.service
After=nextcloud-collabora.service
After=nextcloud-app.service
[Install]
WantedBy=default.target

View file

@ -0,0 +1,12 @@
[Unit]
Description=nextcloud cron timer
PartOf=nextcloud.target
After=nextcloud.target
[Timer]
OnBootSec=5min
OnUnitActiveSec=5min
Unit=nextcloud-cron.service
[Install]
WantedBy=nextcloud.target

View file

@ -11,7 +11,8 @@ Environment=POSTGRES_USER=opentogethertube
Environment=POSTGRES_PASSWORD={YOUR PASSWORD}
HealthCmd=pg_isready -U opentogethertube
Image=postgres:15-bullseye
Image=docker.io/library/postgres:15-bullseye
AutoUpdate=registry
Network=opentogethertube.network
Volume=%h/services/opentogethertube/postgres:/var/lib/postgresql/data

View file

@ -7,7 +7,8 @@ PartOf=opentogethertube.target
ContainerName=opentogethertube-redis
HealthCmd=redis-cli ping
Image=redis
Image=docker.io/library/redis:latest
AutoUpdate=registry
Network=opentogethertube.network
Volume=%h/services/opentogethertube/redis:/data

View file

@ -18,7 +18,8 @@ Environment=POSTGRES_HOST=opentogethertube-postgres
Environment=POSTGRES_PASSWORD={YOUR PASSWORD}
Environment=DOCKER=1
Image=dyc3/opentogethertube:latest
Image=docker.io/dyc3/opentogethertube:latest
AutoUpdate=registry
Network=opentogethertube.network

View file

@ -1,9 +1,9 @@
[Unit]
Description=opentogethertube container stack
Wants=opentogethertube-redis_db.service
Wants=opentogethertube-redis.service
Wants=opentogethertube-server.service
Wants=opentogethertube-postgres_db.service
Wants=opentogethertube-postgres.service
[Install]
WantedBy=default.target

View file

@ -6,7 +6,8 @@ PartOf=singlestarget
[Container]
ContainerName=gatus
Environment=TZ=Europe/Amsterdam
Image=twinproduction/gatus:latest
Image=docker.io/twinproduction/gatus:latest
AutoUpdate=registry
Volume=%h/services/singles/gatus/config:/config
Volume=%h/services/singles/gatus/data:/data/
Volume=/etc/timezone:/etc/timezone:ro

View file

@ -8,6 +8,7 @@ ContainerName=homepage
Environment=HOMEPAGE_ALLOWED_HOSTS={YOURDOMAIN.COM}
Environment=PUID=1000 PGID=1000
Image=ghcr.io/gethomepage/homepage:latest
AutoUpdate=registry
Volume=%h/services/singles/homepage/config:/app/config
Volume=%h/services/singles/homepage/assets:/app/public/images
Volume=/home:/home

View file

@ -7,6 +7,7 @@ PartOf=singlestarget
ContainerName=searxng
Environment=USER_UID=1000 USER_GID=1000
Image=docker.io/searxng/searxng:latest
AutoUpdate=registry
PublishPort=127.0.0.1:8889:8080
Volume=%h/services/singles/searxng/config:/etc/searxng
Volume=%h/services/singles/searxng/cache:/cache/searxng

View file

@ -10,4 +10,4 @@ After=homepage.service
After=searxng.service
[Install]
WantedBy=install.target
WantedBy=default.target