Compare commits

...

10 Commits

Author SHA1 Message Date
github-actions
19a5587ec3 Github bot : issues linked to readme 2026-04-08 11:43:28 +00:00
github-actions
e13c3dd188 GitHub bot: changelog [nobuild] 2026-04-08 09:54:08 +00:00
Alexandre
3bb9183449 Bump version from 3.3.0-2 to 3.3.0-3 2026-04-08 11:51:38 +02:00
Alexandre
b28eef01a7 Merge pull request #2639 from alexbelgium/copilot/modify-dockerfile-replace-path
maintainerr: rewrite /opt/data → /config/data at build time, drop symlink workaround
2026-04-08 11:42:57 +02:00
copilot-swe-agent[bot]
bd04f79897 maintainerr: fix permission ordering — copy seed data before chmod/chown
Agent-Logs-Url: https://github.com/alexbelgium/hassio-addons/sessions/e4fba11b-c2eb-407c-bf95-fff2c908246d

Co-authored-by: alexbelgium <44178713+alexbelgium@users.noreply.github.com>
2026-04-08 08:29:08 +00:00
Alexandre
316bf67a5f Update maintainerr/Dockerfile
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-04-08 10:26:58 +02:00
copilot-swe-agent[bot]
c5b212bf47 maintainerr: replace /opt/data with /config/data in Dockerfile and ha_entrypoint
Agent-Logs-Url: https://github.com/alexbelgium/hassio-addons/sessions/21b5a0d9-5483-4227-b0f2-e047708cfbca

Co-authored-by: alexbelgium <44178713+alexbelgium@users.noreply.github.com>
2026-04-08 08:11:07 +00:00
copilot-swe-agent[bot]
cbf73c34dc Initial plan 2026-04-08 08:07:02 +00:00
Alexandre
64f3ceda9b Change DATA_DIR to '/config/data' and set permissions
Update data directory path and permissions in ha_entrypoint.sh
2026-04-08 10:06:48 +02:00
Alexandre
1c611b8ba1 nobuild 2026-04-08 10:04:28 +02:00
5 changed files with 21 additions and 22 deletions

View File

@@ -1,3 +1,5 @@
## 3.3.0-3 (08-04-2026)
- Minor bugs fixed
## 3.3.0-2 (06-04-2026)
- Minor bugs fixed

View File

@@ -64,7 +64,12 @@ COPY --from=ha_tools /out/ /
# Add rootfs
COPY rootfs/ /
RUN chmod +x /entrypoint.sh \
&& find /etc/cont-init.d /etc/cont-finish.d -type f -name "*.sh" -exec chmod +x {} \; 2>/dev/null || true
&& find /etc/cont-init.d /etc/cont-finish.d -type f -name "*.sh" -exec chmod +x {} \; 2>/dev/null || true \
&& set -- /entrypoint.sh; \
[ -d /opt/app ] && set -- "$@" /opt/app; \
[ -d /etc/cont-init.d ] && set -- "$@" /etc/cont-init.d; \
[ -d /etc/cont-finish.d ] && set -- "$@" /etc/cont-finish.d; \
find "$@" -type f \( -name "*.js" -o -name "*.ts" -o -name "*.json" -o -name "*.sh" -o -name "*.yml" -o -name "*.yaml" -o -name "*.env" -o -name "*.conf" -o -name "*.cfg" \) -exec grep -l "/opt/data" {} + 2>/dev/null | xargs -r sed -i 's|/opt/data|/config/data|g'
# Install bashio standalone
RUN BASHIO_VERSION="0.14.3" && \

View File

@@ -67,6 +67,7 @@ devices:
- /dev/nvme2
environment:
DATA_DIR: "/config"
DEFAULT_PRODUCTION_DATA_DIR: "/config"
image: ghcr.io/alexbelgium/maintainerr-{arch}
init: false
panel_icon: mdi:movie-search
@@ -87,5 +88,5 @@ schema:
TZ: str?
slug: maintainerr
url: https://github.com/alexbelgium/hassio-addons/tree/master/maintainerr
version: "3.3.0-2"
version: "3.3.0-3"
webui: "[PROTO:ssl]://[HOST]:[PORT:6246]"

View File

@@ -18,32 +18,22 @@ if [ -d /etc/cont-init.d ]; then
fi
# ─── Setup persistent data directory ─────────────────────────────────────────
# 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"
# The upstream app hardcodes /opt/data for its database and logs.
# The Dockerfile rewrites all /opt/data references to /config/data at build time.
# At runtime we copy any seed data from /opt/data to /config/data (persistent
# via addon_config:rw) without overwriting existing files.
DATA_DIR="/config/data"
echo "[Maintainerr] Setting up data directory: $DATA_DIR"
mkdir -p "$DATA_DIR" "$DATA_DIR/logs"
# Preserve any seed data from the Docker volume before replacing it.
# /opt/data is a Docker VOLUME mount and cannot be removed, so instead of
# replacing the directory with a symlink, we symlink each item inside it.
if [ -d /opt/data ] && [ ! -L /opt/data ]; then
# Copy any seed/existing data from /opt/data to /config/data (don't overwrite)
if [ -d /opt/data ] && [ "$(ls -A /opt/data 2>/dev/null)" ]; then
echo "[Maintainerr] Copying existing files from /opt/data to $DATA_DIR..."
cp -rn /opt/data/. "$DATA_DIR/" 2>/dev/null || true
# Remove contents inside /opt/data (the directory itself stays)
rm -rf /opt/data/*
fi
# Create symlinks for each item in $DATA_DIR inside /opt/data
for item in "$DATA_DIR"/*; do
[ -e "$item" ] || continue
name="$(basename "$item")"
ln -sfn "$item" "/opt/data/$name"
done
# Only chown on first run to avoid slow startup on large directories
# Apply permissions/ownership once so copied files are also covered
chmod -R 777 "$DATA_DIR"
if [ ! -f "$DATA_DIR/.initialized" ]; then
chown -R node:node "$DATA_DIR"
touch "$DATA_DIR/.initialized"

View File

@@ -1,3 +1,4 @@
## &#9888; Open Request : [✨ [REQUEST] qbittorrent (opened 2025-10-11)](https://github.com/alexbelgium/hassio-addons/issues/2139) by [@nyok92](https://github.com/nyok92)
## &#9888; Open Issue : [🐛 [CloudCommander] cloudcmd.mjs: No such file or directory (opened 2026-02-04)](https://github.com/alexbelgium/hassio-addons/issues/2444) by [@axlFThn](https://github.com/axlFThn)
## &#9888; Open Issue : [🐛 Cloudcommander New Directory (opened 2026-03-19)](https://github.com/alexbelgium/hassio-addons/issues/2594) by [@pgitsov](https://github.com/pgitsov)
# Hass.io Add-ons: Tor with bridges