Repolode
ferronweb

ferronweb/ferron

A Rust web server with a compact config, automatic TLS, and per-request tracing linked to logs, for static sites and reverse proxies.

Open-source alternative to:NginxCaddy

Stars
2,181
Forks
96
Open issues
76
Last commit
2 days ago

What is it?

Ferron is a web server written in Rust that serves static files and acts as a reverse proxy. Its configuration files are short and readable, so a site or proxy route can be defined in a few lines, with the same syntax covering both use cases.

TLS certificates are issued and renewed automatically. The server focuses on observability: traces cover each layer of request handling and link to the related log entries, and trace IDs can be searched inside log files to follow a single request.

Ferron ships as pre-built binaries with an installer script for Linux, and can also be built from source with Cargo. The CLI includes commands to run the server, validate a config without starting it, adapt a config to JSON, and run as a Unix daemon. Docker images are published as well.

Key features

  • 01Compact, readable configuration for websites and reverse proxies.
  • 02Automatic TLS certificate issuance and renewal.
  • 03Request traces linked to log entries, searchable by trace ID.
  • 04Built-in CLI commands to validate and adapt configuration.
  • 05Pre-built packages for Linux, Windows and Debian/RPM, plus Docker images.

Use cases

  • Serving a static website with automatic HTTPS.
  • Putting a reverse proxy in front of an internal API service.
  • Debugging production requests by following traces into logs.

Quick start

  1. 1

    Install Ferron on Linux with the official installer script (run it from the README; piped installer not reproduced here)

  2. 2

    Clone the repository from GitHub and switch to the develop-3.x branch

    git clone https://github.com/ferronweb/ferron -b develop-3.x
  3. 3

    Initialize submodules and build the workspace

    cd ferron && git submodule update --init --recursive && cargo build --workspace
  4. 4

    Run the server with your configuration file

    cargo run -p ferron -- run -c ferron.conf

Things to know

  • Pre-built installer is provided only for Linux; other platforms need building from source.
  • The project is on the develop-3.x line, so the default branch may not match this version's documentation.

In collections

Topics

FAQ

What is ferron?
A Rust web server with a compact config, automatic TLS, and per-request tracing linked to logs, for static sites and reverse proxies. Ferron is a web server written in Rust that serves static files and acts as a reverse proxy. Its configuration files are short and readable, so a site or proxy route can be defined in a few lines, with the same syntax covering both use cases.
Is ferron free to use? What license does it have?
ferron is open source under the MIT license. Check the license terms before using it in commercial products.
Is ferron still maintained?
Actively maintained. The last commit to ferron was on Oct 23, 2026.
What can I use ferron for?
Serving a static website with automatic HTTPS. Putting a reverse proxy in front of an internal API service. Debugging production requests by following traces into logs.
How do I install ferron?
Install Ferron on Linux with the official installer script (run it from the README; piped installer not reproduced here) Clone the repository from GitHub and switch to the develop-3.x branch: git clone https://github.com/ferronweb/ferron -b develop-3.x Initialize submodules and build the workspace: cd ferron && git submodule update --init --recursive && cargo build --workspace Run the server with your configuration file: cargo run -p ferron -- run -c ferron.conf
Where can I get ferron?
The source code and installation instructions are on GitHub: https://github.com/ferronweb/ferron

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects