Skip to content
SHC Docs

Multi-node test book

Quick verification for SHC multi-node operations. Requires 2+ VMs with SSH access.

Terminal window
export SHC_VAULT_PASSWORD=shc
export WORKER=worker-hostname # Replace with actual hostname

Terminal window
shc vault unlock
ssh admin@$WORKER "shc --version"

Expected: Vault unlocked, worker accessible via SSH.


Terminal window
TOKEN=$(shc node token)
ssh admin@$WORKER "shc node join $TOKEN"
shc node ls
shc node health worker

Expected: Worker joins the cluster and health check passes.


Terminal window
shc repo add local ./apps && shc repo sync local
shc install test-simple -s mn-test --node-group workers
shc status mn-test

Expected: Stack deployed on worker, containers running.


Terminal window
shc logs -s mn-test --tail 5
shc exec -s mn-test --service app -- echo hello
shc stop -s mn-test && shc start -s mn-test
shc clone mn-test mn-clone && shc uninstall mn-clone -y

Expected: Remote logs, exec, control, and clone all work.


Terminal window
shc uninstall mn-test -y
shc cluster rm worker -y
shc repo rm local -y

Expected: All test artifacts removed.


For automated VM provisioning: cd tests/proxmox && make provision && bats tests/proxmox/test_multinode.bats


Terminal window
export SHC_VAULT_PASSWORD=shc
export WORKER=worker-hostname
shc vault unlock
TOKEN=$(shc node token) && ssh admin@$WORKER "shc node join $TOKEN" && shc node health worker
shc repo add local ./apps && shc repo sync local
shc install test-simple -s mn-smoke --node-group workers
shc status mn-smoke
shc uninstall mn-smoke -y && shc cluster rm worker -y && shc repo rm local -y
echo "Multi-node smoke test passed"