A lightweight, simple, and performant reverse proxy with WebUI.
For full documentation, check out Wiki
EN | δΈζ
Currently working on feat/godoxy-agent.
Fork this instead of default branch.
- Easy to use
- Effortless configuration
- Simple multi-node setup
- Error messages is clear and detailed, easy troubleshooting
- Auto SSL cert management (See Supported DNS-01 Challenge Providers)
- Auto configuration for docker containers
- Auto hot-reload on container state / config file changes
- idlesleeper: stop containers on idle, wake it up on traffic (optional, see screenshots)
- HTTP(s) reserve proxy
- OpenID Connect support
- HTTP middleware support
- Custom error pages support
- TCP and UDP port forwarding
- Web UI with App dashboard and config editor
- Supports linux/amd64, linux/arm64
- Written in Go
Setup DNS Records point to machine which runs GoDoxy, e.g.
- A Record:
*.y.z->10.0.10.1 - AAAA Record:
*.y.z->::ffff:a00:a01
NOTE: GoDoxy is designed to be (and only works when) running in host network mode, do not change it. To change listening ports, modify .env.
-
Prepare a new directory for docker compose and config files.
-
Run setup script inside the directory, or set up manually
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/yusing/go-proxy/v0.9/scripts/setup.sh)" -
Start the container
docker compose up -dand wait for it to be ready -
You may now do some extra configuration on WebUI
https://godoxy.yourdomain.com
-
Make
configdirectory then grabconfig.example.ymlintoconfig/config.ymlmkdir -p config && wget https://raw.githubusercontent.com/yusing/go-proxy/v0.9/config.example.yml -O config/config.yml -
Grab
.env.exampleinto.envwget https://raw.githubusercontent.com/yusing/go-proxy/v0.9/.env.example -O .env -
Grab
compose.example.ymlintocompose.ymlwget https://raw.githubusercontent.com/yusing/go-proxy/v0.9/compose.example.yml -O compose.yml
βββ certs
β βββ cert.crt
β βββ priv.key
βββ compose.yml
βββ config
β βββ config.yml
β βββ middlewares
β β βββ middleware1.yml
β β βββ middleware2.yml
β βββ provider1.yml
β βββ provider2.yml
βββ data
β βββ metrics # metrics data
β β βββ uptime.json
β β βββ system_info.json
βββ .env-
Clone the repository
git clone https://github.com/yusing/go-proxy --depth=1 -
Install / Upgrade go (>=1.22) and
makeif not already -
Clear cache if you have built this before (go < 1.22) with
go clean -cache -
get dependencies with
make get -
build binary with
make build
