authorgravatar for git@paperclover.netclover caruso <git@paperclover.net> 2026-06-11 00:34:09-07:00
committergravatar for git@paperclover.netclover caruso <git@paperclover.net> 2026-06-11 01:38:21-07:00
log21c7642b347997f1c6d3400bdc766e16d190414f
tree9f0f69aef26cd7baba1d084bc9acf96e5d6d9a89
parentdb792ebc5ec23d7de27231d6584eeb01a89a5f78
signaturebadge-check Signed by SSH key SHA256:xbd+BjjhyBfwk7GVoURf9Yx0gzDerHbvYv7SddNWmAs

fix: revive dawarich, technitium, openspeedtest (broken since jan 16)

three services silently crash-looping for five months, all casualties of the jan 16 image/user changes: - dawarich: rails 8 requires SECRET_KEY_BASE; new DAWARICH_SECRET_KEY_BASE env var (added to generate-env.sh and the deployed .env) - technitium: new image writes blocklists to /etc/dns, which was root-owned in-container; mount a writable volume there - openspeedtest: the image entrypoint rewrites nginx config as root; drop the user override that broke it

2 files changed, 6 insertions(+), 1 deletions(-)

compose.yaml+3-1
...@@ -640,6 +640,7 @@ services:...@@ -640,6 +640,7 @@ services:
640 user: "$USER_ID:$GROUP_ID"640 user: "$USER_ID:$GROUP_ID"
641 environment:641 environment:
642 RAILS_ENV: production642 RAILS_ENV: production
643 SECRET_KEY_BASE: "${DAWARICH_SECRET_KEY_BASE:?}"
643 REDIS_URL: "redis://redis:6379"644 REDIS_URL: "redis://redis:6379"
644 DATABASE_HOST: postgres645 DATABASE_HOST: postgres
645 DATABASE_USERNAME: dawarich646 DATABASE_USERNAME: dawarich
...@@ -677,6 +678,7 @@ services:...@@ -677,6 +678,7 @@ services:
677 user: "$USER_ID:$GROUP_ID"678 user: "$USER_ID:$GROUP_ID"
678 environment:679 environment:
679 RAILS_ENV: production680 RAILS_ENV: production
681 SECRET_KEY_BASE: "${DAWARICH_SECRET_KEY_BASE:?}"
680 REDIS_URL: "redis://redis:6379"682 REDIS_URL: "redis://redis:6379"
681 DATABASE_HOST: postgres683 DATABASE_HOST: postgres
682 DATABASE_USERNAME: dawarich684 DATABASE_USERNAME: dawarich
...@@ -768,7 +770,6 @@ services:...@@ -768,7 +770,6 @@ services:
768 restart: unless-stopped770 restart: unless-stopped
769 container_name: openspeedtest771 container_name: openspeedtest
770 image: openspeedtest/latest772 image: openspeedtest/latest
771 user: "$USER_ID:$GROUP_ID"
772 labels:773 labels:
773 net.paperclover.list.name: Open Speed Test774 net.paperclover.list.name: Open Speed Test
774 net.paperclover.list.domain: speedtest775 net.paperclover.list.domain: speedtest
...@@ -785,6 +786,7 @@ services:...@@ -785,6 +786,7 @@ services:
785 - 8053:8053/tcp # dns over http786 - 8053:8053/tcp # dns over http
786 volumes:787 volumes:
787 - "${APP_ROOT}/technitium/config:/app/config"788 - "${APP_ROOT}/technitium/config:/app/config"
789 - "${APP_ROOT}/technitium/dns:/etc/dns"
788 - "${APP_ROOT}/technitium/ssl:/etc/ssl"790 - "${APP_ROOT}/technitium/ssl:/etc/ssl"
789 - "${APP_ROOT}/technitium/logs:/app/config/logs"791 - "${APP_ROOT}/technitium/logs:/app/config/logs"
790 restart: unless-stopped792 restart: unless-stopped
generate-env.sh+3
...@@ -39,6 +39,9 @@ template() {...@@ -39,6 +39,9 @@ template() {
39 section "authentication"39 section "authentication"
40 add "KEYCLOAK_ADMIN_PASSWORD" "$(secret 12)"40 add "KEYCLOAK_ADMIN_PASSWORD" "$(secret 12)"
4141
42 section "dawarich"
43 add "DAWARICH_SECRET_KEY_BASE" "$(hex_secret 64)"
44
42 section "postgres"45 section "postgres"
43 add "POSTGRES_PASSWORD" "$(secret 32)"46 add "POSTGRES_PASSWORD" "$(secret 32)"
44 add "POSTGRES_PASSWORD_KEYCLOAK" "$(secret 32)"47 add "POSTGRES_PASSWORD_KEYCLOAK" "$(secret 32)"