From bento
Updates a bento install on a remote server via SSH, re-running the bootstrap unattended to pull latest code and redeploy managed stacks. Use for updating bento or redeploying stacks.
How this skill is triggered — by the user, by Claude, or both
Slash command
/bento:updateThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are operating bento on a remote machine. An update redeploys running
You are operating bento on a remote machine. An update redeploys running services (brief downtime) and may reboot the host. Confirm with the user before proceeding. All artifacts stay in English.
<host>"If the user wants to add NEW apps (not update existing), use /bento:deploy.
For a fresh server, /bento:install.
ssh -o ConnectTimeout=5 "$user@$host" "echo SSH_OK".ssh "$user@$host" "test -f ~/.config/bento/state.json && echo BENTO_OK". If absent, stop.ssh "$user@$host" "jq -r '.bootstrap | .base_domain, .admin_email, .advertise_addr' ~/.config/bento/state.json"
stable; main or a feature branch only if the user asks).Re-run the bootstrap one-liner unattended with the saved values. boot.sh
re-clones the latest ref into ~/.local/share/bento, install.sh re-applies
every step idempotently (hardening is a no-op when already done), reconciles
state.stacks against Portainer, and redeploys the managed stacks.
ssh "$user@$host" "\
BENTO_UNATTENDED=1 \
BENTO_REF=<ref> \
BENTO_BASE_DOMAIN=<base_domain> \
BENTO_ADMIN_EMAIL=<admin_email> \
${ADVERTISE_ADDR:+BENTO_ADVERTISE_ADDR=$ADVERTISE_ADDR} \
bash <(curl -sSL https://raw.githubusercontent.com/felipefontoura/bento/<ref>/boot.sh)"
If the run prints BENTO_REBOOT_SENTINEL, the VPS will reboot and the
bento-resume.service unit continues on next boot — follow the
"Post-hardening reboot" steps from the install skill (poll SSH back, then
journalctl -u bento-resume.service -f).
Surgical alternative (no hardening pass, no reboot risk): the interactive Update menu does a
git fetch + reset --hardand redeploys only stacks whosecompose.yml/manifest.jsonchanged. It is interactive and not cleanly scriptable over SSH — if the user wants that precise behaviour, tell them to runbash ~/.local/share/bento/install.shand pick Update.
After the run settles, do the read-only checks from /bento:status:
docker service ls --filter label=BENTO_MANAGED=true all at expected replicas,
and curl -sI each app URL. Report what changed and flag any service stuck
below its desired replica count.
npx claudepluginhub felipefontoura/bento --plugin bentoDeploys additional application stacks on a VPS already running bento via SSH. Use when adding apps like n8n or Chatwoot to an existing bento server.
Deploys Julian app to exe.xyz VMs: provisions new instances with SSH VM creation, bun/npm install, dir setup; or updates existing via git push. Tracks in instances.json.
Turns application stacks into production deployments on Linux VPS with Docker Compose, Traefik, private registries, SSH tunnels, backups, and rollback planning.