go-proxy

module
v0.0.0-...-64e30f5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 11, 2024 License: MIT

README

go-proxy

Quality Gate Status Lines of Code Security Rating Maintainability Rating Vulnerabilities

繁體中文文檔請看此

A lightweight, easy-to-use, and performant reverse proxy with a Web UI and dashboard.

Screenshot

Join our Discord for help and discussions

Table of content

Key Features

  • 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
  • HTTP middleware support
  • Custom error pages support
  • TCP and UDP port forwarding
  • Web UI with App dashboard
  • Supports linux/amd64, linux/arm64
  • Written in Go

🔼Back to top

Getting Started

Setup
  1. Pull docker image

    docker pull ghcr.io/yusing/go-proxy:latest
    
  2. Create new directory, cd into it, then run setup

    docker run --rm -v .:/setup ghcr.io/yusing/go-proxy /app/go-proxy setup
    
  3. Setup DNS Records point to machine which runs go-proxy, e.g.

    • A Record: *.y.z -> 10.0.10.1
    • AAAA Record: *.y.z -> ::ffff:a00:a01
  4. Setup docker-socket-proxy other docker nodes (if any) (see Multi docker nodes setup) and then them inside config.yml

  5. Run go-proxy docker compose up -d then list all routes to see if further configurations are needed: docker exec go-proxy /app/go-proxy ls-routes

  6. You may now do some extra configuration

    • With text editor (e.g. Visual Studio Code)
    • With Web UI via http://localhost:3000 or https://gp.y.z
    • For more info, See Wiki

🔼Back to top

Use JSON Schema in VSCode

Copy .vscode/settings.example.json to .vscode/settings.json and modify it to fit your needs

🔼Back to top

Screenshots

idlesleeper

idlesleeper

🔼Back to top

Build it yourself

  1. Clone the repository git clone https://github.com/yusing/go-proxy --depth=1

  2. Install / Upgrade go (>=1.22) and make if not already

  3. Clear cache if you have built this before (go < 1.22) with go clean -cache

  4. get dependencies with make get

  5. build binary with make build

🔼Back to top

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL