TLS-terminating reverse proxy in Go https://centauri.readthedocs.io/en/latest/
Find a file
2025-11-26 12:20:32 +00:00
.github Dependencies: switch to weekly with cooldown 2025-11-26 11:45:09 +00:00
certificate Log when ACME processes finish 2025-06-30 12:54:37 +01:00
cmd/centauri Add support for redirecting to 'primary' domain 2025-09-21 10:13:41 +01:00
config Add support for redirecting to 'primary' domain 2025-09-21 10:13:41 +01:00
contrib/performance Perf: add traefik config 2025-05-30 23:58:58 +01:00
docs Add support for redirecting to 'primary' domain 2025-09-21 10:13:41 +01:00
examples Breaking: change default paths in Docker 2025-06-01 17:14:54 +01:00
metrics Structured logging 2025-05-25 09:51:51 +01:00
proxy Add support for redirecting to 'primary' domain 2025-09-21 10:13:41 +01:00
.gitignore Add ability to capture CPU profiles 2025-05-27 15:18:20 +01:00
.readthedocs.yaml RTD: install mkdocs-material 2025-05-30 23:33:52 +01:00
CHANGELOG.md Add support for redirecting to 'primary' domain 2025-09-21 10:13:41 +01:00
Dockerfile Dockerfile: ignore some packages without licenses 2025-11-18 13:36:42 +00:00
go.mod Bump tailscale.com from 1.90.8 to 1.90.9 2025-11-25 21:03:49 +00:00
go.sum Bump tailscale.com from 1.90.8 to 1.90.9 2025-11-25 21:03:49 +00:00
LICENCE Initial work on certificate management 2022-02-21 23:32:37 +00:00
LICENCE.stdlib Add redirector, tweak rewriter for security. 2022-03-06 13:13:09 +00:00
mkdocs.yml Split out docs into their own folder 2025-05-30 23:30:21 +01:00
README.md Breaking: change default paths in Docker 2025-06-01 17:14:54 +01:00

Centauri

Centauri is a TLS-terminating reverse HTTP proxy written in Go.

Current status

Centauri is considered stable and feature complete. It is deployed in production in several places. Any breaking changes going forward will result in major version bumps.

Features

Automatic TLS certificates and OCSP stapling

Centauri will obtain TLS certificates from an ACME provider such as Let's Encrypt. It will keep these up to date, and ensure each one has a valid OCSP staple that can be sent to clients.

Centauri runs with sensible defaults for establishing TLS connections, in line with Mozilla's Intermediate recommendations. This balances security with accessibility for older clients.

Simple route configuration

Centauri's route configuration looks like this:

route www.example.com example.com
    upstream server1.internal.example.com:8080

route www.example.net
    upstream server1.internal.example.com:8080

You don't need to configure separate front-ends or back-ends, or deal with proxy_pass instructions.

Native Tailscale support

Centauri can listen directly on a Tailscale network instead of a public TCP port, removing the need for complex configuration or sidecar containers. Change the "frontend" setting to "tailscale", supply an API key, and Centauri will connect directly to your Tailscale network!

Centauri will also pass details of the Tailscale user making the request to the upstream service, via the following headers:

  • Tailscale-User-Login
  • Tailscale-User-Name
  • Tailscale-User-Profile-Pic

Usage

Documentation is available at https://centauri.readthedocs.io/en/latest/.

Feedback / Contributing

Feedback, feature requests, bug reports and pull requests are all welcome!