Overview

Features

Ferrox pairs a developer‑friendly CLI with a production‑grade daemon. Below is a concise, high‑level tour of what it offers—and how those promises are achieved across Linux, macOS, and Windows.

Supervisor & Reliability

Stateful process supervision with restart policies (always/on‑failure/never), exponential backoff with jitter, and crash‑loop protection. The daemon maintains an in‑memory registry and persists essential state to disk for recovery after host restarts.

Zero‑downtime Reloads

Multiple strategies: signal‑driven (HUP), blue/green (spin‑up, health‑gate, drain), and socket handoff on POSIX so listeners stay warm. Pick per app; the daemon coordinates health checks and cutover windows.

Health Checks & Watchers

Built‑in HTTP/TCP health checks with intervals and timeouts. File‑watch mode for dev loops using OS backends where available; the supervisor performs guarded restarts to avoid thrash on rapid changes.

Observability

Aggregated stdout/stderr with rotation and retention; structured JSON logs optional. Prometheus metrics endpoint and optional OpenTelemetry traces for end‑to‑end visibility.

Scaling & Instances

Launch 1..N processes or use instances=cpu. Sticky sharding options for stateful Node clusters or custom workers; the daemon tracks instance lifecycles uniformly across platforms.

Config & Ecosystems

Simple TOML/YAML with env templating, defaults, and per‑app overrides. Ecosystems let you version a group of apps and profiles (dev/stage/prod) in one file.

CLI, IPC & Local API

The CLI talks to the daemon over OS‑native IPC—UNIX domain sockets on POSIX, named pipes on Windows. A local HTTP API can be toggled on for remote control or dashboards.

Security by Default

Local‑first control plane, no network ports open unless you enable the API. Per‑app user switching and capability drops where supported; conservative defaults aimed at least privilege.

Cross‑platform integrations

Ferrox targets parity across Linux, macOS, and Windows by using the platforms’ native primitives.

Linux

  • systemd user services via ferrox daemon install
  • Signals: TERM for graceful stop, HUP for reload; KILL as fallback
  • Socket activation & handoff using the sd_listen_fds pattern
  • cgroups/jobserver for resource limits (where applicable)

macOS

  • Launchd agents (per‑user) installed via the CLI
  • POSIX signals for graceful lifecycle
  • Socket handoff through descriptor inheritance during reloads

Windows

  • Installed as a Windows Service (SCM) via CLI
  • Process groups managed with Job Objects for clean shutdown
  • Named pipes for CLI↔daemon IPC
  • File watch uses polling with debounce (ReadDirectoryChangesW planned)

How the promises are achieved

High‑level mechanics that back the headline features.

Apache‑2.0 / MIT • © 2025 afroraydude