fix(filebrowser_quantum): convert 1.x configs in place instead of resetting

Resetting to the v2 default dropped extra sources (breaking shares on them)
and auth/OIDC settings. Both 1.x and 2.0 reject unknown keys, so the keys a
1.5.x config can hold that 2.0 lacks are exactly the settings-struct diff:
move the server http keys under http and drop the removed ones.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
alexbelgium
2026-10-11 07:31:08 +02:00
parent 28afa07729
commit 5dfff5fe89

View File

@@ -79,10 +79,19 @@ mkdir -p /var/log/nginx && touch /var/log/nginx/error.log
mkdir -p /config /cache mkdir -p /config /cache
# 1.x config (string server.database) has keys v2 rejects: back it up, use the v2 default # 1.x config (string server.database): both versions reject unknown keys, so
# move or drop the keys 2.0 removed and keep everything else (users and shares
# are in the database, imported below)
if [ -f "$FILEBROWSER_CONFIG" ] && [ "$(yq e '.server.database | tag' "$FILEBROWSER_CONFIG")" = "!!str" ]; then if [ -f "$FILEBROWSER_CONFIG" ] && [ "$(yq e '.server.database | tag' "$FILEBROWSER_CONFIG")" = "!!str" ]; then
bashio::log.warning "FileBrowser 1.x config saved to ${FILEBROWSER_CONFIG}.v1.bak, starting from the 2.0 default config" bashio::log.warning "Converting FileBrowser 1.x config to 2.0, backup saved to ${FILEBROWSER_CONFIG}.v1.bak"
mv "$FILEBROWSER_CONFIG" "${FILEBROWSER_CONFIG}.v1.bak" cp "$FILEBROWSER_CONFIG" "${FILEBROWSER_CONFIG}.v1.bak"
yq e -i '
.http = ((.http // {}) * (.server | pick(["socket", "tlsCert", "tlsKey", "externalUrl", "internalUrl", "disableWebDAV"]))) |
del(.server.port, .server.listen, .server.baseURL, .server.socket, .server.tlsCert, .server.tlsKey, .server.externalUrl, .server.internalUrl, .server.disableWebDAV) |
del(.http.trustedHeaders, .integrations.media.exiftoolPath, .userDefaults) |
del(.server.sources[].config.conditionals, .server.sources[].config.indexingIntervalMinutes) |
del(.server.sources[].config.rules[].fileNames, .server.sources[].config.rules[].folderNames)
' "$FILEBROWSER_CONFIG"
fi fi
# Copy default config if not existing # Copy default config if not existing