OpenPanel 是一个简洁又强大的统计分析平台,Zeabur 是一个支持混合云的自动化部署平台。 最近团队分享了通过 Zeabur 来部署 OpenPanel 使用的体验,然而现有的模版有点问题,很多小伙伴尝试时都出错了。
这篇文章就详细的记录一下,如何解决碰到的问题,成功开始使用。
首先要说明的是,感谢这个模版的作者无私奉献,让大家能便捷的进行部署。 过程中遇到的错误,很可能是后续更新过程中发生了变化,并非是模版写的不好。
下面直接开始。按顺序记录碰到的问题和解决方式。
0. 开始部署
选择了可能出问题最多的可用区:华为云上海(因为国内镜像问题),输入模版要求的一个管理邮箱,点击部署。
1. 服务镜像拉取失败
在测试时(25年11月11日晚九点)默认情况下所有服务都拉取失败了。
应该是默认配置的地址都被墙了。
解决:先把常用的服务(Caddy, Redis, Postgres, Clickhouse)更换为自带的镜像源,在设置里选择后保存,稍等下会自动重新部署。UI更新会延迟一下,不要着急,服务状态多切换看看。
为什么先换这几个呢?因为官方提供的源里有,直接选择就行。
2. PG 更换镜像后崩溃
看日志发现是挂载硬盘有问题,如下图。一般碰到问题都先看下日志,能确认到底是哪个步骤出问题了。
解决:尝试重新挂载无效,备份整个环境变量后直接删了,重新部署一个PG(有官方模版),版本改为 14 保持一致。完成后把环境变量覆盖回去。
3. Clickhouse 没有给镜像
解决:其实官方是有给的,模版里带的版本号有点老,把弹框里版本号那一栏清空就有了。列表里选个最近的就行。
4. 更新 OpenPanel 的镜像
前面四个常用服务都更新镜像后,应该能正常跑起来了。这时候发现 OP(OpenPanel) 的三个服务官方源里没有提供。 可能是因为不太常见。
解决:找个国内能用的镜像源,比如 docker.1ms.run,在里面搜索 OP 服务的镜像名称,然后把地址粘贴过来,保存。等会就自动重新部署了。
OP 的三个服务:api,dashboard 和 worker 都如此更新。
5. 绑定访问域名
项目有 Caddy 作为统一的流量入口,所以把域名绑定在这个服务下面。
注意:国内大陆的可用区需要通过 ICP 备案的域名,否则无法访问。完成后记得修改该服务环境变量中的 OPENPANEL_PUBLIC_URL 为该域名。
这个域名就是部署完后,访问控制台的域名。统计端点是子路径 /api 。
6. OP-api 服务更新后崩溃
依然是查看日志,发现是解析 URL 时出错了。虽然上一步中已经有全局的环境变量,但经过测试发现没读取到。
解决:直接把 api 服务的环境变量中包含 OPENPANEL_PUBLIC_URL 的全部修改为前面绑定域名的硬编码。保存后重启服务。
7. 访问控制台报错 500
这里有点小坑,分别查看日志后发现,请求还没有转发到 dashboard 服务上。 查看 Caddy 服务的配置文件,应该是没有读取到环境变量,也需要把引用改成硬编码。
解决:在 Caddy 服务设置页的 配置,Open Config Editor 打开的配置文件中替换如下,保存后重启服务。
|
|
两个服务的子域名是 zeabur 自动生成的,可以在对应服务的网络设置中检查确认下。
8. 访问正常
现在重新访问绑定的域名,就可以正常使用啦。撒花🎉
第一个注册的账号是管理员账户。后续如果要发送邀请邮件,需要在环境变量中补充 RESEND_API_KEY。 更多诸如此类的细节可参考官方的自托管文档。
后记:群里讨论这个部署问题的时候,也提到了租赁服务器和按量付费的两种模式。 前者在量大的时候价格更优惠,但容易造成浪费。后者在前期很便宜灵活,但使用量上来后价格很高。 个人认为这两种模式的混合使用应该是未来的趋势。
比如我们的实践中,就把除了 Clickhouse 外的其他服务都部署在一台服务器上,而数据库单独按量付费。 这样做的好处就是,既节省了成本,又能在流量爆发时让数据库自动扩容,也方便单独备份维护。
最后感叹一下开源和 Zeabur 这样的服务,真是让新世界触手可及,感谢你们的奉献🫡