a low memory reverse-proxy with automatic Let's Encrypt support
- Automatic HTTPS: Automatic Let's Encrypt certificate provisioning and renewal
- HTTP to HTTPS redirect: Automatically redirects HTTP traffic to HTTPS
- Domain-based routing: Route requests to different backends based on the host header
- Environment-based configuration: Disable HTTPS for local development
- Low memory footprint: Efficient reverse proxy built with Rust and Axum
Create a proxy.yaml file with your routing configuration:
routes:
example.com:
backend: "127.0.0.1:3000"
https: false # backend uses HTTP
api.example.com:
backend: "127.0.0.1:3001"
https: false
# Optional ACME configuration
acme:
email: "[email protected]"
cert_dir: "./certs"
staging: false # Set to true for testingDISABLE_HTTPS=true- Disable HTTPS and Let's Encrypt for local developmentDEFAULT_DOMAIN=example.com- Set default domain for TLS configuration
cargo runDISABLE_HTTPS=true cargo runThe proxy automatically handles ACME HTTP-01 challenges on port 80. Make sure:
- Port 80 and 443 are accessible from the internet
- DNS points to your server
- No other services are using these ports
Certificates are automatically stored in the configured cert_dir (default: ./certs/) and are automatically renewed before expiration.