feat: install custom tools at startup, remove deprecated fix-permissions.sh
This commit is contained in:
@@ -31,6 +31,10 @@ services:
|
|||||||
ssh:
|
ssh:
|
||||||
- default
|
- default
|
||||||
container_name: hermes
|
container_name: hermes
|
||||||
|
user: root
|
||||||
|
entrypoint: ["/bin/bash", "-c",
|
||||||
|
"bash /opt/data/hermes-tools/install.sh && exec /usr/bin/tini -g -- /opt/hermes/docker/entrypoint.sh \"$@\"",
|
||||||
|
"hermes-entrypoint"]
|
||||||
restart: always
|
restart: always
|
||||||
# Gateway run enables the internal API server on port 8642
|
# Gateway run enables the internal API server on port 8642
|
||||||
command: gateway run
|
command: gateway run
|
||||||
|
|||||||
@@ -68,7 +68,4 @@ ENV PATH="/opt/data/.local/bin:${PATH}"
|
|||||||
# Point browser tool to Playwright's Chromium (already in base image)
|
# Point browser tool to Playwright's Chromium (already in base image)
|
||||||
ENV CHROME_EXECUTABLE=/opt/hermes/.playwright/chromium/chrome-linux/chrome
|
ENV CHROME_EXECUTABLE=/opt/hermes/.playwright/chromium/chrome-linux/chrome
|
||||||
|
|
||||||
VOLUME [ "/opt/data" ]
|
VOLUME [ "/opt/data" ]
|
||||||
|
|
||||||
COPY --chmod=0755 fix-permissions.sh /opt/hermes/fix-permissions.sh
|
|
||||||
ENTRYPOINT [ "/usr/bin/tini", "-g", "--", "/opt/hermes/fix-permissions.sh" ]
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# Startup permission fix + TTS patch.
|
|
||||||
# Runs as root before the entrypoint drops to the hermes user.
|
|
||||||
set -e
|
|
||||||
|
|
||||||
HERMES_HOME="${HERMES_HOME:-/opt/data}"
|
|
||||||
|
|
||||||
# Fix ownership on critical writable directories
|
|
||||||
chown -R hermes:hermes \
|
|
||||||
"$HERMES_HOME/sessions" \
|
|
||||||
"$HERMES_HOME/checkpoints" \
|
|
||||||
"$HERMES_HOME/skills" \
|
|
||||||
"$HERMES_HOME/memories" \
|
|
||||||
"$HERMES_HOME/workspace" \
|
|
||||||
"$HERMES_HOME/pastes" \
|
|
||||||
"$HERMES_HOME/logs" \
|
|
||||||
"$HERMES_HOME/cron" \
|
|
||||||
"$HERMES_HOME/plans" \
|
|
||||||
"$HERMES_HOME/hooks" \
|
|
||||||
"$HERMES_HOME/cache" \
|
|
||||||
2>/dev/null || true
|
|
||||||
|
|
||||||
# Fix data volume root ownership
|
|
||||||
if [ "$(stat -c %u "$HERMES_HOME" 2>/dev/null)" != "$(id -u hermes)" ]; then
|
|
||||||
chown hermes:hermes "$HERMES_HOME" 2>/dev/null || true
|
|
||||||
fi
|
|
||||||
|
|
||||||
# ---------- Patch tts_tool.py: replace Edge TTS with Piper ----------
|
|
||||||
# Fallback runtime patch in case the volume's site-packages differ from the image.
|
|
||||||
# Idempotent: if already patched, the script does nothing.
|
|
||||||
PATCH_SCRIPT="/opt/hermes/patch_tts_tool.py"
|
|
||||||
if [ -f "$PATCH_SCRIPT" ]; then
|
|
||||||
echo "Applying TTS patch (Piper only, no Edge fallback)..."
|
|
||||||
/opt/hermes/.venv/bin/python3 "$PATCH_SCRIPT" 2>&1 || true
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Chain to the official Hermes entrypoint
|
|
||||||
exec /opt/hermes/docker/entrypoint.sh "$@"
|
|
||||||
Reference in New Issue
Block a user