Ferron logo # **Ferron** - a fast, modern web server built for production debugging. [![Static Badge](https://img.shields.io/badge/Documentation-orange?style=flat-square)](https://ferron.sh/docs) [![Website](https://img.shields.io/website?url=https%3A%2F%2Fferron.sh&style=flat-square)](https://ferron.sh) [![Chat](https://img.shields.io/matrix/ferronweb%3Amatrix.org?style=flat-square)](https://matrix.to/#/#ferronweb:matrix.org) [![X (formerly Twitter) Follow](https://img.shields.io/twitter/follow/ferron_web?style=flat-square)](https://x.com/ferron_web) [![Docker Pulls](https://img.shields.io/docker/pulls/ferronserver/ferron?style=flat-square)](https://hub.docker.com/r/ferronserver/ferron) [![GitHub Repo stars](https://img.shields.io/github/stars/ferronweb/ferron?style=flat-square)](https://github.com/ferronweb/ferron) English | [Polski](./README.pl.md) ## Why Ferron? 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](https://rust-lang.org/)). - **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). ## Configuration examples ### Static file serving ```ferron example.com { root "/var/www/html" # If uncommented, directory listing is enabled. #directory_listing } ``` ### Reverse proxy ```ferron api.example.com { proxy http://localhost:8080 } ``` More examples are available in the [configuration documentation](https://ferron.sh/docs/configuration/fundamentals/syntax). ## Installing Ferron (pre-built) The most convenient way to get started with Ferron is to use the installer script for Linux: ```sh sudo bash -c "$(curl -fsSL https://get.ferron.sh/v3)" ``` See the full instructions in the [Linux installation documentation](https://ferron.sh/docs/installation/linux/installer). ## Building from source ```sh git clone https://github.com/ferronweb/ferron -b develop-3.x cd ferron git submodule update --init --recursive cargo build --workspace ``` Run the server: ```sh cargo run -p ferron -- run -c ferron.conf cargo run -p ferron -- run -c ferron.conf --verbose # with debug logging ``` Other CLI commands: ```sh 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 daemon ``` Run tests and checks: ```sh cargo test --workspace cargo fmt --all --check cargo clippy --workspace --all-targets -- -D warnings ``` Package Ferron for distribution (requires `just`): ```sh 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 installer ``` Cross-build optimized binaries for Ferron (see [README for the build files](./cross-build/README.md); available on Linux only): ```sh just cross-build ``` ## Configuration The full directive reference is in [docs/configuration/](https://ferron.sh/docs/configuration/fundamentals/syntax). ## Contributing Feedback, bug reports, and testing are welcome. When reporting issues, include your configuration file, `--verbose` output, and steps to reproduce. See [CONTRIBUTING.md](./CONTRIBUTING.md) for setup, checks, and guidelines. ## License MIT. See `LICENSE` for details.