# Server command reference The installer adds `shis`. `shibumi-server` remains an alias. ## Setup ```usage shis Guided installation shis setup Guided installation shis init Install only, for automation shis update Install latest stable release shis uninstall [--purge] [--yes] ``` ## Apps ```usage shis list shis add [--dry-run] [--yes] shis remove [--yes] shis set-repository [--yes] ``` `remove` deletes Shibumi config, the webhook secret, deployment status and history, the managed Caddy route, the per-app environment store, and the app containers. Its outro names what stayed: the checkout, volumes, images, and the GitHub webhook. Removing the last app stops the service. `add` on a checkout path whose Git origin points at a different repository offers to move that checkout to `.bak` and clone the requested repository fresh. `--yes` accepts the move; the offer is refused only when `.bak` already exists. `set-repository` repoints an app that is already registered. The old checkout moves to `.bak`, the new repository is cloned in its place, and the Compose file path is re-detected in the new tree rather than carried over. Caddy and the app registration are otherwise untouched. Failed detection restores the original checkout from `.bak`. Explicit add requires repository, absolute checkout, and port: ```usage shis add \ --repository \ --checkout \ --port \ [--ref ] \ [--compose-file ] \ [--compose-command ] \ [--service ] \ [--health-path ] \ [--dry-run] \ [-- ] ``` ## Deployments ```usage shis status [--commit ] [--json] shis history [--json] shis logs shis rollback [--yes] shis caddy-cutover shis caddy-refresh ``` Rollback restores the one previous successful image retained for the app for up to 12 hours and verifies health without rebuilding. `caddy-refresh` adds current retry buffering to an existing managed route without replacing its other Caddy settings. ## Project setup data ```usage shis client-config [--server-hostname ] shis webhook-secret ``` `client-config` prints commit-safe JSON. `webhook-secret` prints secret JSON only for explicit SSH handoff. ## Service commands ```usage shis check --config shis serve --config ``` `serve` is systemd entrypoint and skips npm update checks.