Sozu reverse proxy

Sozu is rust base reverse proxy, very lightweight & easy to setup.

its enough to post the request on GitHub.

just want to share information. if somebody want to use reverse proxy with dietpi, then this may be the one option GitHub - junkurihara/rust-rpxy: A simple and ultrafast http reverse proxy serving multiple domain names and terminating TLS for http/1.1, 2 and 3, written in Rust

I am running its binary file with systemD method


[Unit]
Description=rpxy
##After=network.target
Wants=network-online.target
After=network-online.target

[Service]
ExecStart=/mnt/dietpi_userdata/rpxy/rpxy_active -c /mnt/dietpi_userdata/rpxy/rpxy.toml
WorkingDirectory=/mnt/dietpi_userdata/rpxy
StandardOutput=inherit
StandardError=inherit
#Restart=on-failure
Restart=always
#RestartSec=10s
User=rpxy
Group=rpxy

[Install]
WantedBy=multi-user.target


Thx for sharing, installation seems to be quite easy via apt package server https://rpxy.gamerboy59.dev/

this may be the expansion of that project. the link i shared before very easy. just download binary & made file executable in systemd make service file. fine tune your toml file & just start service. in my home i used this for adguardhome, homeassistant, valtwarden & plex. not any web GUI for this software only CLI based. In my home all the ssl certificate handle by LEGO ssl manager & all those cron job work timely manner.

my toml file is as

listen_port = 8080
listen_port_tls = 8443
tcp_listen_backlog = 1024
listen_ipv6 = false
max_concurrent_streams = 100
max_clients = 512


default_app = 'localhost'

#

[apps.adguard]
server_name = 'adguard.XXX.ZZZ'
tls = { https_redirection = true, tls_cert_path = '/mnt/dietpi_userdata/rpxy/certificates/_.XXX.ZZZ.crt',  tls_cert_key_path = '/mnt/dietpi_userdata/rpxy/certificates/_.XXX.ZZZ.key.pem' }
reverse_proxy = [{ upstream = [{ location = 'localhost:8083' }] }]

[apps.vaultwarden]
server_name = 'vaultwarden.XXX.ZZZ'
tls = { https_redirection = true, tls_cert_path = '/mnt/dietpi_userdata/rpxy/certificates/_.XXX.ZZZ.crt',  tls_cert_key_path = '/mnt/dietpi_userdata/rpxy/certificates/_.XXX.ZZZ.key.pem' }
reverse_proxy = [{ upstream = [{ location = 'localhost:8001' }] }]

[apps.homeassistant]
server_name = 'homeassistant.XXX.ZZZ'
tls = { https_redirection = true, tls_cert_path = '/mnt/dietpi_userdata/rpxy/certificates/_.XXX.ZZZ.crt',  tls_cert_key_path = '/mnt/dietpi_userdata/rpxy/certificates/_.XXX.ZZZ.key.pem' }
reverse_proxy = [{ upstream = [{ location = 'localhost:8123' }] }]


[experimental]
ignore_sni_consistency = false

[experimental.h3]
alt_svc_max_age = 3600             # sec
request_max_body_size = 65536      # bytes
max_concurrent_connections = 10000
max_concurrent_bidistream = 100
max_concurrent_unistream = 100
max_idle_timeout = 10              # secs. 0 represents an infinite timeout.