比lukcy更好?全自动docker反代/监控/安全/导航!极空间教程
新发现的神器!一个端口搞定全部docker反代和单点登录,自带发现容器、导航面板。
大家好,这里是Cherry,喜爱折腾、玩数码,热衷于分享数码玩耍经验~
最近,在github又发现一个好东西——GoDoxy。它是一款轻量级、简单且高性能的 WebUI 反向代理工具。不过这玩意儿没有中文名,根据GoDoxy,我就给取了个「搞东西」的“信雅达"名称,大家权当看个乐儿。
不同于目前主流的反代工具,GoDoxy具有如下几个特点,真的可以说是八项全能!唯一的缺点就是英文界面,不过用上浏览器翻译,那是毫无问题。
项目地址(值得star):github/yusing/godoxy
项目特点:
1.读取docker.sock,并自动发现所有容器入口。
2.通过一个域名,将所有容器反代,支持SSO单点登录。
3.支持多节点部署。
4.支持ACL访问控制,支持国家、时区、IP的访问策略。
5.自动化更新SSL证书。
6.拥有容器状态和流量监控。
7.支持HTTP/HTTPS/TCP/UDP反代和端口转换。
8.自动生成容器导航栏。
9.支持X86和ARM架构。

一、项目部署
1、配置域名
这里先说一下GoDoxy的逻辑,它不同于寻常的反代工具,让我们自定义一个三级域名:端口的形式来访问,它是一套全自动的反代工具,有点类似一个SSO,在所有容器前自动加一层代理面板。
互联网通过访问我们设置的GoDoxy域名,来访问所有的容器服务,并且我们只需要透出GoDoxy的一个HTTPS端口,就可以实现所有器的访问,生成的容器域名是容器名.domain.exm:端口
PS.部分容器涉及到URL后缀的,需要手动增加后缀,比如blossom。

因此,我们需要先创建一个DNS解析,解析到下面两个域名。其中泛域名是用于容器访问使用,而GoDoxy域名是用于WebUI登录。
1️⃣泛域名: *.domain.top
2️⃣GoDoxy域名:godoxy.domain.top ——前缀可改
这里,很多人不喜欢godoxy这个域名前缀,这是可以改的,不过改了以后需要去修改根目录下的.env文件。
首先,下载最新exe格式的压缩包解压,然后把生成的文件夹丢到极空间的个人空间里。建议采用常规的/路径/docker/项目的方式来管理。
打包:
夸克:/s/27fcaa38eb67

🔻修改.env文件第72行,这里的参数GODOXY_FRONTEND_ALIASES改成你自己设置的域名前缀即可。

🔻修改.env文件第52、53行,这里是我改的应用访问端口,也可以根据自己的情况修改。

接着打开极空间的DDNS服务,根据自己的需要配置对应的DNS解析服务。

这里以阿里云为例,点击上方蓝字登录阿里云获取Key和Secret,然后在下方增加前面提到的两个域名,保存并更新即可。

2、配置文件
接着使用极空间的文本编辑器打开目录/godoxy/config/config.yaml文件,主要修改红框内的两个地方(二选一)。

本地证书: 即我上面未注释的部分,放你的GoDoxy域名申请下来的本地证书,在/godoxy/certs/目录下,然后在红框内的key_path和cert_path里的XXXX替换成文件名。(可选)建议使用通配符证书,确保都可以打开域名。缺点是非自签的,3个月要换一次。
autocert:
provider: local
key_path: certs/更名.key
cert_path: certs/更名.crt

Cloudflare证书:下方大红框内的配置,需要填写你的Cloudflare邮箱账号、域名信息以及auth_token。没啥缺点,首选建议。
autocert:
provider: cloudflare
email: abc@gmail.com # 邮箱账号
domains: # 填写你的域名列表
- "*.domain.com"
- "domain.com"
options:
auth_token: 填写Couldflare API Key
Cloudflare Api Token获取方式如下,打开个人配置文件,选择API令牌——创建令牌——自定义令牌。在自定义令牌里,增加SSL和证书的权限保存。

令牌只会出现一次,记得保存好备用,否则只能下次更新替换了。

3、启动容器
打开极空间docker应用,选择Compose标签,新建项目godoxy,在添加方式里选择从本地导入,然后选择目录下的compose.yaml文件。

导入以后,我们需要修改所有的环境变量所在位置,点击上方的查询路径按钮,复制godoxy文件夹所在的目录路径。

将代码中所有的【极空间路径】中文,替换成复制下来的极空间路径,并创建Compose。

如果启动后,发现子容器godoxy一直重启,那么看一下容器的GODOXY_GID和GODOXY_UID两个环境变量是不是0,如果不是的话手动编辑一下改成0即可。

二、GoDoxy简介
GoDoxy部署完成以后,原则上我们就可以关闭所有非GoDoxy的容器端口了,因为GoDoxy会统一读取docker.sock,并且将所有容器进行反代。
直接打开域名https://godoxy.你的域名.你的后缀:38843登录系统,输入账号密码cherry/cherry登录。
🔻初始密码,可以在.env的25、26行修改。

下面的图片是系统首页,这里展示了宿主机内的所有创建的容器,包括停止和运行中的。
并且根据项目内设的规则进行了分类,包括容器管理、媒体、下载、普通docker等。

这里所有自动发现的容器都是可以点击的,并且已经反代完成。将鼠标移动到容器前面的名字上,可以看到浮窗里会显示反代后的URL。

切换到Config Editor界面,这里是对容器内/config/config.yaml文件的配置。这样我们就不需要去NAS里修改了,直接可以在页面上修改。
比较重要的配置包括ACL策略(即黑白名单,支持地区、国家、IP等);PVE控制接入;远程Docker管理;通知;域名匹配等。内容比较多,就不一一介绍了,感兴趣的可以去官方网站研究。

Proxies页面展示的所有自动发现的容器,以及它们的端口、状态、启动时间、网络延迟等,只是一个展示。

Metrics则是所有容器的服务监控。

Docker里是所有容器的列表展示,点开单个容器可以看到具体的容器日志。由于GoDoxy是支持接入远程docker.sock的,所以理论上可以多节点管理任何网络可达的Docker,真正成为时间管理大师。

总结
这个项目我折腾了有一段时间,因为作者设置了很多安全的参数,缺少一个系统可以启动,但是无法登录也没有报错,加上自己的英文能力不太行,所以可以说是一边摸索一边询问,最后也在作者的帮助下顺利完成了项目部署。
整体体验下来,这一套反代工具,集成了安全登录、反代、容器发现、导航面板、容器监控、日志查看、远程容器管理等等功能,不可谓不强大!
搭配极空间的DDNS服务、自带浏览器,可以解决我们绝大多数的容器外网访问安全问题,让NAS深度玩法得到更多的保障!
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

大码垃圾佬
校验提示文案
啦啦我最那啥
校验提示文案
老食芭蕉该6子
校验提示文案
最合适的就是最好的
校验提示文案
值友皮皮
校验提示文案
yoyomomomo
校验提示文案
值友4986583983
校验提示文案
喜之蓝
校验提示文案
cloud雨
校验提示文案
张大妈姓张
校验提示文案
菠萝包仔仔
校验提示文案
喜之蓝
校验提示文案
灵KOYB
校验提示文案
张大妈老公公
校验提示文案
牛掰
校验提示文案
圖圖团
校验提示文案
值友4398086287
校验提示文案
值友4398086287
校验提示文案
蛙中之蛙
校验提示文案
星柯
校验提示文案
梧桐岗
校验提示文案
值友4788212237
校验提示文案
lyls
校验提示文案
上帝给了脑壳却没脑子
校验提示文案
zhanghm110
校验提示文案
灵KOYB
校验提示文案
值友5711275707
校验提示文案
喜之蓝
校验提示文案
该昵称可以使用
校验提示文案
菠萝包仔仔
校验提示文案
啦啦我最那啥
校验提示文案
值友4369565210
校验提示文案
张大妈姓张
校验提示文案
最合适的就是最好的
校验提示文案
昆山土狼
校验提示文案
cloud雨
校验提示文案
星柯
校验提示文案
蛙中之蛙
校验提示文案
喜之蓝
校验提示文案
值友4398086287
校验提示文案