Simple reverse proxy server
Find a file
2025-06-03 18:12:17 +05:00
.gitattributes Initial commit 2023-12-28 16:00:04 +05:00
.gitignore Initial commit 2023-12-28 16:00:04 +05:00
app.go Implement reload config feature 2023-12-29 12:16:35 +05:00
config.go Implement reload config feature 2023-12-29 12:16:35 +05:00
consts.go Initial commit 2023-12-28 16:00:04 +05:00
go.mod Initial commit 2023-12-28 16:00:04 +05:00
go.sum Initial commit 2023-12-28 16:00:04 +05:00
gonx.conf Add unix socket support 2025-06-02 17:51:28 +05:00
gonx.service Allow unix socket for systemd unit 2025-06-03 10:35:39 +05:00
LICENSE Initial commit 2023-12-28 16:00:04 +05:00
listener.go Initial commit 2023-12-28 16:00:04 +05:00
main.go Does not start TLS redirection on empty TLS config 2025-06-03 18:12:17 +05:00
mapping.go Simplify listener code 2025-06-03 11:40:52 +05:00
PKGBUILD Return internal errors to clients 2025-06-03 10:36:09 +05:00
README.md Add unix socket example 2025-06-02 17:56:16 +05:00

gonx

Simple reverse proxy server.

Features:

  • Simple TCP redirection
  • Simple static file server

Usage

  1. Install package

  2. Edit config in /etc/gonx.conf

  3. Start application with systemd:

    systemctl start gonx.service

Config example

LogLevel = "DEBUG"                         # Log level (DEBUG, INFO, WARN, ERROR)
TlsKeysDir = "/etc/letsencrypt/live"       # Path to TLS-certificates generated by Certbot
TlsListenAddr = ":443"                     # TLS listen address
HttpListenAddr = ":80"                     # HTTP listen address
AcmeChallengePath = "/var/lib/letsencrypt" # Path for ACME challenge files

# Map of hostname -> redirect URL
[TLS]
"git.host.com"  = "tcp://127.0.0.1:8001"           # TCP redirect
"unix.host.com" = "unix:///var/lib/app/app.socket" # serve unix socket
"www.host.com"  = "file:///srv/http"               # simple static file server from `/srv/http`