Services with remote configured in muster.json deploy via SSH. Remote deploys pipe the hook script to the target via ssh user@host "bash -s". Credentials and K8s env vars are exported on the remote side.
Define remote deploy targets per-service in muster.json:
{
"services": {
"api": {
"remote": {
"enabled": true,
"host": "prod.example.com",
"user": "deploy",
"port": 22,
"project_dir": "/opt/app"
}
}
}
}| Name | Description |
|---|---|
enabledreq | booleanEnable remote deployment for this service. |
hostreq | stringHostname or IP of the target machine. |
userreq | stringSSH user on the target machine. |
port | numberSSH port on the target machine. Default: 22 |
project_dirreq | stringAbsolute path to the project directory on the remote host. |
SSH passwords for password-authenticated hosts are collected up front (before the deploy loop) to avoid repeated prompting during multi-service deploys.
Per-service git_pull config runs git pull before the deploy hook. For remote deploys, the git pull runs via SSH on the target machine.
{
"services": {
"api": {
"git_pull": {
"enabled": true,
"remote": "origin",
"branch": "main"
}
}
}
}If git pull fails, an interactive menu offers: Retry, Skip, or Abort.
Configure remote deploy targets non-interactively with the --remote flag:
muster setup --remote [email protected]:2222:/opt/appFor multi-machine deployment, see Fleet — multi-machine deployment with SSH and cloud transport, groups, and parallel/rolling/sequential strategies.