Ferrox Logo

A fast, batteries-included process manager.

Ferrox is a modern daemon to run and supervise long-lived processes with pm2-style DX and systemd-level stability, with a Rust core for safety and performance.

Zero-Downtime Reloads

Keep your services online with graceful, signal-driven reloads and blue/green deployment strategies.

Secure by Default

The control plane is local-first, using secure IPC with no network exposure unless you explicitly enable it.

First-Class Observability

Get immediate insights with JSON logs, a built-in Prometheus endpoint, and OpenTelemetry traces.

Simple, Powerful Configuration

Define your entire app ecosystem with a clean, human-readable TOML file. Ferrox fails fast with friendly errors to help you get it right.

# ferrox.toml for two apps: web (Node.js) and worker (Rust)
version = 1

[defaults]
restart = "always"
stop_timeout_ms = 10000
log_format = "json"

[apps.web]
cmd = "node server.js"
cwd = "./services/web"
instances = 4 # 1..N | "cpu"
watch = ["src", "package.json"]
healthcheck = { http = "http://127.0.0.1:3000/health", interval_ms = 2000 }

[apps.worker]
cmd = "./target/release/worker"
instances = 2
restart = "on-failure"

Ready to get started?

Install the Ferrox CLI with a single command and scaffold your first project in seconds.

cargo install ferrox