玩多台服务器、自建 Homelab 的朋友,大多都有这样的烦恼:每台机器的 Docker 容器要单独管理,监控、镜像更新、状态查看分散在不同面板里,来回切换十分麻烦。Portainer、Dockge 虽然好用,但在多机统一管控、一站式监控告警上有所欠缺。
今天给大家分享的 Komodo 就是一款专为 Homelab 打造的开源运维面板,采用主控 + 代理的架构,只需要部署一套 Core,再在各台服务器安装 Periphery 代理,就能把所有主机的 Docker 容器集中纳管。它同时集成容器监控、镜像更新检测、服务告警、部署管理能力,不用堆砌一堆监控组件,一个面板搞定多机容器运维。
本文带来完整 Docker 部署教程,从安装配置、添加多主机、监控查看、自动更新设置一步步演示,上手门槛低,适合想统一管理多台 Docker 主机的玩家。
1.Komodo是什么?
Komodo是开源自托管、Rust编写的多服务器Docker管理 + CI/CD部署平台(GPL-3.0),定位介于Portainer/Dockge和K8s之间,适合自建服务器集群、homelab、小团队,一套面板统一管多台机器Komodo。 架构是Core + Periphery:
- Core:中控面板、网页 UI、数据库、API;
- Periphery:轻量代理,装在每一台被管理的服务器上,负责执行docker命令、采集监控、接收Core下发任务GitHub。
✅ 核心功能
- 多服务器统一监控:一台面板查看所有机器CPU、内存、磁盘,支持阈值告警、网页终端直连服务器 / 容器shell,看日志Komodo
- 容器 & Compose 栈管理:单容器Deployment、compose Stacks,支持Git仓库自动拉取部署(GitOps),也支持Docker Swarm集群管理Komodo
- 内置镜像构建:从Git仓库 / UI内Dockerfile自动打包镜像,推送到镜像仓库,支持定时构建、AWS Spot实例弹性构建
- 自动化流程(Procedures):编排多步骤任务,定时执行、触发执行,比如打包→推送→重新部署,自带完整操作审计日志Komodo
- 权限控制 RBAC:分组、细粒度资源权限,适合多人协作;自带CLI、OpenAPI,方便对接自己脚本Komodo
🆚 和其他面板区别
- ServeDash:单主机轻量看板,主打监控、镜像更新提醒、日志,功能简单,不支持跨服务器、没有CI构建;
- Portainer:老牌容器面板,支持多机,但CI/CD、GitOps、自动化编排弱;
- Komodo:重点是跨服务器调度 + 自带 CI/CD+GitOps,不是单纯 “看容器状态”,可以做完整发布流水线,一台中控管几十台VPS / 机器,复杂度更高,能力更强servorbit….
✅ 优缺点
优点
- Rust写的,占用资源低,Core空闲内存很小;
- 原生支持 GitOps,compose配置放Git,版本管理;
- 支持Docker Swarm,一套面板兼顾单机 compose、多机集群;
- 加密通信,agent可以主动向外连接Core,适合内网机器、NAT环境;
- 全量审计日志,谁什么时候改了什么、部署了什么都有记录servorbit….
缺点
- 上手门槛比ServeDash/Dockge高,概念多(Core/Periphery/Stack/Build/Procedure);
- 架构复杂,需要维护中控 + 每台机器agent;
- 适合多服务器场景,只单台机器玩,会显得很重。
🧑💻 适合谁
自托管玩家、homelab多机党、小开发团队,不想折腾K8s,但又需要统一管理多台VPS、自动打包发布服务。搭配cpolar,把Core面板暴露外网,在外随时管理所有服务器容器和发布流水线。
📌 一句话总结
Komodo不只是一个Docker看板,它是一套自建的发布中控。一台面板接入多台服务器,既能监控容器、在线操作,还能自动拉Git代码、打包镜像、按流程自动部署,想要多机统一管理 + 简易 CI/CD,不想上K8s,它就很合适。
2.安装前提条件
2.1ssh远程连接到飞牛
- 开启【SSH服务】
- 使用终端(Windows PowerShell / Mac Terminal)登录:
在设置—>SSH中开启SSH服务:
2.2验证docker是否开启
使用命令:
docker -v
systemctl status -v
也可以直接在飞牛主页查看(其他机器也是这样的哦~)
3.安装Komodo
创建存放docker配置文件的文件夹:
mkdir -p /docker/Komodo
cd /docker/Komodo
vi /docker/Komodo/docker-compose.yml
services:
mongo:
image: mongo
labels:
komodo.skip: ""
command: --quiet --wiredTigerCacheSizeGB 0.25
restart: unless-stopped
volumes:
- mongo-data:/data/db
- mongo-config:/data/configdb
environment:
MONGO_INITDB_ROOT_USERNAME: ${KOMODO_DATABASE_USERNAME:-admin}
MONGO_INITDB_ROOT_PASSWORD: ${KOMODO_DATABASE_PASSWORD:-StrongPass123}
core:
image: ghcr.io/moghtech/komodo-core:2
init: true
restart: unless-stopped
depends_on:
- mongo
ports:
- 9120:9120
env_file:
- .env
environment:
KOMODO_DATABASE_ADDRESS: mongo:27017
volumes:
- keys:/config/keys
- ${COMPOSE_KOMODO_BACKUPS_PATH:-/etc/komodo/backups}:/backups
periphery:
image: ghcr.io/moghtech/komodo-periphery:2
init: true
restart: unless-stopped
depends_on:
- core
env_file:
- .env
volumes:
- keys:/config/keys
- /var/run/docker.sock:/var/run/docker.sock
- /proc:/proc
- ${PERIPHERY_ROOT_DIRECTORY:-/etc/komodo}:${PERIPHERY_ROOT_DIRECTORY:-/etc/komodo}
volumes:
mongo-data:
mongo-config:
keys:
新建compose.env(重点!改密码)
COMPOSE_KOMODO_IMAGE_TAG=2
COMPOSE_KOMODO_BACKUPS_PATH=/etc/komodo/backups
KOMODO_DATABASE_USERNAME=admin
KOMODO_DATABASE_PASSWORD=改成强密码
TZ=Asia/Shanghai
KOMODO_LOCAL_AUTH=true
KOMODO_INIT_ADMIN_USERNAME=admin
KOMODO_INIT_ADMIN_PASSWORD=改成面板密码
KOMODO_FIRST_SERVER_NAME=local-server
PERIPHERY_CONNECT_AS=local-server
PERIPHERY_ROOT_DIRECTORY=/etc/komodo
两个密码不要一样,记好面板账号密码:
admin / 你设置的KOMODO_FIRST_USER_PASSWORD
启动:
docker-compose up -d
部署完成后,在浏览器中输入 http://飞牛IP:9120 就能看到komodo的界面:
4.安装komodo
Komodo 控制面板的仪表盘页面中,服务器统计显示有 1 台健康节点,local-server 状态正常,成功连通,告警清零,代表经过调整配置后,服务端和 periphery 节点已经顺利建立连接,服务器就绪,可以正常使用部署、容器管理等相关功能了。
Komodo 的容器管理页面,所有容器都运行在 local-server 节点上,drydock、ghostfolio 套件、Komodo 核心与 periphery、PgHero、ServeDash 等全部容器状态均为 RUNNING,说明整套服务已经正常拉起,可在面板中统一查看、管理本机上的各类 Docker 容器。
Komodo 面板的 Terminals 终端管理页面,当前暂无已创建的终端会话,点击 New Terminal 后弹出新建终端表单,支持选择服务器、填写终端名称、自定义执行命令,可在 web 端直接在目标服务器上创建交互式终端,方便远程执行命令、排查问题,实现不用 SSH 工具就能操作服务器。
Komodo 的系统监控 Stats 页面,当前仅一台 local-server 节点正常连通,页面汇总展示整机资源指标:CPU 使用率 9.74%、内存使用率 64.21%(1.2GB/1.9GB)、磁盘使用率 87.14%(327.3GB/375.6GB),下方配有 5 分钟粒度的历史负载、CPU、内存、磁盘趋势图表,能够直观查看服务器的资源占用变化。
Komodo 面板的 Swarms 管理页面,页面用于管控和监控 Docker Swarm 集群,当前还没有创建任何 Swarm 集群,点击 New Swarm 后弹出新建弹窗,需要输入唯一的集群名称,填写完成后点击 Create 即可创建,适合后续编排、管理 Docker Swarm 集群服务。
Komodo 面板的 Stacks 页面,该模块用于部署 Docker Compose 编排文件,当前暂无堆栈项目,点击 New Stack 后弹出新建窗口,需要填写唯一堆栈名称并选择目标服务器,完成信息填写后点击 Create 即可创建堆栈,后续可以导入 compose 配置来批量部署一组关联容器。
Komodo 面板的 Deployments 部署页面,该模块用来部署独立容器与 Swarm 服务,当前暂无部署任务,点击 New Deployment 弹出新建弹窗,需要填写唯一的部署名称并选择目标服务器,填好信息后点击 Create 即可创建,适合单独发布单个容器或者 Swarm 服务。
Komodo 面板的 Builds 页面,该模块用于构建容器镜像,当前还没有创建构建任务,点击 New Build 弹出新建窗口,需要填写唯一的构建名称并选择构建器,信息填写完成后点击 Create 即可创建构建任务,支持在线基于 Dockerfile 打包镜像。
Komodo 面板的 Repos 页面,该模块用于配置 Git 代码仓库,当前暂无仓库记录,点击 New Repo 弹出新建弹窗,需要填写唯一的仓库名称,输入完成后点击 Create 即可创建仓库,后续可绑定 Git 地址,实现代码拉取、自动构建与部署联动。
Komodo 面板的 Procedures 流程编排页面,用于串联调度多个 Komodo 执行任务,页面内自带三条系统预置流程:核心数据库备份、全局自动更新、服务器密钥轮换,状态均为 OK,并且设置了对应的定时执行时间,支持新建自定义流程、手动执行、标签筛选与模板过滤。
Komodo 面板的 Alerts 告警页面,用来查看历史告警记录,列表里有两条来自 local-server 的告警,一条是内存告警 ServerMem(WARNING 警告级别,已解决),另一条是服务器不可达 ServerUnreachable(CRITICAL 严重级别,已解决),页面支持按资源类型、告警类型筛选,还可以切换只看未关闭告警与分页查看。
Komodo 面板的 Updates 页面,用于查看资源变更历史记录,列表展示了服务器、流程、构建器等资源的操作记录,包含创建服务器、创建流程、创建构建器、更新服务器等操作,所有执行结果均为 SUCCESS,操作人分为 admin 和 System,附带操作起始时间,支持按资源类型、操作类型筛选和分页查看。
Komodo 面板的 Schedules 定时任务页面,用于统一查看所有定时执行的动作与流程,列表包含三条系统预置任务:核心数据库备份(每日 01:00)、全局自动更新(每日 03:00)、服务器密钥轮换(每日 06:00),全部处于启用状态,标注 system 标签,同时展示了下次执行时间,支持标签筛选与搜索。
Komodo 设置里的 Onboarding 主机接入密钥页面,用于管理服务器接入密钥,页面顶部展示 Komodo 公钥,列表内有 3 条接入密钥,支持配置模板、标签、特权权限、是否自动创建构建器,全部为启用状态且都设置了过期时间,右上角支持新建接入密钥。
Komodo 是一款轻量开源的服务器编排与自动化运维平台,搭配 cpolar 内网穿透可以把本地内网里的 Komodo 管理面板安全暴露到公网,无需公网 IP、不用配置路由器端口映射,在外网就能随时访问、管理服务器、查看告警、执行定时备份与自动更新流程,同时 cpolar 支持自定义域名、鉴权保护,兼顾远程运维便捷性与访问安全。
5.安装cpolar实现随时随地开发
5.1 什么是cpolar?
cpolar是一款安全高效的内网穿透工具,无需公网IP或复杂配置,只需一条命令,即可将本地服务器、Web服务或任意端口映射到公网,让你随时随地远程访问内网应用,特别适合开发调试、远程运维和应急部署等场景。
5.2 部署cpolar
cpolar可以将你本地电脑中的服务(如SSH、Web、数据库)映射到公网。即使你在家里或外出时,也可以通过公网地址连接回本地运行的开发环境。
❤️以下是安装cpolar步骤:
使用一键脚本安装命令:
sudo curl https://get.cpolar.sh | sh
安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)
sudo systemctl status cpolar
Cpolar安装和成功启动服务后,在浏览器上输入虚拟机主机IP加9200端口即:【http://ip:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:
打开浏览器访问本地9200端口,使用cpolar账户密码登录即可,登录后即可对隧道进行管理。
6.配置公网地址
登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:
- 隧道名称:可自定义,本例使用了:Komodo,注意不要与已有的隧道名称重复
- 协议:http
- 本地地址:9120
- 域名类型:随机域名
- 地区:选择China Top
创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了公网地址,接下来就可以在其他电脑或者移动端设备(异地)上,使用地址访问。
访问成功。
7.保留固定公网地址
使用cpolar为其配置二级子域名(cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站),该地址为固定地址,不会随机变化。
点击左侧的预留,选择保留二级子域名,地区选择china Top,然后设置一个二级子域名名称,我使用的是Komodo,大家可以自定义。填写备注信息,点击保留。
登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑。
修改隧道信息,将保留成功的二级子域名配置到隧道中
- 域名类型:选择二级子域名
- Sub Domain:填写保留成功的二级子域名
- 地区: China Top
点击更新
更新完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。
最后,我们使用固定的公网地址在任意设备的浏览器中访问,可以看到成功访问的页面,这样一个永久不会变化的二级子域名公网网址即设置好了。
总结
本文为 Komodo 完整部署教程,基于 Core+Periphery 架构,实现多台主机 Docker 统一纳管,支持容器、堆栈、Swarm 集群管理、资源监控与告警、浏览器终端、镜像自动更新,还可配置 Procedures 流程与定时任务,完成数据库备份、密钥轮换等自动化运维;搭配 cpolar 内网穿透,无需公网 IP 即可在外网安全访问 Komodo 面板,一站式完成多机容器运维、监控告警与自动化调度。
感谢您对本篇文章的喜爱,有任何问题欢迎留言交流。cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站





































