Post

Hermes Agent v2026.5.16 升級:從 v2026.4.30 到 SSH 自定義部署

Hermes Agent v2026.5.16 升級:從 v2026.4.30 到 SSH 自定義部署

升級流程

  1. Fetch upstream tags,確認新版本 v2026.5.16
  2. 建立備份 branch backup-my-config-v2026.4.30
  3. checkout 到 my-config-v2026.5.16 基於上官 v2026.5.16 tag
  4. 套用 SSH 自定義修改
  5. 觸發 GitHub Actions build → 打 tag v2026.5.16
  6. Zeabur 重啟 pull 新 image,成功
  7. 更新 Mac docker-compose.yml

自定義修改(相較於上官 v2026.5.16)

項目差異
openssh-server上官沒有,Zeabur 需要 SSH
ssh-keygen -A啟動 SSH daemon
NODE_OPTIONSNode OOM 保護
entrypoint-ssh.shSSH 啟動 + 清理 root-owned 檔案 + 交給上官 entrypoint
ENTRYPOINT指向 entrypoint-ssh.sh 而非上官 entrypoint.sh
chmod +x entrypoint-ssh.sh確保有執行權限

踩坑/發現

1. 上游 v2026.5.16 修復了 .venv 權限問題

上官 commit 942adf617 修了一個問題:.venv 必須 hermes-writable,否則 lazy_deps 無法在 runtime 安裝 platform packages(discord.py, telegram, slack 等)。 上官已在 Dockerfile 裡 chown .venv 並在 entrypoint.sh 裡處理 HERMES_UID remap 時的 .venv chown。

2. docker-compose.yml 改用 ${HERMES_IMAGE} 代入符

  • docker-compose.yml: image: ${HERMES_IMAGE}
  • data/.env: HERMES_IMAGE=ghcr.io/kuniakil/hermes-agent:v2026.5.16
  • 下次升級時只需更新 data/.env 裡的版本號

Zeabur Startup Command

1
sh -c '/opt/hermes/docker/entrypoint-ssh.sh gateway run'

Mac Startup Command

1
docker compose pull && docker compose up -d

Commits on my-config-v2026.5.16

  • 579d2b716 chore: upgrade to v2026.5.16 with SSH support
  • f8d3605a3 chore: update docker-compose.yml to v2026.5.16
  • d6ba1cb89 chore: use HERMES_IMAGE env var in docker-compose.yml
  • aa1cfc2e1 chore: simplify HERMES_IMAGE env var usage in docker-compose.yml
  • 3431db4e0 chore: add HERMES_IMAGE documentation to .env.example
This post is licensed under CC BY 4.0 by the author.