orun, creating a manifest repository, provisioning a remote server as an orun node, and deploying your first container. By the end you will have a live workload reconciled automatically from Git.
Prerequisites
- A Linux VPS or dedicated server you can reach over SSH
- Git installed on your local machine
- The
orunbinary installed locally (see Step 1)
Install the orun binary
Download the Verify the installation:
orun binary from the GitHub releases page and place it somewhere on your PATH.Create a manifest repository
orun bootstrap must be run from the root of your manifest repository. Create one now.orun expects:Bootstrap your first node
Run After you answer, Commit and push the generated node manifest:
orun bootstrap from the manifest repository root. With no arguments, it starts an interactive prompt:orun asks a series of questions:orun writes nodes/web-01.yaml and proceeds to provision the server. During bootstrap it:- Connects to the node over SSH using the configured key
- Detects or installs Docker
- Copies the
orunbinary to the node - Creates and enables a systemd service
- Verifies the service is running
If you already have a node manifest from a previous bootstrap, pass it directly to skip the interactive prompt:
Deploy your first container
Create a Deployment manifest in This runs
deployments/hello-world.yaml:traefik/whoami, binds the container’s port 80 to host port 8080, and configures HTTP readiness and liveness checks.Commit and push
Commit the manifest and push to the branch your node is tracking (The node polls for changes every 5 seconds. Within a few seconds of your push, it pulls the new commit, starts the container, and begins health-checking it.
main by default):(Optional) Expose the container with a Service
To route HTTP/HTTPS traffic to your Deployment through the built-in Caddy ingress, create Point
services/hello-world.yaml:hello-world.example.com at your node’s IP address, then commit and push. Caddy provisions a TLS certificate automatically via ACME on the first request.Set
ssl: true only after your DNS record is live and propagated. Caddy performs an ACME HTTP-01 challenge on port 80 to provision the certificate.What’s next
How it works
Understand the pull-based reconciliation loop in depth.
Node configuration
All Node manifest fields: SSH, Git, poll interval, data directory.
Deployment configuration
Ports, volumes, environment variables, and health checks.
SSL and ingress
Configure custom domains and automatic TLS for your services.
