[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-73253":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":23,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":36,"readmeContent":37,"aiSummary":38,"trendingCount":16,"starSnapshotCount":16,"syncStatus":39,"lastSyncTime":40,"discoverSource":41},73253,"godoxy","yusing\u002Fgodoxy","yusing","High-performance reverse proxy and container orchestrator for self-hosters","https:\u002F\u002Fdocs.godoxy.dev",null,"Go",3310,138,12,10,0,15,122,335,45,108.43,"Other",false,"main",true,[27,28,29,30,31,32,33,34,35],"docker","go","golang","homepage","letsencrypt","microservice","reverse-proxy","self-hosted","startpage","2026-06-12 04:01:08","\u003Cdiv align=\"center\">\n\n\u003Cimg src=\"assets\u002Fgodoxy.png\" width=\"200\">\n\n[![Quality Gate Status](https:\u002F\u002Fsonarcloud.io\u002Fapi\u002Fproject_badges\u002Fmeasure?project=yusing_go-proxy&metric=alert_status)](https:\u002F\u002Fsonarcloud.io\u002Fsummary\u002Fnew_code?id=yusing_go-proxy)\n![GitHub last commit](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flast-commit\u002Fyusing\u002Fgodoxy)\n[![Lines of Code](https:\u002F\u002Fsonarcloud.io\u002Fapi\u002Fproject_badges\u002Fmeasure?project=yusing_go-proxy&metric=ncloc)](https:\u002F\u002Fsonarcloud.io\u002Fsummary\u002Fnew_code?id=go-proxy)\n\n![Demo](https:\u002F\u002Fimg.shields.io\u002Fwebsite?url=https%3A%2F%2Fdemo.godoxy.dev&label=Demo&link=https%3A%2F%2Fdemo.godoxy.dev)\n[![Discord](https:\u002F\u002Fdcbadge.limes.pink\u002Fapi\u002Fserver\u002FumReR62nRd?style=flat)](https:\u002F\u002Fdiscord.gg\u002FumReR62nRd)\n\nA lightweight, simple, and performant reverse proxy with WebUI.\n\n\u003Ch5>\n\u003Ca href=\"https:\u002F\u002Fdocs.godoxy.dev\">Website\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fdocs.godoxy.dev\u002FHome.html\">Wiki\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002FumReR62nRd\">Discord\u003C\u002Fa>\n\u003C\u002Fh5>\n\n\u003Ch5>EN | \u003Ca href=\"README_CHT.md\">中文\u003C\u002Fa>\u003C\u002Fh5>\n\n\u003Cimg src=\"screenshots\u002Fwebui.jpg\" style=\"max-width: 650\">\n\nHave questions? Ask [ChatGPT](https:\u002F\u002Fchatgpt.com\u002Fg\u002Fg-6825390374b481919ad482f2e48936a1-godoxy-assistant)! (Thanks to [@ismesid](https:\u002F\u002Fgithub.com\u002Farevindh))\n\n\u003C\u002Fdiv>\n\n## Table of content\n\n\u003C!-- TOC -->\n\n- [Table of content](#table-of-content)\n- [Running demo](#running-demo)\n- [Key Features](#key-features)\n- [Prerequisites](#prerequisites)\n- [Setup](#setup)\n- [How does GoDoxy work](#how-does-godoxy-work)\n- [Proxmox Integration](#proxmox-integration)\n  - [Automatic Route Binding](#automatic-route-binding)\n  - [WebUI Management](#webui-management)\n- [Update \u002F Uninstall system agent](#update--uninstall-system-agent)\n- [Screenshots](#screenshots)\n  - [idlesleeper](#idlesleeper)\n  - [Metrics and Logs](#metrics-and-logs)\n- [Manual Setup](#manual-setup)\n  - [Folder structrue](#folder-structrue)\n- [Build it yourself](#build-it-yourself)\n- [Star History](#star-history)\n\n## Running demo\n\n\u003Chttps:\u002F\u002Fdemo.godoxy.dev>\n\n## Key Features\n\n- **Simple**\n  - Effortless configuration with [simple labels](https:\u002F\u002Fdocs.godoxy.dev\u002FDocker-labels-and-Route-Files) or WebUI\n  - [Simple multi-node setup](https:\u002F\u002Fdocs.godoxy.dev\u002FConfigurations#multi-docker-nodes-setup)\n  - Detailed error messages for easy troubleshooting.\n- **ACL**: connection \u002F request level access control\n  - IP\u002FCIDR\n  - Country **(Maxmind account required)**\n  - Timezone **(Maxmind account required)**\n  - **Access logging**\n  - Periodic notification of access summaries for number of allowed and blocked connections\n- **Advanced Automation**\n  - Automatic SSL certificate management with Let's Encrypt ([using DNS-01 Challenge](https:\u002F\u002Fdocs.godoxy.dev\u002FDNS-01-Providers))\n  - Auto-configuration for Docker containers\n  - Hot-reloading of configurations and container state changes\n- **Container Runtime Support**\n  - Docker\n  - Podman\n- **Idle-sleep**: stop and wake containers based on traffic _(see [screenshots](#idlesleeper))_\n  - Docker containers\n  - Proxmox LXC containers\n- **Proxmox Integration**\n  - **Automatic route binding**: Routes automatically bind to Proxmox nodes or LXC containers by matching hostname, IP, or alias\n  - **LXC lifecycle control**: Start, stop, restart containers directly from WebUI\n  - **Real-time logs**: Stream journalctl logs from nodes and LXC containers via WebSocket\n- **Traffic Management**\n  - HTTP reserve proxy\n  - TCP\u002FUDP port forwarding\n  - **OpenID Connect support**: SSO and secure your apps easily\n  - **ForwardAuth support**: integrate with any auth provider (e.g. TinyAuth)\n- **Customization**\n  - [HTTP middlewares](https:\u002F\u002Fdocs.godoxy.dev\u002FMiddlewares)\n  - [Custom error pages support](https:\u002F\u002Fdocs.godoxy.dev\u002FCustom-Error-Pages)\n- **Web UI**\n  - App Dashboard\n  - Config Editor\n  - Uptime and System Metrics\n  - **Docker**\n    - Container lifecycle management (start, stop, restart)\n    - Real-time container logs via WebSocket\n  - **Proxmox**\n    - LXC container lifecycle management (start, stop, restart)\n    - Real-time node and LXC journalctl logs via WebSocket\n- **Cross-Platform support**\n  - Supports **linux\u002Famd64** and **linux\u002Farm64**\n- **Efficient and Performant**\n  - Written in **[Go](https:\u002F\u002Fgo.dev)**\n\n## Prerequisites\n\nConfigure Wildcard DNS Record(s) to point to machine running `GoDoxy`, e.g.\n\n- A Record: `*.domain.com` -> `10.0.10.1`\n- AAAA Record (if you use IPv6): `*.domain.com` -> `::ffff:a00:a01`\n\n## Setup\n\n> [!NOTE]\n> GoDoxy is designed to be running in `host` network mode, do not change it.\n>\n> To change listening ports, modify `.env`.\n\n1. Prepare a new directory for docker compose and config files.\n\n2. Run setup script inside the directory, or [set up manually](#manual-setup)\n\n   ```shell\n   \u002Fbin\u002Fsh -c \"$(curl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002Fyusing\u002Fgodoxy\u002Fmain\u002Fscripts\u002Fsetup.sh)\"\n   ```\n\n3. Start the docker compose service from generated `compose.yml`:\n\n   ```shell\n   docker compose up -d\n   ```\n\n4. You may now do some extra configuration on WebUI `https:\u002F\u002Fgodoxy.yourdomain.com`\n\n## How does GoDoxy work\n\n1. List all the containers\n2. Read container name, labels and port configurations for each of them\n3. Create a route if applicable (a route is like a \"Virtual Host\" in NPM)\n4. Watch for container \u002F config changes and update automatically\n\n> [!NOTE]\n> GoDoxy uses the label `proxy.aliases` as the subdomain(s), if unset it defaults to the `container_name` field in docker compose.\n>\n> For example, with the label `proxy.aliases: qbt` you can access your app via `qbt.domain.com`.\n\n## Proxmox Integration\n\nGoDoxy can automatically discover and manage Proxmox nodes and LXC containers through configured providers.\n\n### Automatic Route Binding\n\nRoutes are automatically linked to Proxmox resources through reverse lookup:\n\n1. **Node-level routes** (VMID = 0): When hostname, IP, or alias matches a Proxmox node name or IP\n2. **Container-level routes** (VMID > 0): When hostname, IP, or alias matches an LXC container\n\nThis enables seamless proxy configuration without manual binding:\n\n```yaml\nroutes:\n  pve-node-01:\n    host: pve-node-01.internal\n    port: 8006\n    # Automatically links to Proxmox node pve-node-01\n```\n\n### WebUI Management\n\nFrom the WebUI, you can:\n\n- **LXC Lifecycle Control**: Start, stop, restart containers\n- **Node Logs**: Stream real-time journalctl or log files output from nodes\n- **LXC Logs**: Stream real-time journalctl or log files output from containers\n\n## Update \u002F Uninstall system agent\n\nInstaller supports both systemd and Alpine\u002FOpenRC (`rc-service`) hosts.\n\nUpdate:\n\n```bash\nsh -c \"$(curl -fsSL https:\u002F\u002Fgithub.com\u002Fyusing\u002Fgodoxy\u002Fraw\u002Frefs\u002Fheads\u002Fmain\u002Fscripts\u002Finstall-agent.sh)\" -- update\n```\n\nUninstall:\n\n```bash\nsh -c \"$(curl -fsSL https:\u002F\u002Fgithub.com\u002Fyusing\u002Fgodoxy\u002Fraw\u002Frefs\u002Fheads\u002Fmain\u002Fscripts\u002Finstall-agent.sh)\" -- uninstall\n```\n\n## Screenshots\n\n### idlesleeper\n\n![idlesleeper](screenshots\u002Fidlesleeper.webp)\n\n### Metrics and Logs\n\n\u003Cdiv align=\"center\">\n  \u003Ctable>\n    \u003Ctr>\n      \u003Ctd align=\"center\">\u003Cimg src=\"screenshots\u002Froutes.jpg\" alt=\"Routes\" width=\"350\"\u002F>\u003C\u002Ftd>\n      \u003Ctd align=\"center\">\u003Cimg src=\"screenshots\u002Fservers.jpg\" alt=\"Servers\" width=\"350\"\u002F>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd align=\"center\">\u003Cb>Routes\u003C\u002Fb>\u003C\u002Ftd>\n      \u003Ctd align=\"center\">\u003Cb>Servers\u003C\u002Fb>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n  \u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n## Manual Setup\n\n1. Make `config` directory then grab `config.example.yml` into `config\u002Fconfig.yml`\n\n   `mkdir -p config && wget https:\u002F\u002Fraw.githubusercontent.com\u002Fyusing\u002Fgodoxy\u002Fmain\u002Fconfig.example.yml -O config\u002Fconfig.yml`\n\n2. Grab `.env.example` into `.env`\n\n   `wget https:\u002F\u002Fraw.githubusercontent.com\u002Fyusing\u002Fgodoxy\u002Fmain\u002F.env.example -O .env`\n\n3. Grab `compose.example.yml` into `compose.yml`\n\n   `wget https:\u002F\u002Fraw.githubusercontent.com\u002Fyusing\u002Fgodoxy\u002Fmain\u002Fcompose.example.yml -O compose.yml`\n\n### Folder structrue\n\n```shell\n├── certs\n│   ├── cert.crt\n│   └── priv.key\n├── compose.yml\n├── config\n│   ├── config.yml\n│   ├── middlewares\n│   │   ├── middleware1.yml\n│   │   ├── middleware2.yml\n│   ├── provider1.yml\n│   └── provider2.yml\n├── data\n│   ├── metrics # metrics data\n│   │   ├── uptime.json\n│   │   └── system_info.json\n└── .env\n```\n\n## Build it yourself\n\n1. Clone the repository `git clone https:\u002F\u002Fgithub.com\u002Fyusing\u002Fgodoxy --depth=1`\n\n2. Install \u002F Upgrade [go (>=1.22)](https:\u002F\u002Fgo.dev\u002Fdoc\u002Finstall) and `make` if not already\n\n3. Clear cache if you have built this before (go \u003C 1.22) with `go clean -cache`\n\n4. get dependencies with `make get`\n\n5. build binary with `make build`\n\n## Star History\n\n[![Star History Chart](https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=yusing\u002Fgodoxy&type=Date)](https:\u002F\u002Fwww.star-history.com\u002F#yusing\u002Fgodoxy&Date)\n\n[🔼Back to top](#table-of-content)\n","GoDoxy 是一个高性能的反向代理和容器编排工具，专为自托管用户设计。其核心功能包括简易配置（支持WebUI）、高级访问控制（如基于IP\u002FCIDR、国家、时区等）、自动SSL证书管理（通过Let's Encrypt的DNS-01挑战实现）、以及对Docker和Podman容器的支持。此外，它还具备自动化容器状态变更热重载与空闲休眠功能，能够根据流量情况自动停止或唤醒容器，从而节省资源。GoDoxy适用于需要高效管理多个服务入口点并希望简化运维流程的小型至中型企业或个人开发者环境。",2,"2026-06-11 03:44:44","high_star"]