Skip to main content
orun emits structured JSON logs through systemd/journald and exposes a lightweight HTTP status API on every node. Together these two surfaces give you visibility into both the orun agent itself and the containers it manages. For richer dashboards and log aggregation you can deploy dedicated tools as orun Deployments alongside your applications.

Accessing orun agent logs

Because orun runs as a systemd service, all agent output goes to journald. SSH into the node and use journalctl to read it:
Each log line is a JSON object (key-value pairs emitted by Go’s slog package), making it straightforward to pipe into jq or ship to a log aggregator.

Using the status API

The orun agent starts an HTTP server on localhost:9100 (port configurable via --status-port in orun start). It exposes two endpoints:
The status API binds to localhost only. To query it from your local machine, use an SSH tunnel:
Then query http://localhost:9100/status locally. Avoid exposing port 9100 directly to the internet without an authentication layer.
A /status response looks like:

Health probes

For each Deployment that defines health.readiness.http or health.liveness.http, orun polls those HTTP endpoints on a recurring basis. Probe results feed directly into the /status report, so you can tell at a glance whether a container is ready to serve traffic or requires attention. Define health probes in your Deployment manifest:
For container-level metrics and log browsing, deploy one of these lightweight tools as an orun Deployment on the same node:
  • Beszel — host and container metrics with a built-in dashboard
  • Dozzle — real-time container log viewer with a browser UI
Both run as Docker containers and require no external dependencies, making them a natural fit as orun Deployments.

Advanced: centralized log shipping

For multi-node setups or compliance requirements, deploy a log collector on each node and forward logs to a central destination:
Compatible collectors include Vector and Elastic Beats. Configure them to read from journald (source: journald unit filter orun) and forward to your preferred backend (Elasticsearch, Loki, Splunk, etc.).
OpenTelemetry (OTel) metrics and deployment traces are on the orun roadmap. Once available, they will provide structured observability without requiring a separate log pipeline.

Deploy your first app

Learn how Deployment manifests work and how orun reconciles them.

Enable HTTPS ingress

Expose monitoring dashboards on a domain with automatic SSL.