Fix Hermes cron delivery to Docker profiles

This commit is contained in:
Mikei386 committed 2026-09-04 23:41:47 +02:00
1 parent f553108912
commit 44e1c1c50e
2 files changed
+42

No files matched your search

+25
View File
@@ -59,6 +59,31 @@ Container-Images stammen aus den dokumentierten Registries beziehungsweise den
eigenen Gitea-Repositories. Damit besteht die Wiederherstellung aus eigenen Gitea-Repositories. Damit besteht die Wiederherstellung aus
Appdata-Restore plus Neuerstellung über die jeweilige Template-XML. Appdata-Restore plus Neuerstellung über die jeweilige Template-XML.
### Hermes Cron/Bot-Chat auf Unraid
Der offizielle Hermes-Build `0.21.0` mit Upstream-Stand `4b30b917` entfernt im
Cron-Zustellprozess fälschlich `HERMES_HOME`. Bei einem Docker-Datenverzeichnis
unter `/opt/data` findet `deliver=bot-chat:<profil>` dadurch vorhandene Profile
nicht. Bis zur Übernahme des Upstream-Fixes bindet die Unraid-Vorlage dieses
idempotente Startskript ein:
- Host: `/mnt/nvme-storage/appdata/Hermes-Agent/patches/025-cron-profile-root-fix`
- Container: `/etc/cont-init.d/025-cron-profile-root-fix` (read-only)
- Quelle: `platform/hermes/025-cron-profile-root-fix`
Das Skript entfernt nur die bekannte fehlerhafte Zeile. Ist sie in einem neuen
Image nicht mehr vorhanden, bleibt der Workaround automatisch wirkungslos. Es
stellt außerdem `/usr/local/bin/hermes` wieder her, weil der offizielle
Container den vom eigenen Doctor erwarteten CLI-Link derzeit nicht anlegt.
Nach einem Restore die Datei mit Modus `0755` ins Appdata kopieren, den Mount in
der DockerMan-Vorlage kontrollieren und den Container neu erstellen. Prüfung:
```bash
docker logs Hermes-Agent 2>&1 | grep cron-profile-root-fix
docker exec Hermes-Agent hermes cron doctor
```
## Kontrolle ## Kontrolle
```bash ```bash
+17
View File
@@ -0,0 +1,17 @@
#!/bin/sh
set -eu
target=/opt/hermes/cron/scheduler_delivery.py
broken='env.pop("HERMES_HOME", None)'
if [ -f "$target" ] && grep -Fq "$broken" "$target"; then
sed -i '/^[[:space:]]*env\.pop("HERMES_HOME", None)[[:space:]]*$/d' "$target"
echo "[cron-profile-root-fix] preserved HERMES_HOME for named-profile delivery"
else
echo "[cron-profile-root-fix] upstream code already fixed or layout changed; no action"
fi
cli_dir="${HERMES_HOME:-/opt/data}/.local/bin"
mkdir -p "$cli_dir"
ln -sfn /opt/hermes/.venv/bin/hermes "$cli_dir/hermes"
ln -sfn /opt/hermes/.venv/bin/hermes /usr/local/bin/hermes