我 NAS 上跑的自托管服务越来越多之后,入口网关反而成了最纠结的一块。
Nginx Proxy Manager 够用,但容器一多,每次加路由都要进 WebUI 点几下;Traefik 够自动,可 label 写多了人也麻。有没有一种东西:既能让容器自动被发现、自动暴露域名,又带一个能看状态、看日志、管证书的面板?最近看到的 GoDoxy,大概就是冲着这个方向去的。
GoDoxy 是什么
GoDoxy 是一个用 Go 写的反向代理 + 自托管网关,定位是”面向自托管玩家的轻量级入口”。它最吸引我的不是反代本身,而是把几件事揉在了一起:
- 自动路由发现:监听 Docker/Podman 容器,读取 label 或 compose 里的容器名,自动生成子域名路由;
- WebUI 统一管理:路由、证书、容器日志、指标、服务器状态,一个页面看完;
- Idle Sleeper:没人访问时自动停止容器,有请求时再自动唤醒,省内存省电;
- Proxmox 集成:能自动绑定 PVE 节点和 LXC 容器,并在 WebUI 里启停;
- 多 Docker 节点:单面板管多台宿主机的容器,适合家里多设备的场景。
项目仓库 3500+ star,最新 v0.30.1 就是几天前发布的,MIT 协议,commit 数已经超过 2000。对一个 2024 年初才创建的项目来说,迭代算快了。

为什么我会注意到它
说实话,我一开始只是想找个比 NPM 更”自动”的东西。NPM 的问题是:加服务要手动建 Proxy Host,改上游端口、改证书,服务一多就变成了重复的鼠标劳动。Traefik 能自动,但调试 label、看日志、解决 502 的时候体验一般。
GoDoxy 的做法比较中间态:你像往常一样写 docker-compose.yml,加个 proxy.aliases: qbt 的 label,它就能自动给你生成 qbt.yourdomain.com 的路由。不需要额外写一堆反代配置,也不强制你学习一套全新的 DSL。
而且它还有个我挺在意的功能:Idle Sleeper。NAS 上很多服务不是 24 小时都有人用的,比如某个电子书管理器、某个开发工具栈、某个偶尔才打开的图片处理服务。这些容器空转时也在吃内存和电。GoDoxy 可以在没有流量时把容器停掉,等下一次请求进来再唤醒。对内存只有 16GB 的家用 NAS 来说,这种”用的时候才醒”的机制很实用。
安装与基本用法
官方推荐用一键脚本部署:
/bin/sh -c "$(curl -fsSL https://raw.githubusercontent.com/yusing/godoxy/main/scripts/setup.sh)"
docker compose up -d
脚本会生成 compose.yml、.env 和 config/config.yml。需要提前做的是把 *.yourdomain.com 的泛域名 A 记录指向运行 GoDoxy 的机器。
官方强调 GoDoxy 设计为 host 网络模式 运行,不要改成 bridge,否则它监听端口和发现容器的方式会出问题。如果想改监听端口,改 .env 而不是改网络模式。
一个典型服务的 compose 写法大概是这样:
services:
qbt:
image: lscr.io/linuxserver/qbittorrent
container_name: qb
labels:
- "proxy.aliases=qbt"
networks:
- default
GoDoxy 会自动用 proxy.aliases 作为子域名,没写的话就用 container_name。HTTPS 证书走 Let’s Encrypt,支持 DNS-01 自动续期。
WebUI 里能看到什么
面板主要分几块:
- Apps:服务总览, uptime、CPU、内存、磁盘、网络,一行一个;
- Routes:每个路由的健康状态、响应时间、日志流;
- Servers:多节点监控,CPU/内存/磁盘 IO 的趋势图;
- Settings:全局配置、证书、中间件、访问控制。


对家用环境来说,这个面板的信息密度刚刚好。不用单独再装一个 Uptime Kuma 或者 Beszel 看健康状态,虽然深度监控肯定不如专业工具,但日常判断”是不是这个服务挂了”足够。
Idle Sleeper 是亮点,但也有条件
Idle Sleeper 的逻辑是:GoDoxy 代理层持续统计每个路由的流量,当一段时间内没有请求时,调用 Docker API 停止容器;下一次有请求进来时,先把容器启动,等健康检查通过再转发流量。

这个功能适合的场景:
- 启动时间不长的服务(几秒到几十秒);
- 不需要高可用、偶尔访问的内部工具;
- 内存紧张,想尽量少跑容器的机器。
不太适合的场景:
- 对首包延迟敏感的服务,唤醒那几十秒会有人明显感觉到;
- 数据库、消息队列这类有状态核心服务;
- 健康检查配置不对的服务,唤醒后可能一直报错。
v0.30.0 还把默认唤醒超时从 30 秒提到了 3 分钟,说明作者也意识到有些服务启动没那么快。实测时建议先把超时调大,再观察日志。
几个需要注意的坑
1. Host 网络是硬要求
GoDoxy 不是简单”建议”用 host 网络,而是很多功能依赖它。如果你习惯给所有容器配 bridge + 端口映射,这里要改思路。
2. 目前只支持 Linux
官方明确只支持 Linux amd64 / arm64。Mac 用户想本地试,只能跑在虚拟机或远程 Linux 里。
3. 泛域名证书需要 DNS-01
如果你要用 Let’s Encrypt 的通配符证书,必须配置 DNS 提供商的 API。HTTP-01 只能签发单域名。
4. Proxmox 集成要权限
想从 WebUI 启停 LXC,GoDoxy 需要能连上 PVE API 并有对应权限。家用小环境可能还得额外配一个 API Token。
5. 项目还在快速迭代
v0.30.x 相比 v0.29 改动不小,Proxy Protocol、Idlewatcher、API 初始化顺序都有调整。生产用之前建议先看 release note,避免升级后配置失效。
和同类工具怎么选
| 工具 | 适合谁 | 短板 |
|---|---|---|
| Nginx Proxy Manager | 只想点鼠标就能反代的人 | 不够自动化,服务多后重复劳动多 |
| Traefik | 云原生、K8s 用户 | label 复杂,调试体验一般 |
| Caddy | 喜欢简单配置文件的极客 | 生态插件要自己维护 |
| GoDoxy | 自托管玩家、多容器 NAS、Proxmox 用户 | 较新,文档还在完善,Mac 不支持 |
如果你家里有一台 NAS、几台 LXC、十几个容器服务,GoDoxy 的”自动发现 + 面板 + Idle Sleeper”组合确实比传统方案更省心力。但如果你只是反代一两个服务,NPM 或 Caddy 反而更稳。
我的结论
GoDoxy 不是 Traefik 的替代品,更像是一个”自托管场景的专用网关”。它把路由发现、证书、监控、省电集成在一个面板里,降低了多服务家庭的维护成本。
我打算先在测试环境里跑两周,重点观察 Idle Sleeper 对常用服务的延迟影响,以及多节点场景下路由同步是否稳定。如果没问题,再把它切到主 NAS 上。对同样在家折腾一堆容器的人来说,这个项目值得关注。