Skip to main content
The 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 run orun 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 orun binary installed on your local machine
  • Docker or Podman on the target server — orun installs either one automatically if neither is detected
1

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:
git init my-manifests
cd my-manifests
The repository layout orun expects is:
deployments/
nodes/
services/
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.
2

Run the interactive bootstrap

From the root of your manifest repository, run:
orun bootstrap
orun prompts you for the following values in order:
PromptRequiredDefault
Node name (e.g. web-01)Yes
Host (IP or hostname)Yes
SSH userNoroot
SSH private key pathNo~/.ssh/id_ed25519
Manifest git repository URLYes
Git branchNomain
Poll interval (e.g. 5s, 1m)No5s
Data directory on the nodeNo/opt/orun/
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 nodes/<name>.yaml and immediately begins the bootstrap process.
3

Bootstrap from an existing manifest

If you already have a node manifest (for example, when adopting a second node), pass the path directly:
orun bootstrap nodes/web-01.yaml
orun loads the manifest, applies defaults to any omitted fields, validates the spec, and proceeds to provision the node.
4

Understand what bootstrap does on the node

During the bootstrap process, orun:
  1. Connects to the node over SSH using the configured key
  2. Detects or installs Docker or Podman
  3. Copies the orun binary to the node
  4. Creates and enables a systemd service (orun start)
  5. Verifies the service is running
The 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.
5

Commit the node manifest

After a successful bootstrap, the node manifest lives at nodes/<name>.yaml in your manifest repository. Commit and push it:
git add nodes/web-01.yaml
git commit -m "Add web-01 node manifest"
git push
Committing the manifest means bootstrapping any additional node in the future is a single command: orun bootstrap nodes/<name>.yaml.
6

Verify the node service is running

SSH into the node and check the systemd service:
ssh root@<node-ip> 'systemctl status orun'
You should see the service in the active (running) state. You can also tail the structured JSON logs:
ssh root@<node-ip> 'journalctl -u orun -f'
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.