返回目录
开源项目其他开源工具类新手

GitHub - yusing/godoxy: High-performance reverse proxy and container orchestrator for self-hosters

A lightweight, simple, and performant reverse proxy with WebUI. Website | Wiki | Discord EN | 中文 Have questions? Ask ChatGPT ! (Thanks to @ismesid ) Running demo https://demo.godoxy.dev Quick start Configure Wildcard DNS Record(s) to point to machine running

0 次阅读2026/08/12 发布
GitHub - yusing/godoxy: High-performance reverse proxy and container orchestrator for self-hosters 来源图片

社区作者 · zZz

它解决什么问题

A lightweight, simple, and performant reverse proxy with WebUI.

Website | Wiki | Discord

EN | 中文

Have questions? Ask ChatGPT ! (Thanks to @ismesid )

Running demo

https://demo.godoxy.dev

Quick start

Configure Wildcard DNS Record(s) to point to machine running GoDoxy , e.g.

  • A Record: *.domain.com -> 10.0.10.1
  • AAAA Record (if you use IPv6): *.domain.com -> ::ffff:a00:a01

Note GoDoxy is designed to be 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/sh -c " $( curl -fsSL https://raw.githubusercontent.com/yusing/godoxy/main/scripts/setup.sh ) "

- Start the docker compose service from generated compose.yml :

命令
docker compose up -d

- You may now do some extra configuration on WebUI https://godoxy.yourdomain.com

Key features

  • Simple setup
  • Configure routes with Docker labels or route files
  • Manage routes, config, containers, logs, metrics, and uptime from the WebUI
  • Use multi-node Docker setups
  • Automatic routing
  • Discover Docker and Podman containers
  • Hot-reload config and container state changes
  • Manage Let's Encrypt certificates with DNS-01 providers
  • Traffic management
  • HTTP reverse proxy
  • TCP/UDP port forwarding
  • OpenID Connect SSO
  • ForwardAuth integration, e.g. TinyAuth
  • HTTP middlewares
  • Custom error pages
  • Access control
  • IP/CIDR rules
  • Country and timezone rules with a MaxMind account
  • Access logging
  • Periodic access summaries
  • Idle sleep
  • Stop and wake Docker containers based on traffic
  • Stop and wake Proxmox LXC containers based on traffic
  • Proxmox integration
  • Bind routes automatically to nodes or LXC containers
  • Start, stop, and restart LXC containers from the WebUI
  • Stream node and LXC logs through WebSocket
  • Platform support
  • Linux amd64
  • Linux arm64

How GoDoxy works

  • List all the containers
  • Read container name, labels, and port configurations for each of them
  • Create a route if applicable (a route is like a "Virtual Host" in NPM)
  • Watch for container / config changes and update automatically

Note GoDoxy uses the label proxy.aliases as the subdomain(s), if unset it defaults to the container_name field in docker compose.

For example, with the label proxy.aliases: qbt you can access your app via qbt.domain.com .

Screenshots

idlesleeper

Metrics and Logs

Routes Servers

Proxmox Integration

GoDoxy can automatically discover and manage Proxmox nodes and LXC containers through configured providers.

Automatic Route Binding

Routes are automatically linked to Proxmox resources through reverse lookup:

  • Node-level routes (VMID = 0): When hostname, IP, or alias matches a Proxmox node name or IP
  • Container-level routes (VMID > 0): When hostname, IP, or alias matches an LXC container

This enables seamless proxy configuration without manual binding:

routes : pve-node-01 : host : pve-node-01.internal port : 8006

Automatically links to Proxmox node pve-node-01

WebUI Management

From the WebUI, you can:

  • LXC Lifecycle Control : Start, stop, restart containers
  • Node Logs : Stream real-time journalctl or log files output from nodes
  • LXC Logs : Stream real-time journalctl or log files output from containers

Update / uninstall system agent

Installer supports both systemd and Alpine/OpenRC ( rc-service ) hosts.

Update:

命令
sh -c " $( curl -fsSL https://github.com/yusing/godoxy/raw/refs/heads/main/scripts/install-agent.sh ) " -- update

Uninstall:

命令
sh -c " $( curl -fsSL https://github.com/yusing/godoxy/raw/refs/heads/main/scripts/install-agent.sh ) " -- uninstall

Manual Setup

-

命令
Make config directory then grab config.example.yml into config/config.yml
命令
mkdir -p config && wget https://raw.githubusercontent.com/yusing/godoxy/main/config.example.yml -O config/config.yml

- Grab .env.example into .env

命令
wget https://raw.githubusercontent.com/yusing/godoxy/main/.env.example -O .env

- Grab compose.example.yml into compose.yml

命令
wget https://raw.githubusercontent.com/yusing/godoxy/main/compose.example.yml -O compose.yml

Folder structure

├── 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

Build from source

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

- Install / Upgrade go (>=1.22) and shadowtree if not already

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

- Get dependencies with shadowtree mod-tidy

- Build binary with shadowtree build

Star History

— 本文由 AI 根据公开来源辅助整理,命令、版本与许可证请在使用前到原始页面复核。

安装 / 开始使用

Quick start Configure Wildcard DNS Record(s) to point to machine running GoDoxy , e.g.

Note GoDoxy is designed to be 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/sh -c " $( curl -fsSL https://raw.githubusercontent.com/yusing/godoxy/main/scripts/setup.sh ) " - Start the docker compose service from generated compose.yml :

  • A Record: *.domain.com -> 10.0.10.1
  • AAAA Record (if you use IPv6): *.domain.com -> ::ffff:a00:a01
命令
docker compose up -d

- You may now do some extra configuration on WebUI https://godoxy.yourdomain.com Key features

How GoDoxy works

Note GoDoxy uses the label proxy.aliases as the subdomain(s), if unset it defaults to the container_name field in docker compose. For example, with the label proxy.aliases: qbt you can access your app via qbt.domain.com .

Screenshots idlesleeper Metrics and Logs Routes Servers Proxmox Integration GoDoxy can automatically discover and manage Proxmox nodes and LXC containers through configured providers.

Automatic Route Binding Routes are automatically linked to Proxmox resources through reverse lookup:

This enables seamless proxy configuration without manual binding: routes : pve-node-01 : host : pve-node-01.internal port : 8006

  • Simple setup
  • Configure routes with Docker labels or route files
  • Manage routes, config, containers, logs, metrics, and uptime from the WebUI
  • Use multi-node Docker setups
  • Automatic routing
  • Discover Docker and Podman containers
  • Hot-reload config and container state changes
  • Manage Let's Encrypt certificates with DNS-01 providers
  • Traffic management
  • HTTP reverse proxy
  • TCP/UDP port forwarding
  • OpenID Connect SSO
  • ForwardAuth integration, e.g. TinyAuth
  • HTTP middlewares
  • Custom error pages
  • Access control
  • IP/CIDR rules
  • Country and timezone rules with a MaxMind account
  • Access logging
  • Periodic access summaries
  • Idle sleep
  • Stop and wake Docker containers based on traffic
  • Stop and wake Proxmox LXC containers based on traffic
  • Proxmox integration
  • Bind routes automatically to nodes or LXC containers
  • Start, stop, and restart LXC containers from the WebUI
  • Stream node and LXC logs through WebSocket
  • Platform support
  • Linux amd64
  • Linux arm64
  • List all the containers
  • Read container name, labels, and port configurations for each of them
  • Create a route if applicable (a route is like a "Virtual Host" in NPM)
  • Watch for container / config changes and update automatically
  • Node-level routes (VMID = 0): When hostname, IP, or alias matches a Proxmox node name or IP
  • Container-level routes (VMID > 0): When hostname, IP, or alias matches an LXC container

Automatically links to Proxmox node pve-node-01

WebUI Management From the WebUI, you can:

Update / uninstall system agent Installer supports both systemd and Alpine/OpenRC ( rc-service ) hosts. Update:

  • LXC Lifecycle Control : Start, stop, restart containers
  • Node Logs : Stream real-time journalctl or log files output from nodes
  • LXC Logs : Stream real-time journalctl or log files output from containers
命令
sh -c " $( curl -fsSL https://github.com/yusing/godoxy/raw/refs/heads/main/scripts/install-agent.sh ) " -- update

Uninstall:

命令
sh -c " $( curl -fsSL https://github.com/yusing/godoxy/raw/refs/heads/main/scripts/install-agent.sh ) " -- uninstall

Manual Setup -

命令
Make config directory then grab config.example.yml into config/config.yml
命令
mkdir -p config && wget https://raw.githubusercontent.com/yusing/godoxy/main/config.example.yml -O config/config.yml

- Grab .env.example into .env

来源教程配图

教程配图
配图 1 · 教程配图查看原图
教程配图
配图 2 · 教程配图查看原图
idlesleeper
配图 3 · idlesleeper查看原图
Routes
配图 4 · Routes查看原图
Servers
配图 5 · Servers查看原图
Star History Chart
配图 6 · Star History Chart查看原图

适用场景

学习研究
开源项目实践