orun bootstrap command provisions a remote Linux server as an orun node entirely over SSH. Run it once from your local machine; after that the node operates autonomously, pulling its desired state from your manifest Git repository with no ongoing SSH access required.
Prerequisites
Before you runorun bootstrap, confirm you have the following:
- A Linux server reachable over SSH (public IP or hostname)
- Your SSH private key configured and accessible locally (default:
~/.ssh/id_ed25519) - The
orunbinary installed on your local machine - Docker or Podman on the target server — orun installs either one automatically if neither is detected
Create or navigate to your manifest repository
Bootstrap must be run from the root of your manifest Git repository. If you do not have one yet, create it now:The repository layout orun expects is:Commit an initial structure (even empty directories with
.gitkeep files) and push to your remote before proceeding, so the node can clone it after bootstrap.Run the interactive bootstrap
From the root of your manifest repository, run:orun prompts you for the following values in order:
Press Enter to accept a default value. Required fields repeat until you supply a value.When the prompts are complete, orun writes the node manifest to
| Prompt | Required | Default |
|---|---|---|
Node name (e.g. web-01) | Yes | — |
| Host (IP or hostname) | Yes | — |
| SSH user | No | root |
| SSH private key path | No | ~/.ssh/id_ed25519 |
| Manifest git repository URL | Yes | — |
| Git branch | No | main |
Poll interval (e.g. 5s, 1m) | No | 5s |
| Data directory on the node | No | /opt/orun/ |
nodes/<name>.yaml and immediately begins the bootstrap process.Bootstrap from an existing manifest
If you already have a node manifest (for example, when adopting a second node), pass the path directly:orun loads the manifest, applies defaults to any omitted fields, validates the spec, and proceeds to provision the node.
Understand what bootstrap does on the node
During the bootstrap process, orun:
- Connects to the node over SSH using the configured key
- Detects or installs Docker or Podman
- Copies the
orunbinary to the node - Creates and enables a
systemdservice (orun start) - Verifies the service is running
orun start service is configured with --node-name, --repo, and the other flags derived from the node manifest, so the node knows which Git repository and branch to track.Commit the node manifest
After a successful bootstrap, the node manifest lives at
nodes/<name>.yaml in your manifest repository. Commit and push it:After a successful bootstrap, no ongoing SSH access is required. The node polls the manifest Git repository on its own, reconciling any changes you push to the tracked branch.
Deploy your first app
Write a Deployment manifest and watch orun pull and run it automatically.
Enable HTTPS ingress
Expose a deployment on a custom domain with automatic TLS.
