fix(compose): fill the CONFIGS_DIR_TAG + CONTAINERS_DIR_TAG root-path tags

The libreportal compose template binds /libreportal-system/configs/webui/* and
/libreportal-containers into the WebUI container via #LIBREPORTAL|CONFIGS_DIR_TAG|
and CONTAINERS_DIR_TAG placeholders. The only code that knew how to substitute
those — tagsProcessorStandardReplacements — had NO callers anywhere (verified
by grep across the whole tree). Result: the deployed compose retained
CONFIGS_DIR_DATA / CONTAINERS_DIR_DATA placeholders and the safety check in
dockerComposeUp refused to start it.

Wire the two missing substitutions into the standard tag-fill block in
dockerConfigSetupFileWithData where TIMEZONE_TAG / CATEGORY_TAG / TITLE_TAG
already live — applies to every app's templating, idempotent, and unblocks the
fresh-install path. The orphaned tagsProcessorStandardReplacements function
duplicates 3 other tags that ARE filled elsewhere; left in place pending a
follow-up cleanup, but no longer the source-of-truth for these two.

Confirmed live: after running `libreportal app install libreportal` post-fix
the compose templated cleanly (no remaining *_DATA placeholders) and the WebUI
container came up — http://<host>:7270 returns HTTP/1.1 200 OK.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Signed-off-by: librelad <librelad@digitalangels.vip>
This commit is contained in:
librelad 2026-05-26 17:27:19 +01:00
parent 5243039ec3
commit 521f08b8a1

View File

@ -20,6 +20,14 @@ dockerConfigSetupFileWithData()
tagsManagerUpdateUniversalTag "$full_file_path" "TIMEZONE_TAG" "$CFG_TIMEZONE"
tagsManagerUpdateUniversalTag "$full_file_path" "CATEGORY_TAG" "$app_category"
tagsManagerUpdateUniversalTag "$full_file_path" "TITLE_TAG" "$app_title"
# Root-path tags used by the libreportal compose to bind-mount the system's
# configs + live-data dirs into the WebUI container. Without these the
# CONFIGS_DIR_DATA / CONTAINERS_DIR_DATA placeholders survive into the
# deployed compose and dockerComposeUp refuses to start. (The orphan
# tagsProcessorStandardReplacements function carried these alone — wiring
# them in directly so they're always applied to every app's templating.)
tagsManagerUpdateUniversalTag "$full_file_path" "CONFIGS_DIR_TAG" "${configs_dir%/}"
tagsManagerUpdateUniversalTag "$full_file_path" "CONTAINERS_DIR_TAG" "${containers_dir%/}"
# Generic CFG_<APP>_<KEY> -> #LIBREPORTAL|<APP>_<KEY>_TAG| fill. Covers
# every app-specific config value (secrets included) with no
# hand-maintained list — the app-specific block further down is only