Built to set up quickly, behave predictably, and hold up reliably in production.
- Readable configuration - set up websites and reverse proxies with a clear, compact config that avoids sprawl and hidden surprises.
- Automatic TLS - certificates are issued and renewed automatically. You get clear signals when it works (or doesn't).
- First-class observability - see exactly what happened with any request. Traces cover every layer and link directly to the relevant logs.
- Predictable performance - fast and consistent under load, right out of the box. No runtime tuning required.
- Memory-safe - entire categories of memory-related security holes simply don't exist in Ferron (it's built with Rust).
- Reliable in production - handles messy real-world traffic, upstream failures, and protocol edge cases predictably.
Tip
Ferron is designed around two core principles: ease of setup (get a working config in minutes) and ease of debugging (when something goes wrong, find the root cause fast).
example.com {
root "/var/www/html"
# If uncommented, directory listing is enabled.
#directory_listing
}
api.example.com {
proxy http://localhost:8080
}
More examples are available in the configuration documentation.
The most convenient way to get started with Ferron is to use the installer script for Linux:
sudo bash -c "$(curl -fsSL https://get.ferron.sh/v3)"See the full instructions in the Linux installation documentation.
git clone https://github.com/ferronweb/ferron -b develop-3.x
cd ferron
git submodule update --init --recursive
cargo build --workspaceRun the server:
cargo run -p ferron -- run -c ferron.conf
cargo run -p ferron -- run -c ferron.conf --verbose # with debug loggingOther CLI commands:
cargo run -p ferron -- validate -c ferron.conf # validate without starting
cargo run -p ferron -- adapt -c ferron.conf # output config as JSON
cargo run -p ferron -- daemon -c ferron.conf --pid-file /var/run/ferron.pid # Unix daemonRun tests and checks:
cargo test --workspace
cargo fmt --all --check
cargo clippy --workspace --all-targets -- -D warningsPackage Ferron for distribution (requires just):
just package # Archive (.zip for Windows, .tar.gz for Unix)
just package-deb # Debian package
just package-rpm # RPM package
just package-windows # Windows installer
just installer # Linux installerCross-build optimized binaries for Ferron (see README for the build files; available on Linux only):
just cross-buildThe full directive reference is in docs/configuration/.
Feedback, bug reports, and testing are welcome. When reporting issues, include your configuration file, --verbose output, and steps to reproduce.
MIT. See LICENSE for details.