diff --git a/maintainerr/CHANGELOG.md b/maintainerr/CHANGELOG.md index 81edfeffd..134ca6ae1 100644 --- a/maintainerr/CHANGELOG.md +++ b/maintainerr/CHANGELOG.md @@ -1,4 +1,7 @@ +## 3.2.0-2 (2026-03-31) +- Fix configuration lost after container restart by symlinking /opt/data to persistent /config directory + ## 3.2.0 (2026-03-28) - Update to latest version from maintainerr/maintainerr (changelog : https://github.com/maintainerr/maintainerr/releases) diff --git a/maintainerr/config.yaml b/maintainerr/config.yaml index 30adc5bda..636cb4860 100644 --- a/maintainerr/config.yaml +++ b/maintainerr/config.yaml @@ -87,5 +87,5 @@ schema: TZ: str? slug: maintainerr url: https://github.com/alexbelgium/hassio-addons/tree/master/maintainerr -version: "3.2.0" +version: "3.2.0-2" webui: "[PROTO:ssl]://[HOST]:[PORT:6246]" diff --git a/maintainerr/rootfs/ha_entrypoint.sh b/maintainerr/rootfs/ha_entrypoint.sh index ba0dbe693..b782fc602 100755 --- a/maintainerr/rootfs/ha_entrypoint.sh +++ b/maintainerr/rootfs/ha_entrypoint.sh @@ -24,11 +24,22 @@ if [ -d /etc/cont-init.d ]; then fi # ─── Setup persistent data directory ───────────────────────────────────────── -# /opt/data is a Docker VOLUME in the upstream image and cannot be removed. -# Maintainerr supports the DATA_DIR env var to redirect data storage. +# The upstream app hardcodes /opt/data for its database and logs +# (typeOrmConfig.ts → /opt/data/maintainerr.sqlite, logs → /opt/data/logs/). +# /opt/data is declared as a Docker VOLUME in the upstream image, which is NOT +# persistent across addon updates/reinstalls in HA. +# Redirect /opt/data → /config (persistent via addon_config:rw) with a symlink. DATA_DIR="/config" echo "[Maintainerr] Setting up data directory: $DATA_DIR" mkdir -p "$DATA_DIR" + +# Preserve any seed data from the Docker volume before replacing it +if [ -d /opt/data ] && [ ! -L /opt/data ]; then + cp -rn /opt/data/. "$DATA_DIR/" 2>/dev/null || true + rm -rf /opt/data +fi +ln -sfn "$DATA_DIR" /opt/data + # Only chown on first run to avoid slow startup on large directories if [ ! -f "$DATA_DIR/.initialized" ]; then chown -R node:node "$DATA_DIR"