Skip to content

Releases: yusing/godoxy

0.3.1

23 Mar 20:07
Compare
Choose a tag to compare

go-proxy v0.3.1

Changes in v0.3.1

  • Fixed wrong cert expiry date
  • Improved auto cert renewal strategy

For more details, refer to the README.

0.3

23 Mar 03:30
Compare
Choose a tag to compare
0.3

go-proxy v0.3

Changes in v0.3

  • Initial support for auto cert obtaining and renewal (currently only cloudflare is supported, you may request for more)
  • Small fixes on gracefully shutdown http(s) servers

For more details, refer to the README.

0.2.2

21 Mar 04:25
Compare
Choose a tag to compare

go-proxy v0.2.2

Changes in v0.2.2

  • Fixed log formatting
  • Fixed docker watcher stuck reloading
  • Fixed graceful reload / shutdown
  • Fixed nil reference on reload in some cases
  • Codebase refactor for maintainability and readability

For more details, refer to the README.

0.2.1

18 Mar 20:54
Compare
Choose a tag to compare

go-proxy v0.2.1

Changes in v0.2.1

  • Fixed log formatting
  • Fixed stack overflow error on some cases due to recursive call on proxy.rewrite
  • Small performance improvement

For more details, refer to the README.

0.2

18 Mar 04:54
Compare
Choose a tag to compare
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

09 Mar 21:22
Compare
Choose a tag to compare

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.