Skip to main content
In orun, the Git repository is the control plane. There is no dashboard, no API server, and no database storing desired state — everything lives in YAML files committed to Git. When you want to change what runs on a node, you change a file and push. The node picks it up on the next poll cycle.

Directory layout

orun expects three top-level directories in your manifest repository. Each directory holds one kind of resource:
Node manifests describe a single host: its address, the Git repository and branch it should track, and runtime parameters such as poll interval and data directory. orun reads these files during orun bootstrap to provision new hosts. Committing node manifests to the repository means adding a new node is as simple as running orun bootstrap nodes/<name>.yaml — no manual configuration on the host.
Deployment manifests describe a containerized workload: the image to run, port bindings, health check endpoints, volume mounts, and environment variables. Each file corresponds to one container managed by orun on every node that tracks this repository.
Service manifests wire a Deployment to the built-in Caddy ingress: they specify which Deployment to expose, the public domain name, and whether to enable automatic SSL/TLS. The ingress.domain.environment field uses $ENV as a placeholder that orun replaces with the environment suffix at runtime.

Resource kinds

All resources share the same apiVersion. The kind field tells orun how to interpret the file.

Node

Deployment

*Exactly one of image or build is required.

Service

Git authentication

The node fetches from the origin remote of the manifest repository. Ensure the node has read access before running orun bootstrap.

Poll interval and change propagation

The node polls the origin remote every pollInterval seconds (default: 5s). After you push a commit, the node picks it up within one poll cycle. Reduce pollInterval for faster convergence, or increase it to reduce Git API load on shared hosts.
Commit your Node manifests to the repository. When you need to provision a new node, run orun bootstrap nodes/<name>.yaml against the committed file. You get a full audit trail of node configuration changes in Git history at no extra cost.