
一次服务器维护引发的连锁灾难:我如何重建 Dokploy + Traefik 架构
记录一次由服务商维护引发的连锁故障,误删 Traefik 导致的全面瘫痪,以及如何通过重建控制层实现更稳健的远程部署架构。
最近经历了一次非常特殊的事故,值得写下来给后来者踩坑前参考。
事情的起因非常简单:美国服务器因为服务商维护重启。
结果重启之后,Dokploy 下的部分项目开始异常:
- 域名 404
- SSL 报错
- 容器能跑但不对外服务
在焦虑下,我犯了一个严重错误:
我手动删除了原本 Dokploy 自动管理的 Traefik。
没想到这一删,直接导致几十个项目一夜之间全部失联。

第一阶段:手动救火,但越救越乱
为了先把业务救起来,我快速手动启动了一个 Traefik,并开始为每个服务写路由配置。
短期效果还行,部分项目能访问了。但很快问题开始滚雪球:
- 多端口应用(比如 MinIO 9000/9001)难以保持一致
- 复杂服务(Plausible、ClickHouse)反向代理配置越来越乱
- 每修一个配置都会引发新的网络问题
- 整个系统变成一堆补丁
说白了:手工 Traefik 完全不是 Dokploy 的设计方式,补丁越打越烂。
第二阶段:决定彻底重建控制层
折腾一天后我下定决心:
- 所有业务的数据卷必须保留
- 所有 UI 配置重新整理
- Traefik 要回到 Dokploy 官方模式
- 整个 PaaS 控制层重建,但业务不动
为了降低风险,我选择:用香港服务器作为新的 Dokploy 控制面板(控制端),再用它远程部署到美国服务器(执行端)。
这样结构更干净,未来也更能扩展。

第三阶段:打通远程部署链路
我在香港服务器生成 SSH Key:
ssh-keygen -t ed25519 -C "dokploy-from-hk" -f ~/.ssh/dokploy_hk把公钥加入美国服务器的 authorized_keys:
cat ~/.ssh/dokploy_hk.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys在香港 Dokploy 中添加私钥,并新建 Remote Server。测试连接成功的那一刻,我知道远程部署的基础设施已经到位。

第四阶段:完整重装美国 Dokploy
这一步最关键的是只删服务,不删数据。
删除旧的 Dokploy 服务:
docker service rm dokploy dokploy-traefik dokploy-postgres dokploy-redis删除 Dokploy 自己的数据卷(不删除业务卷):
docker volume rm dokploy dokploy-postgres dokploy-redis dokploy-docker-config然后重新安装:
curl -sSL https://dokploy.com/install.sh | sh官方 Traefik 跟着一起恢复。整个入口层总算恢复到「可维护的状态」。
第五阶段:逐个重建项目配置
我把所有项目的 UI 配置重新录入香港 Dokploy:
- Git 仓库
- Build 设置
- 环境变量
- 域名配置
- 端口
- 数据库连接
然后切换部署目标为 美国服务器 → 点击 Deploy。
Dokploy 会自动执行:SSH 到美国服务器 -> 构建镜像 -> 创建 Swarm 服务 -> 自动写 Traefik 路由。
这比我手动折腾 Traefik 不知干净多少倍。

第六阶段:MinIO 数据恢复
第一次部署 MinIO 后,我发现:所有桶消失了。
我以为数据没挂对,于是检查 volume:
docker inspect <minio容器> | grep Source发现真正的历史数据卷不是我以为的那个,而是:aluo-minio-ttmwjm_minio-data-aluo-minio-ttmwjm。
修改 compose 挂载正确的卷后重启——所有桶和文件重新出现。
这一步真的像掂着心跳在做,但结果非常完美。
最终结果
几小时的折腾之后:
- 所有项目恢复正常
- 所有数据完好无损
- Traefik 回到健康状态
- UI 配置集中管理到香港服务器
- 美国服务器变成干净的部署节点
- 整个部署链条比过去更强、更稳、更易维护

教训与建议
最后总结几点:
- 永远不要手动删除 Dokploy 的 Traefik:这是系统入口,动它等于断电。
- 数据卷是生命线,务必保护好:有卷就能复活。
- 使用 Remote Deploy:这才是 Dokploy 管理多台服务器的正确姿势。
- 越乱越不能急:删 Traefik 就是典型"心急误伤队友"。
- 备份配置信息:环境变量、域名配置、数据库连接等信息要有备份。
- 分层架构的价值:控制面板和执行节点分离,让系统更加健壮。
结语
这次故障虽然带来了不少麻烦,但也让我对 Dokploy 的架构有了更深的理解。通过将控制面板和部署节点分离,不仅解决了眼前的问题,也为未来的扩展打下了更好的基础。


