github yusing/godoxy 0.1-stable
0.1 stable

latest releases: v0.9.9-1, v0.9.9, v0.9.8...
12 months ago

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:

  1. It's fun.
  2. Unsatisfactory experiences with other reverse proxy services such as nginx proxy manager, traefik, and nginx-proxy.

How to Use

  1. Clone the repo: git clone https://github.com/yusing/go-proxy
  2. Create your own compose.yml by copying content from compose.example.yml
  3. Ensure it is in the same network with other containers or make sure proxy.<alias>.host is reachable
  4. Modify the path to your SSL certs. See Getting SSL Certs
  5. Start go-proxy with docker compose up -d or make up
  6. (Optional) If you are using ufw with VPN that drops all inbound traffic except VPN, allow docker containers to connect to go-proxy
  7. Start your docker app and visit <container_name>.y.z
  8. Check the logs with docker compose logs or make 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 matching
  • proxy.<alias>.scheme: container port protocol (http or https)
  • proxy.<alias>.host: proxy host
  • proxy.<alias>.port: proxy port
  • proxy.<alias>.path: path matching (for http proxy only)
  • proxy.<alias>.path_mode: mode for path handling
  • proxy.<alias>.load_balance: enable load balance

Screenshots

panel screenshot

For more details, refer to the documentation.

Don't miss a new godoxy release

NewReleases is sending notifications on new releases.