Orion
Self-hosted monitoring, incident response and logs

Run monitoring and incident response on a machine you own.

Self-hosted uptime monitoring, incident response and logs, for personal projects and small teams. When something breaks you hear it first, and every byte stays on your server.

Get startedView on GitHub

One Docker image. No account, no card, no cloud.

Downapi.example.com missed 3 checks14:02:08  ·  alert delivered in 1.8 s
Upapi.example.comHTTP 200 · 84 ms · 14:00:10
Slowapi.example.comHTTP 200 · 1.2 s · 14:01:41
Upapi.example.comHTTP 200 · 88 ms · 14:01:55
No pulseapi.example.comno answer since 14:02:08
Deliveredops-team notifiedwebhook 312 ms · email 1.8 s
Watch it work

Pull the plug. Watch it notice.

This is what your own Orion does, in seconds.

1You pull the plug
mini-pc · upmini-pc · off
2Orion notices
3 checks fail in a row
3An incident opens
OpenINC-0231
4You get notified
EmailWebhook
by email or webhook
Why Orion

Built for people who run their own things.

From a home lab to a small team's production, Orion runs on the machine you choose.

Rules decide who hears what

Route by monitor, severity or server. The database goes to you, the blog to everyone.

No middleman

Alerts go from your machine straight to your webhook or inbox.

Logs beside your monitors

Send JSON or OpenTelemetry from any app and read it next to the incident. Stored on your disk.

user.signupuser 8841
export.finishedrows 120
job.retryattempt 3
payment.failedorder 8841
user.signupuser 8842
export.finishedrows 98
user.signupuser 8841
export.finishedrows 120
job.retryattempt 3
payment.failedorder 8841
user.signupuser 8842
export.finishedrows 98
logs.db

Watches the whole setup

A NAS, a mini PC, the laptop on the shelf. If it runs Linux or macOS, the agent can watch it.

Who it is for

One person or a whole team.

The same install, whether it watches a side project or the systems your business depends on.

Personal projects

Watch what you run at home.

  • One docker compose, one SQLite file, no account.
  • Know when the NAS, the blog or the backup job quietly dies.
  • A status page for the people who use your things.
Teams and businesses

Run it for the people who depend on you.

  • Incidents with a timeline, a responder and acknowledgement.
  • Alerts routed by rule to your team's webhook or email.
  • A public status page on your own domain, with the history on your server.
Get started

Three steps to running your own.

Pick a step to see the commands.

your-server
$ curl -fsSL -o orion-compose.yaml \
  https://raw.githubusercontent.com/sunday-studio/orion/main/deploy/examples/core-console-compose.yaml
docker compose -f orion-compose.yaml up -d
✔ orion-core started
✔ orion-core-worker started
open http://localhost:8999
your-server
$ curl -fsSL https://github.com/sunday-studio/orion/releases/latest/download/orion-agent-installer.sh \
  | bash -s -- --core-url http://orion-core.local:8999
✔ agent installed and verified
✔ registered with core
service running
your-server
$ orion-agent status
✔ service running
✔ connected to core
✔ last report 4 s ago
What is in the box

Everything you need. Nothing you rent.

Monitoring, incidents, alerts, logs and status pages in one tool, so there is nothing to wire together.

The Monitors list with status and recent checks An incident with its timeline and notifications The notification log showing sent and failed deliveries Product logs with filters and a detail drawer The Servers list with CPU and memory Setting up a public status page

Monitors. HTTP, TCP, heartbeats, server checks

Incidents. Opened, grouped, timed, resolved

Alerts. Webhook and email, retried and logged

Logs. JSON or OpenTelemetry, searchable

Server agent. Linux and macOS, containers too

Status pages. Optional, on your own domain

A night in the life

02:14, on your hardware.

Every step lands on the incident timeline: what failed, who was told, who acknowledged. Useful for a post-mortem, or when a customer asks what happened.

02:1002:1502:2002:2502:3002:3502:4002:45
02:14:08Check fails, incident opens. Webhook and email delivered in under 2 s.
02:21You acknowledge from your phone
02:26You restart the container
02:40It recovers, the incident resolves

In the morning the timeline and the logs around it are already attached. Nothing left your machine except the message to you.

Self-hosting, asked

Questions about owning it.

Who runs it?

You do. On a VPS, a home server or any Linux or macOS machine with Docker. One image, one volume.

Is there a hosted version?

No. Orion is self-hosted by design, so your monitoring does not depend on someone else's uptime.

Can a business use it?

Yes. Route alerts to your team's webhook or email, publish a status page on your own domain, and keep the incident history on your own server.

Where is my data?

On that machine, in one SQLite file. Back it up with one command.

Do I need an account?

Not with us. You set an admin login on your own Core.

What if the project stops?

Your copy keeps running, and the data is a plain SQLite file you can open any time.

Can it watch my home network?

Yes. The agent reports to your Core over your LAN or a private network such as Tailscale. Nothing needs to be exposed to the internet.

How do I update it?

Pull the new image and recreate the services. Core copies the database before it migrates, so you can roll back.

What can it watch?

HTTP and TCP targets, cron heartbeats, and Linux or macOS servers, including their services and containers.

Can my apps send logs?

Yes. Post JSON with curl, or point any OpenTelemetry exporter at it. Add an ingest key per app.

Run your own.

Self-host Orion in about ten minutes. Your machine, your data.

Get startedView on GitHub