immich: keep geodata linked and the build deps present on update

The update wipes $APP_DIR before redeploying, which takes the geodata
symlink the install created with it, and never puts it back. The app
then finds no reverse-geocoding data and the web UI does not come up.

The library recompile assumes headers that only reached the install
list later, so a container built before that fails at the first missing
one - LCMS2 in the reported case.
This commit is contained in:
CanbiZ (MickLesk)
2026-09-22 15:29:51 +02:00
parent 9f47f1fa03
commit 12eef98d7e
+7
View File
@@ -105,6 +105,9 @@ EOF
libraries=("libjxl" "jpegli" "libheif" "libraw" "imagemagick" "libvips")
cd "$BASE_DIR"
msg_warn "Checking for updates to custom image-processing libraries (recompile time: 2-15min per library)"
# Containers built before these landed in the install list have none of
# them, and the recompile below fails on the first missing header.
$STD apt install -y liblcms2-dev libjpeg62-turbo-dev libspng-dev libexif-dev
$STD git pull
for library in "${libraries[@]}"; do
compile_"$library"
@@ -192,6 +195,10 @@ EOF
export SHARP_FORCE_GLOBAL_LIBVIPS=true
$STD pnpm --dir "$APP_DIR/node_modules/sharp" exec npm run build
# The rm -rf above took the geodata symlink with it. Without it the app
# finds no reverse-geocoding data and the web UI never comes up.
ln -sfn "$GEO_DIR" "$APP_DIR/geodata"
# Patch helmet.json: disable upgrade-insecure-requests for HTTP access
if [[ -f "$APP_DIR/helmet.json" ]]; then
jq '.contentSecurityPolicy.directives["upgrade-insecure-requests"] = null' "$APP_DIR/helmet.json" >"$APP_DIR/helmet.json.tmp" && mv "$APP_DIR/helmet.json.tmp" "$APP_DIR/helmet.json"