From ae3e1deece540b8bea02fae8b59cd9b9f27e9873 Mon Sep 17 00:00:00 2001 From: "CanbiZ (MickLesk)" <47820557+MickLesk@users.noreply.github.com> Date: Wed, 8 Apr 2026 19:47:10 +0200 Subject: [PATCH] fix(immich): disable upgrade-insecure-requests CSP directive (#13600) Helmet's useDefaults adds upgrade-insecure-requests to the CSP, which forces browsers to upgrade all HTTP requests to HTTPS. Since most LXC users access Immich directly via HTTP, this breaks the web UI completely (CORS errors, spinning logo). Patch helmet.json after deploy to explicitly null out the directive, keeping CSP benefits while allowing HTTP access. Fixes #13597 --- ct/immich.sh | 6 ++++++ install/immich-install.sh | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/ct/immich.sh b/ct/immich.sh index 4dd344a3b..45a200903 100644 --- a/ct/immich.sh +++ b/ct/immich.sh @@ -181,6 +181,12 @@ EOF unset SHARP_IGNORE_GLOBAL_LIBVIPS export SHARP_FORCE_GLOBAL_LIBVIPS=true $STD pnpm --filter immich --frozen-lockfile --prod --no-optional deploy "$APP_DIR" + + # 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" + fi + cp "$APP_DIR"/package.json "$APP_DIR"/bin sed -i "s|^start|${APP_DIR}/bin/start|" "$APP_DIR"/bin/immich-admin diff --git a/install/immich-install.sh b/install/immich-install.sh index e926cc409..f6b4289f9 100644 --- a/install/immich-install.sh +++ b/install/immich-install.sh @@ -312,6 +312,12 @@ $STD pnpm --filter immich --frozen-lockfile build unset SHARP_IGNORE_GLOBAL_LIBVIPS export SHARP_FORCE_GLOBAL_LIBVIPS=true $STD pnpm --filter immich --frozen-lockfile --prod --no-optional deploy "$APP_DIR" + +# 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" +fi + cp "$APP_DIR"/package.json "$APP_DIR"/bin sed -i "s|^start|${APP_DIR}/bin/start|" "$APP_DIR"/bin/immich-admin