Stars
Forks
Watchers
Developer links
Ferron
Ferron is a web server and reverse proxy that serves your sites and applications with automatic HTTPS, a configuration file you can read at a glance, and logs that explain exactly why a request failed. Declare a hostname with a root directive and it serves files from disk; swap in a proxy directive and the same block forwards traffic to your application on localhost, with PHP handled through one fcgi_php line to PHP-FPM. Every public hostname receives a TLS certificate automatically, issued and renewed without certificate paths or renewal scripts in your config. The differentiator is debugging: each request carries a trace ID printed in the access log, repeated in the error log lines it generates, and returned to the client inside JSON error responses, so one grep reconstructs the whole failure. The ferron doctor command validates a configuration before you reload it, pointing at the file, line, and column of each mistake and flagging violations like an overexposed directory listing. Its admin API answers /config and /status queries with live running state, and metrics and traces flow to Grafana or any OpenTelemetry collector through OTLP. Reverse proxying spreads requests across backend upstreams with health awareness and circuit breaker events you can watch live. HTTP/2 and HTTP/3 are on by default, and there are no worker counts or pool sizes waiting to be tuned. Running on a dedicated VPS on RepoCloud with guaranteed CPU, RAM, and SSD, full root SSH access, and a browser serial console. MIT licensed.
Benefits
- Automatic HTTPS on every host
- Point a public hostname at the server and Ferron obtains and renews its TLS certificate by itself; no Certbot cron jobs, no certificate paths to paste, no expired-certificate mornings.
- Trace IDs end log archaeology
- Every request carries a trace ID that appears in the access log, the error log, and the JSON error body, so one grep reconstructs the full story of a failed request.
- Config checked before it runs
- ferron doctor validates your configuration and flags best-practice violations with file, line, and column before you reload, so typos are caught at edit time instead of during an outage.
- One server, three jobs
- Serve static sites from disk, run PHP through PHP-FPM, and reverse proxy to application backends from the same process, all defined in short host blocks in a single KDL file.
Features
- Automatic TLS certificates
- Public hostnames get certificates issued and renewed automatically; you never paste certificate paths into the configuration or schedule renewal jobs around the server.
- Request trace correlation
- Each request receives a trace ID recorded in the access log, the application log, and JSON error responses, connecting a client failure to the exact backend error that caused it.
- ferron doctor validation
- The doctor command checks configuration files for validation errors and best-practice violations, reporting the file, line, and column of each problem before the server ever reloads.
- Live admin API
- Query the /config and /status admin endpoints to inspect the running configuration and server state on demand, and detect out-of-band edits without restarting the process.
- Load balancing and protocols
- Distribute traffic across multiple backend upstreams with health awareness and circuit breaker events, over HTTP/2 and HTTP/3 connections that stay stable as traffic grows.