跳转到内容

插件系统

Web.Casa 采用模块化插件架构。每个主要功能都是一个插件,在启动时注册,可独立启用、禁用、安装或卸载。

Web.Casa 内置 12 个插件:

插件说明
Docker容器、镜像、网络和卷管理
Deploy基于 Git 的项目部署和构建流水线
AILLM 集成和聊天助手
DatabaseMySQL、PostgreSQL、Redis 管理
Monitoring实时 CPU、内存、磁盘、网络指标和告警
Backup基于 Kopia 的备份与恢复
App Store从目录一键安装 Docker 应用
File ManagerWeb 文件浏览、编辑和管理
FirewallFirewalld 区域、端口、服务和富规则管理
PHPPHP-FPM 和 FrankenPHP 运行时管理
MCP ServerModel Context Protocol 服务器,用于 AI 工具集成
Cron Job定时任务管理

在插件设置页面:

  1. 查看所有可用插件及其当前状态
  2. 启用插件以激活其功能
  3. 禁用插件以停用功能但不删除数据

注意: 部分更改需要重启 Web.Casa 才能生效。界面会在需要重启时提示。

  • 安装 — 下载并注册插件
  • 卸载 — 移除插件及其关联数据

插件之间可能存在依赖关系。例如:

  • App Store 插件依赖 Docker
  • AI 插件可能依赖 Docker 和 Deploy 以实现完整功能

Web.Casa 自动管理依赖:

  • 无法禁用其他已启用插件所依赖的插件
  • 启用有依赖的插件时会提示先启用所需插件

每个插件可以独立于启用/禁用状态,单独控制是否在侧边栏导航中显示或隐藏。这让你可以在后台保持插件活跃而不使侧边栏过于拥挤。

所有插件实现包含生命周期方法的标准接口:

方法用途
Metadata()返回元数据:名称、版本、描述、依赖
Init()启动时注册路由、事件处理器和数据库表
Start()启动后台进程(采集器、调度器、监视器)
Stop()应用停止时清理关闭

事件总线是插件间通信的核心:

  • 插件发布事件(如 container.started、host.created、backup.completed)
  • 插件订阅其他插件或核心系统的事件
  • 插件间无直接依赖 — 通信完全解耦

示例流程:

  • 监控插件订阅 Docker 事件以跟踪容器生命周期
  • 通知插件订阅告警事件以发送 Discord/Telegram 消息
  • AI 插件订阅部署事件以提供诊断建议

每个插件拥有独立的配置存储(ConfigStore):

  • 读写设置不会与其他插件冲突
  • 设置可通过 Web.Casa 设置界面管理
  • 简洁的键值接口 — 无需直接访问数据库

插件通过 CoreAPI 访问共享系统服务:

  • 数据库连接和迁移工具
  • 认证中间件
  • WebSocket 管理器用于实时推送
  • 事件总线用于发布和订阅
  • 日志记录器用于结构化日志