LibrePortal/scripts/app/app_update_specifics.sh
librelad d0ec43e3ca fix(focalboard): chown data dir to runtime uid so db persists
Focalboard runs as nobody (65534) but fixPermissionsBeforeStart hands the app
dir to the install user, so the server couldn't open its sqlite db on the newly
mounted data dir. Chown data/ to 65534 in appUpdateSpecifics and restart.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Signed-off-by: librelad <librelad@digitalangels.vip>
2026-05-23 17:18:00 +01:00

46 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
appUpdateSpecifics()
{
local app_name="$1"
# Initialize setup.
initializeAppVariables $app_name;
if [[ $app_name == "adguard" ]] || [[ $app_name == "pihole" ]]; then
if [[ $CFG_REQUIREMENT_DNS_UPDATER == "true" ]]; then
updateDNS $app_name install;
fi
# Split-horizon local DNS: app subdomains resolve to the box on the LAN.
declare -F setupLocalDnsRewrites >/dev/null 2>&1 && setupLocalDnsRewrites
fi
if [[ $app_name == "libreportal" ]]; then
webuiLibrePortalUpdate;
fi
if [[ $app_name == "dashy" ]]; then
# Refresh apps-services.json (the source of truth that
# appDashyUpdateConf reads) before generating dashy's conf.yml.
# On a first dashy install the file may not yet reflect dashy
# itself; on a re-install the previous selection survives.
webuiLibrePortalUpdate;
appDashyUpdateConf;
fi
if [[ $app_name == "focalboard" ]]; then
# Focalboard runs as nobody (65534) and writes its sqlite db + uploads
# under its mounted data dir; fixPermissionsBeforeStart hands the dir to
# the install user, so give it to 65534 here or the server can't open
# the database. Restart so it picks the dir up.
sudo chown -R 65534:65534 "$containers_dir$app_name/data";
shouldrestart="true";
fi
if [[ $shouldrestart == "true" ]]; then
dockerComposeRestart $app_name;
fi
isSuccessful "All application specific updates have been completed."
}