Machines¶
Deploy¶
The --expose flag maps a host port to a machine port. Use hostPort:machinePort for different ports, or just port to map the same port on both sides. See Port expose for details.
Sistemo automatically resolves images from cache or the registry, injects its SSH key and /init script into every deployed machine, so the browser terminal and exec work out of the box.
List, start, stop, restart, delete¶
sistemo machine list
sistemo machine start debian
sistemo machine stop debian # keeps the disk, can restart later
sistemo machine restart debian # stop + start in one command
sistemo machine delete debian # removes everything
sistemo machine delete debian -y # skip confirmation prompt
You can use the machine name or UUID interchangeably. restart preserves the machine's IP address and port expose rules.
Aliases: ls for list, rm for delete, show for status:
sistemo machine ls # same as sistemo machine list
sistemo machine rm debian -y # same as sistemo machine delete debian -y
sistemo machine show debian # same as sistemo machine status debian
JSON output: Add -o json to any list or status command for machine-readable output:
Browser terminal¶
Opens a browser tab at http://localhost:7777/terminals/vm/<id> with xterm.js over WebSocket (SSH under the hood).
Info
The machine image must have openssh-server for the browser terminal to work. Pre-built images include it. When building from Docker with sistemo image build, openssh-server is automatically installed via chroot if it's missing — so any Docker image works out of the box.
SSH into a machine¶
Opens an interactive SSH session using the sistemo SSH key. No password needed.
Run commands¶
For non-interactive commands (scripting, automation):
sistemo machine exec debian uname -a
sistemo machine exec debian df -h
sistemo machine exec debian -- cat /etc/os-release
Commands with flags work directly — sistemo passes everything after the machine name to SSH.
For commands with shell operators, quote the whole thing:
Logs and status¶
sistemo machine logs debian # Firecracker boot log
sistemo machine status debian # machine details: IP, namespace, status, created time
Volumes¶
Every machine gets a root volume automatically when deployed. The root volume holds the OS and is named {machine-name}-root.
Attaching data volumes¶
For persistent data that should survive machine deletes, create and attach a data volume:
The --attach flag accepts comma-separated names for multiple volumes:
Volume status¶
Volume information is included in machine status:
This shows attached volumes along with the machine's IP, ports, and resource allocation.
Preserving data on delete¶
By default, deleting a machine removes its root volume. Use --preserve-storage to keep data volumes:
Data volumes become available and can be attached to a new machine. See Volumes for full details on creating, resizing, and managing volumes.
Auto-recovery¶
The daemon runs a reconciler every 30 seconds that detects crashed machines and cleans up their network namespaces and resources automatically.