Releases: yusing/godoxy
Releases · yusing/godoxy
0.3.1
0.3
0.2.2
0.2.1
0.2
go-proxy v0.2.0
Changes
- Changed file paths (i.e. cert, private key) to relative path which fixed issues running the binary directly
- Added support for multiple docker/file providers by using a custom
config.yml
file. - Performance improvement
- HTTPs is now optional, ignored when no cert and no private key was found.
For more details, refer to the README.
0.1 stable
go-proxy First release v0.1
Overview
go-proxy is a simple auto docker reverse proxy designed for home use. It is written in Go and offers features for subdomain and path matching, HTTP and TCP/UDP proxy, HTTP round-robin load balancing support, and auto hot-reload functionality. Additionally, it provides a simple panel for monitoring reverse proxies and their health.
Features
- Subdomain matching (domain name doesn't matter)
- Path matching
- HTTP proxy
- TCP/UDP Proxy
- HTTP round-robin load balance support
- Auto hot-reload when container starts, dies, or stops
- Simple panel to monitor reverse proxies and health
Why go-proxy?
The creation of go-proxy was driven by the following reasons:
- It's fun.
- Unsatisfactory experiences with other reverse proxy services such as
nginx proxy manager
,traefik
, andnginx-proxy
.
How to Use
- Clone the repo:
git clone https://github.com/yusing/go-proxy
- Create your own
compose.yml
by copying content fromcompose.example.yml
- Ensure it is in the same network with other containers or make sure
proxy.<alias>.host
is reachable - Modify the path to your SSL certs. See Getting SSL Certs
- Start
go-proxy
withdocker compose up -d
ormake up
- (Optional) If you are using ufw with VPN that drops all inbound traffic except VPN, allow docker containers to connect to
go-proxy
- Start your docker app and visit
<container_name>.y.z
- Check the logs with
docker compose logs
ormake logs
to see if there are any errors. Check the panel at [panel port] for active proxies
Known Issues
None
Configuration
With container name, no label needs to be added. However, there are some labels you can manipulate with:
proxy.aliases
: comma-separated aliases for subdomain matchingproxy.<alias>.scheme
: container port protocol (http
orhttps
)proxy.<alias>.host
: proxy hostproxy.<alias>.port
: proxy portproxy.<alias>.path
: path matching (for http proxy only)proxy.<alias>.path_mode
: mode for path handlingproxy.<alias>.load_balance
: enable load balance
Screenshots
For more details, refer to the documentation.