見守り · mimamori — keeping watch

Direktor

A process supervisor for the people who actually run the box.

Supervisor turns twenty this year, and it shows. Direktor does everything it does — and the things you keep wishing it did.

Open source · GPLv3 · Linux · macOS · Windows

入手 · download

Pick the archive that matches your platform and CPU architecture. All downloads are served directly from this site.

機能 · everything Supervisor does, plus the rest

Drop-in compatible

INI config that mirrors Supervisor's. Use [supervisord] or [direktord]; existing [program:x] sections work as-is. Migration is a binary swap, not a rewrite.

Email alerts built in

SMTP with TLS, per-state triggers (FATAL, STOPPED, RUNNING…) and a five-second batching window so cascading failures don't flood your inbox.

A real REST API

Clean JSON endpoints for list, start, stop, restart, add, remove, logs and reload. Token or basic auth. No XML-RPC, no surprises, no hand-rolled parsers.

Built-in web UI

A real-time process list, start/stop/restart/remove controls, an add-service form, a live log viewer (stdout and stderr), auto-refresh, and keyboard access.

Add services at runtime

No more “edit config, reread, update, pray.” Add managed processes through the web UI or REST API without touching a config file.

Cross-platform

Linux, macOS and Windows. Unix domain sockets where they exist, TCP-on-localhost where they don't. Process groups handled correctly everywhere.

Smart restart policies

always, on-failure or never — with proper expected-exit-code handling and exponential backoff before going FATAL. No flapping services burning CPU.

Log rotation, solved

Per-process stdout and stderr rotation with configurable max bytes and backup count. No logrotate recipes, no cron, no awkward HUP dance.

Hot config reload

Send SIGHUP or call /api/reload. Config changes apply without restarting your services. Glob-based [include] works exactly as you'd expect.

Programme groups

Manage a whole web stack — app, worker, scheduler, queue runner — as one named unit. Start it, stop it, restart it. One command.

Single static binary

Two, actually: direktord and direktorctl. No interpreter, no pip install, no virtualenvs. Copy it across and run it.

Concurrency-safe core

Per-process locks and monitoring goroutines, async non-blocking notifications, and clean context cancellation. No global lock holding back your fleet.

作法 · predictable by design

Familiar config, modern tooling

If you've used Supervisor, you already know how to drive Direktor.

A predictable process lifecycle

Every state transition is deliberate, every retry bounded, every backoff exponential. When a process goes FATAL it stays FATAL until you say otherwise — no infinite restart loop chewing CPU at 4am. Email alerts ride the same state machine, so you hear from your inbox before you hear from the on-call rota.

向き · who it's for

Sysadmins inheriting Supervisor

An existing fleet you can't easily rip out. Migrate one host at a time — same config, same workflow, fewer 3am pages.

Single-node deployments

VPS side projects, on-prem boxes, edge devices. When systemd alone isn't enough and Kubernetes is too much, Direktor is the middle path.

Embedded & appliance builds

Locked-down arm64 systems where Python feels like a liability. A single 10MB binary that simply runs — no interpreter, no surprises.

Stop babysitting your supervisor.

Open source under GPLv3, with Linux, macOS and Windows binaries shipped per release. Drop it in, watch it work.