一个轻量级定时任务管理系统,基于 Go 和 Vue 3 构建,支持 Docker/Compose 部署,内置 Python3、Node.js 和 Bash 环境,开箱即用。
项目 GitHub 地址:https://github.com/engigu/baihu-panel
在线 Demo 体验地址:https://baihu-demo-site.qwapi.eu.org/

项目背景
- 项目的开发初衷与大家熟知的青龙面板有关。开发者在使用中发现,青龙面板在资源消耗方面表现不尽如人意。例如,在一台 1C2G 配置的服务器上,一个简单的 Python
requests 脚本如果设置为每 30 秒执行一次,其 CPU 占用率在执行时可能会飙升到 50% 以上。
- 为了追求更低的资源占用和更高的执行效率,baihu-panel 应运而生。在相同的定时任务场景和执行代码下,baihu-panel 的 CPU 占用率峰值通常能控制在 20% 以内,表现更为轻量。
项目特点
- 轻量部署:提供 Docker 及 Docker Compose 部署方案,无需复杂的配置即可快速启动。
- 高效调度:支持标准的 Cron 表达式调度,并提供常用时间规则的快捷选择。任务日志不直接写入文件,有效避免了磁盘的频繁 I/O 操作。
- 便捷脚本管理:内置在线代码编辑器,支持脚本文件上传,并能自动解压压缩包。
- 在线终端:基于 WebSocket 提供实时交互式终端,命令执行结果可实时输出。
- 环境变量管理:提供安全的环境变量存储功能,用于保存敏感配置,并在任务执行时自动注入。
- 现代化 UI:采用响应式设计,支持深色与浅色主题切换。
- 移动端适配:界面针对移动设备等小屏幕进行了样式适配。
- 远程执行:支持通过远程 Agent 执行任务,并集中展示执行结果。
功能特性
定时任务管理
- 支持标准 Cron 表达式进行任务调度。
- 提供常用时间规则(如每小时、每天)的快捷选择。
- 可灵活启用或禁用任务。
- 支持手动立即触发任务执行。
- 可设置任务执行的超时时间。
脚本文件管理
- 集成在线代码编辑器,方便编写和修改脚本。
- 以树形结构清晰展示文件目录。
- 支持创建、重命名、删除文件或文件夹。
- 支持上传 ZIP 等压缩包并自动解压。
- 支持一次性批量上传多个文件。
在线终端
- 基于 WebSocket 实现实时命令行终端。
- 支持执行常用的 Shell Bash 命令。
- 命令执行过程中的输出会实时反馈到前端界面。
执行日志
- 完整记录所有任务的执行历史。
- 清晰追踪每次执行的状态(成功、失败或超时)。
- 统计并展示每次任务执行的耗时。
- 日志内容采用压缩方式存储以节省空间。
- 支持配置日志的自动清理策略。
环境变量
- 安全地存储如 API 密钥、数据库密码等敏感配置信息。
- 在界面上对变量值进行脱敏显示(如显示为
******)。
- 在任务执行时,这些变量会自动注入到脚本的执行环境中。
系统设置
- 可自定义站点标题、标语和图标。
- 配置列表分页大小、用户登录会话的 Cookie 有效期等。
- 支持调度参数的热重载,无需重启服务。
- 提供系统数据的备份与恢复功能。
希望这款由 Go 和 Vue 3 构建的轻量级工具能为你的定时任务管理带来便利。如果你对这类开源项目感兴趣,欢迎来 云栈社区 与更多开发者交流探讨。
|