shc move
shc move
Section titled “shc move”move a deployment to another node
Synopsis
Section titled “Synopsis”Move a deployment to another node, environment, or tenant. Falls back to an in-place rename when only the name changes.
—presumed-dead moves a deployment OFF A DEAD NODE, reusing its surviving volumes (RWO block volumes are fenced and rebound to the target; shared-fs data stays on the share). DANGER: if the source node is NOT actually dead, this force-detaches storage out from under a live writer — the command refuses unless the node’s registry state is ‘unreachable’ AND a fresh probe fails right now. The deployment is rebuilt from replicated state: ingress hosts, integrations, vault-backed secrets and posture are replayed; published —port mappings, —var overrides, and any local-only mount data are NOT recoverable (local mounts are refused unless you also pass —discard-local). NO pre-move backup is taken — the dead source cannot be read. When unsure whether the data survives, prefer ‘shc recover’ from an off-host backup. If the dead node later returns, stop its stale compose project there (‘docker compose down’); its containers otherwise restart against fenced-off or stale data. Swarm deployments re-pin to the target automatically.
shc move <source> <target> [flags]Examples
Section titled “Examples” shc move myblog myblog --node node-2 --yes shc move myblog blog-renamed shc move myblog myblog -n node-2 --dry-run shc move myblog myblog -n node-2 --presumed-dead --discard-local --yesOptions
Section titled “Options” -a, --all-connections moved entire integration graph --discard-local with --presumed-dead: abandon local-only persistent mounts whose data lives only on the dead node (DATA LOSS for those mounts) --dry-run show what would be moved without executing -h, --help help for move -n, --node string target node for the moved stack --presumed-dead move off a DEAD node reusing surviving volumes (refused unless the node is registry-unreachable AND a fresh probe fails; no pre-move backup) -q, --quiet suppress progress output -r, --rename string rename dependencies (comma-separated old:new pairs) --runtime string target runtime (compose|swarm|podman) --storage string storage provider name --target-environment string target environment --target-tenant string target tenant -y, --yes skip confirmation promptOptions inherited from parent commands
Section titled “Options inherited from parent commands” --config stringArray extra YAML config file to layer on top of auto-discovered config; repeatable, later files win -d, --debug enable debug mode (default: $SHC_DEBUG) -e, --environment string environment name (default: $SHC_ENVIRONMENT) --exclude string comma-separated dotted paths to drop --fields string comma-separated columns/keys to show (and their order) --filter string comma-separated dotted paths to keep (drops everything else) -o, --output string output format: tty|text|json|yaml (default: $SHC_OUTPUT) -s, --stack string stack name (default: $SHC_STACK) -t, --tenant string tenant name (default: $SHC_TENANT) -v, --verbose verbose output (default: $SHC_VERBOSE)SEE ALSO
Section titled “SEE ALSO”- shc - Selfhosted Cloud CLI