From 792b32ea02605cf0cb61913b2e534fe1a96b62b4 Mon Sep 17 00:00:00 2001 From: topterrorist Date: Sat, 19 Sep 2026 16:49:49 +0200 Subject: [PATCH] Replace quadlets with current configuration --- .../quadlets/authentik-postgres.container | 1 + authentik/quadlets/authentik-server.container | 1 + authentik/quadlets/authentik-worker.container | 3 +- forgejo/quadlets/forgejo-postgres.container | 3 +- forgejo/quadlets/forgejo-server.container | 1 + mailu/config/MATRIX-STREAMPROXY-mail.conf | 6 +++ mailu/config/NGINX-mailu-web.conf | 34 +++++++++++++ mailu/config/readme.txt | 7 +++ mailu/quadlets/mailu-admin.container | 1 + mailu/quadlets/mailu-antispam.container | 1 + mailu/quadlets/mailu-antivirus.container | 3 +- mailu/quadlets/mailu-fetchmail.container | 1 + mailu/quadlets/mailu-front.container | 1 + .../quadlets/mailu-fts-attachments.container | 3 +- mailu/quadlets/mailu-imap.container | 1 + mailu/quadlets/mailu-oletools.container | 1 + mailu/quadlets/mailu-redis.container | 3 +- mailu/quadlets/mailu-resolver.container | 1 + mailu/quadlets/mailu-smtp.container | 1 + mailu/quadlets/mailu-webdav.container | 1 + mailu/quadlets/mailu-webmail.container | 1 + matrix/quadlets/matrix-coturn.container | 3 +- matrix/quadlets/matrix-element-web.container | 3 +- matrix/quadlets/matrix-livekit-jwt.container | 1 + matrix/quadlets/matrix-livekit.container | 3 +- matrix/quadlets/matrix-postgres.container | 3 +- .../quadlets/matrix-synapse-admin.container | 3 +- matrix/quadlets/matrix-synapse.container | 3 +- nextcloud/quadlets/nextcloud-app.container | 50 +++++++++++++++++++ .../quadlets/nextcloud-collabora.container | 22 ++++++++ nextcloud/quadlets/nextcloud-cron.service | 12 +++++ .../quadlets/nextcloud-postgres.container | 20 ++++++++ nextcloud/quadlets/nextcloud-redis.container | 18 +++++++ nextcloud/quadlets/nextcloud-valkey.container | 17 +++++++ nextcloud/quadlets/nextcloud.network | 6 +++ nextcloud/quadlets/nextcloud.target | 20 ++++++++ nextcloud/quadlets/nextcloud.timer | 12 +++++ .../opentogethertube-postgres.container | 3 +- .../quadlets/opentogethertube-redis.container | 3 +- .../opentogethertube-server.container | 3 +- .../quadlets/opentogethertube.target | 4 +- singles/quadlets/gatus.container | 3 +- singles/quadlets/homepage.container | 1 + singles/quadlets/searxng.container | 1 + singles/quadlets/singles.target | 2 +- 45 files changed, 273 insertions(+), 18 deletions(-) create mode 100644 mailu/config/MATRIX-STREAMPROXY-mail.conf create mode 100644 mailu/config/NGINX-mailu-web.conf create mode 100644 mailu/config/readme.txt create mode 100644 nextcloud/quadlets/nextcloud-app.container create mode 100644 nextcloud/quadlets/nextcloud-collabora.container create mode 100644 nextcloud/quadlets/nextcloud-cron.service create mode 100644 nextcloud/quadlets/nextcloud-postgres.container create mode 100644 nextcloud/quadlets/nextcloud-redis.container create mode 100644 nextcloud/quadlets/nextcloud-valkey.container create mode 100644 nextcloud/quadlets/nextcloud.network create mode 100644 nextcloud/quadlets/nextcloud.target create mode 100644 nextcloud/quadlets/nextcloud.timer diff --git a/authentik/quadlets/authentik-postgres.container b/authentik/quadlets/authentik-postgres.container index 202c62b..4bc886d 100644 --- a/authentik/quadlets/authentik-postgres.container +++ b/authentik/quadlets/authentik-postgres.container @@ -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 diff --git a/authentik/quadlets/authentik-server.container b/authentik/quadlets/authentik-server.container index 13d9a97..23d529c 100644 --- a/authentik/quadlets/authentik-server.container +++ b/authentik/quadlets/authentik-server.container @@ -8,6 +8,7 @@ PartOf=authentik.target [Container] Image=ghcr.io/goauthentik/server:2026.2.2 +AutoUpdate=registry ContainerName=authentik-server Exec=server diff --git a/authentik/quadlets/authentik-worker.container b/authentik/quadlets/authentik-worker.container index 342b4a0..8d12cb1 100644 --- a/authentik/quadlets/authentik-worker.container +++ b/authentik/quadlets/authentik-worker.container @@ -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 diff --git a/forgejo/quadlets/forgejo-postgres.container b/forgejo/quadlets/forgejo-postgres.container index 818aced..e413ca9 100755 --- a/forgejo/quadlets/forgejo-postgres.container +++ b/forgejo/quadlets/forgejo-postgres.container @@ -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 diff --git a/forgejo/quadlets/forgejo-server.container b/forgejo/quadlets/forgejo-server.container index 98bf2aa..8cb4a92 100755 --- a/forgejo/quadlets/forgejo-server.container +++ b/forgejo/quadlets/forgejo-server.container @@ -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 diff --git a/mailu/config/MATRIX-STREAMPROXY-mail.conf b/mailu/config/MATRIX-STREAMPROXY-mail.conf new file mode 100644 index 0000000..3239701 --- /dev/null +++ b/mailu/config/MATRIX-STREAMPROXY-mail.conf @@ -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; + } diff --git a/mailu/config/NGINX-mailu-web.conf b/mailu/config/NGINX-mailu-web.conf new file mode 100644 index 0000000..77aa4aa --- /dev/null +++ b/mailu/config/NGINX-mailu-web.conf @@ -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 '' ''; + + + } + +# 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 *; +#} +} diff --git a/mailu/config/readme.txt b/mailu/config/readme.txt new file mode 100644 index 0000000..c42bcbf --- /dev/null +++ b/mailu/config/readme.txt @@ -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 diff --git a/mailu/quadlets/mailu-admin.container b/mailu/quadlets/mailu-admin.container index f096318..7d822c6 100644 --- a/mailu/quadlets/mailu-admin.container +++ b/mailu/quadlets/mailu-admin.container @@ -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 diff --git a/mailu/quadlets/mailu-antispam.container b/mailu/quadlets/mailu-antispam.container index ea9920d..2f53235 100644 --- a/mailu/quadlets/mailu-antispam.container +++ b/mailu/quadlets/mailu-antispam.container @@ -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 diff --git a/mailu/quadlets/mailu-antivirus.container b/mailu/quadlets/mailu-antivirus.container index dcc08eb..6ce63a7 100644 --- a/mailu/quadlets/mailu-antivirus.container +++ b/mailu/quadlets/mailu-antivirus.container @@ -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 diff --git a/mailu/quadlets/mailu-fetchmail.container b/mailu/quadlets/mailu-fetchmail.container index 1651e5f..42ebdd0 100644 --- a/mailu/quadlets/mailu-fetchmail.container +++ b/mailu/quadlets/mailu-fetchmail.container @@ -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 diff --git a/mailu/quadlets/mailu-front.container b/mailu/quadlets/mailu-front.container index 6103ae6..3b57579 100644 --- a/mailu/quadlets/mailu-front.container +++ b/mailu/quadlets/mailu-front.container @@ -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 diff --git a/mailu/quadlets/mailu-fts-attachments.container b/mailu/quadlets/mailu-fts-attachments.container index 6e68969..58e9503 100644 --- a/mailu/quadlets/mailu-fts-attachments.container +++ b/mailu/quadlets/mailu-fts-attachments.container @@ -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 diff --git a/mailu/quadlets/mailu-imap.container b/mailu/quadlets/mailu-imap.container index 1359d05..be26641 100644 --- a/mailu/quadlets/mailu-imap.container +++ b/mailu/quadlets/mailu-imap.container @@ -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 diff --git a/mailu/quadlets/mailu-oletools.container b/mailu/quadlets/mailu-oletools.container index 07cecd2..0830f20 100644 --- a/mailu/quadlets/mailu-oletools.container +++ b/mailu/quadlets/mailu-oletools.container @@ -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 diff --git a/mailu/quadlets/mailu-redis.container b/mailu/quadlets/mailu-redis.container index 0b0289f..96d36a1 100644 --- a/mailu/quadlets/mailu-redis.container +++ b/mailu/quadlets/mailu-redis.container @@ -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 diff --git a/mailu/quadlets/mailu-resolver.container b/mailu/quadlets/mailu-resolver.container index 47fbb8d..db31e9a 100644 --- a/mailu/quadlets/mailu-resolver.container +++ b/mailu/quadlets/mailu-resolver.container @@ -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 diff --git a/mailu/quadlets/mailu-smtp.container b/mailu/quadlets/mailu-smtp.container index c209c9e..ac70fb8 100644 --- a/mailu/quadlets/mailu-smtp.container +++ b/mailu/quadlets/mailu-smtp.container @@ -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 diff --git a/mailu/quadlets/mailu-webdav.container b/mailu/quadlets/mailu-webdav.container index 639a9db..9fa5e67 100644 --- a/mailu/quadlets/mailu-webdav.container +++ b/mailu/quadlets/mailu-webdav.container @@ -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 diff --git a/mailu/quadlets/mailu-webmail.container b/mailu/quadlets/mailu-webmail.container index 28cd5af..bae1bd4 100644 --- a/mailu/quadlets/mailu-webmail.container +++ b/mailu/quadlets/mailu-webmail.container @@ -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 diff --git a/matrix/quadlets/matrix-coturn.container b/matrix/quadlets/matrix-coturn.container index d4e8213..e820838 100644 --- a/matrix/quadlets/matrix-coturn.container +++ b/matrix/quadlets/matrix-coturn.container @@ -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 diff --git a/matrix/quadlets/matrix-element-web.container b/matrix/quadlets/matrix-element-web.container index 2dcd2b4..f986d8f 100644 --- a/matrix/quadlets/matrix-element-web.container +++ b/matrix/quadlets/matrix-element-web.container @@ -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 diff --git a/matrix/quadlets/matrix-livekit-jwt.container b/matrix/quadlets/matrix-livekit-jwt.container index b2be00b..81b7508 100644 --- a/matrix/quadlets/matrix-livekit-jwt.container +++ b/matrix/quadlets/matrix-livekit-jwt.container @@ -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] diff --git a/matrix/quadlets/matrix-livekit.container b/matrix/quadlets/matrix-livekit.container index 8707a93..90d9a02 100644 --- a/matrix/quadlets/matrix-livekit.container +++ b/matrix/quadlets/matrix-livekit.container @@ -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 diff --git a/matrix/quadlets/matrix-postgres.container b/matrix/quadlets/matrix-postgres.container index cba20f7..9110bf5 100644 --- a/matrix/quadlets/matrix-postgres.container +++ b/matrix/quadlets/matrix-postgres.container @@ -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 diff --git a/matrix/quadlets/matrix-synapse-admin.container b/matrix/quadlets/matrix-synapse-admin.container index 29d3428..fd86364 100644 --- a/matrix/quadlets/matrix-synapse-admin.container +++ b/matrix/quadlets/matrix-synapse-admin.container @@ -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] diff --git a/matrix/quadlets/matrix-synapse.container b/matrix/quadlets/matrix-synapse.container index eff472a..a92cd21 100644 --- a/matrix/quadlets/matrix-synapse.container +++ b/matrix/quadlets/matrix-synapse.container @@ -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 diff --git a/nextcloud/quadlets/nextcloud-app.container b/nextcloud/quadlets/nextcloud-app.container new file mode 100644 index 0000000..a867f4b --- /dev/null +++ b/nextcloud/quadlets/nextcloud-app.container @@ -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 diff --git a/nextcloud/quadlets/nextcloud-collabora.container b/nextcloud/quadlets/nextcloud-collabora.container new file mode 100644 index 0000000..1a71b08 --- /dev/null +++ b/nextcloud/quadlets/nextcloud-collabora.container @@ -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 + diff --git a/nextcloud/quadlets/nextcloud-cron.service b/nextcloud/quadlets/nextcloud-cron.service new file mode 100644 index 0000000..351c132 --- /dev/null +++ b/nextcloud/quadlets/nextcloud-cron.service @@ -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 diff --git a/nextcloud/quadlets/nextcloud-postgres.container b/nextcloud/quadlets/nextcloud-postgres.container new file mode 100644 index 0000000..42cd590 --- /dev/null +++ b/nextcloud/quadlets/nextcloud-postgres.container @@ -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 diff --git a/nextcloud/quadlets/nextcloud-redis.container b/nextcloud/quadlets/nextcloud-redis.container new file mode 100644 index 0000000..3064dd6 --- /dev/null +++ b/nextcloud/quadlets/nextcloud-redis.container @@ -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 + diff --git a/nextcloud/quadlets/nextcloud-valkey.container b/nextcloud/quadlets/nextcloud-valkey.container new file mode 100644 index 0000000..1d29d65 --- /dev/null +++ b/nextcloud/quadlets/nextcloud-valkey.container @@ -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 diff --git a/nextcloud/quadlets/nextcloud.network b/nextcloud/quadlets/nextcloud.network new file mode 100644 index 0000000..c4c60de --- /dev/null +++ b/nextcloud/quadlets/nextcloud.network @@ -0,0 +1,6 @@ +[Unit] +Description=Nextcloud podman network + +[Network] +Driver=bridge +NetworkName=nextcloud diff --git a/nextcloud/quadlets/nextcloud.target b/nextcloud/quadlets/nextcloud.target new file mode 100644 index 0000000..b80bc68 --- /dev/null +++ b/nextcloud/quadlets/nextcloud.target @@ -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 diff --git a/nextcloud/quadlets/nextcloud.timer b/nextcloud/quadlets/nextcloud.timer new file mode 100644 index 0000000..c4e4cb1 --- /dev/null +++ b/nextcloud/quadlets/nextcloud.timer @@ -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 diff --git a/opentogethertube/quadlets/opentogethertube-postgres.container b/opentogethertube/quadlets/opentogethertube-postgres.container index 3bedb7e..2917e72 100644 --- a/opentogethertube/quadlets/opentogethertube-postgres.container +++ b/opentogethertube/quadlets/opentogethertube-postgres.container @@ -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 diff --git a/opentogethertube/quadlets/opentogethertube-redis.container b/opentogethertube/quadlets/opentogethertube-redis.container index 5d70943..e9738d3 100644 --- a/opentogethertube/quadlets/opentogethertube-redis.container +++ b/opentogethertube/quadlets/opentogethertube-redis.container @@ -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 diff --git a/opentogethertube/quadlets/opentogethertube-server.container b/opentogethertube/quadlets/opentogethertube-server.container index 263e9f0..06d337c 100644 --- a/opentogethertube/quadlets/opentogethertube-server.container +++ b/opentogethertube/quadlets/opentogethertube-server.container @@ -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 diff --git a/opentogethertube/quadlets/opentogethertube.target b/opentogethertube/quadlets/opentogethertube.target index 11c1385..768c229 100644 --- a/opentogethertube/quadlets/opentogethertube.target +++ b/opentogethertube/quadlets/opentogethertube.target @@ -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 diff --git a/singles/quadlets/gatus.container b/singles/quadlets/gatus.container index 210a06f..0a4d20a 100644 --- a/singles/quadlets/gatus.container +++ b/singles/quadlets/gatus.container @@ -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 diff --git a/singles/quadlets/homepage.container b/singles/quadlets/homepage.container index 8289101..a7d47ef 100644 --- a/singles/quadlets/homepage.container +++ b/singles/quadlets/homepage.container @@ -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 diff --git a/singles/quadlets/searxng.container b/singles/quadlets/searxng.container index 6283d4d..ed45f10 100644 --- a/singles/quadlets/searxng.container +++ b/singles/quadlets/searxng.container @@ -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 diff --git a/singles/quadlets/singles.target b/singles/quadlets/singles.target index 26860a7..ac74ecc 100644 --- a/singles/quadlets/singles.target +++ b/singles/quadlets/singles.target @@ -10,4 +10,4 @@ After=homepage.service After=searxng.service [Install] -WantedBy=install.target +WantedBy=default.target