Run after every container rebuild/restart to restore ephemeral configurations.
SSH keys are stored in persistent volume /home/node/.openclaw/ssh/ but git expects them in ~/.ssh/.
Run:
/home/node/.openclaw/workspace/tools/setup-ssh-symlinks.sh
What it does:
~/.ssh/id_ed25519 → /home/node/.openclaw/ssh/id_ed25519~/.ssh/id_ed25519.pub → /home/node/.openclaw/ssh/id_ed25519.pubWhy needed:
Container rebuilds wipe ~/.ssh/ (ephemeral), but keys in /home/node/.openclaw/ persist (mounted volume).
cd /home/node/.openclaw/workspace
git status
git push origin main
If push fails with "Permission denied (publickey)", SSH symlinks are broken. Run step 1 again.
# Check if webhook server is running
ps aux | grep "python.*webhook"
# Check if triage worker is running
ps aux | grep "triage-worker"
# Check if tunnel is up (if configured)
ps aux | grep "cloudflared"
Option A: Add to container entrypoint/init script
Option B: Add to .bashrc so it runs on first shell
Option C: Run via cron @reboot
For now: Manual execution required after rebuilds.
Last updated: Feb 14, 2026 (after rebuild SSH key symlink fix)