engigu / baihu-panel
🐯轻量级定时任务管理系统,支持 Python, Node.js, Go, Rust, PHP 等所有主流语言的动态安装与多版本切换,,Docker/Compose 即用。A lightweight, high-performance cron panel built with Go & Vue 3.
View on GitHubAI Architecture Analysis
This repository is indexed by RepoMind. By analyzing engigu/baihu-panel in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.
Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.
Repository Overview (README excerpt)
Crawler view白虎面板 白虎面板 (Baihu Panel) 是一款极致轻量、高性能的自动化任务调度平台。采用 Go + Vue3 架构,专注于高性能与低系统开销。通过深度集成 Mise 运行时管理,它原生支持 Python、Node.js、Go、Rust、PHP 等所有主流语言环境的动态安装(几乎所有的版本)与统一依赖管理。支持 Docker/Docker-Compose 一键部署,开箱即用,是您理想的轻量化脚本托管与任务调度解决方案。 演示站点(演示站点的服务器比较烂,见谅) 演示站点 更新日志 ☕ 最近更新 **2026.03.19** - **仓库同步增强**:新增对青龙仓库格式指令的深度兼容,支持从远程 Git 仓库自动同步脚本并基于注释解析自动创建面板任务,支持白名单、黑名单、依赖保留等高级筛选特性。 **2026.03.05** - **API 文档重构** 重构 OpenAPI 认证体系,支持站点级 Token 配置与 Basic Auth 保护。 **2026.03.04** - 新增内置消息推送系统:全新原生支持企业微信、钉钉、飞书、Telegram、Bark、邮件等十余种主流渠道的推送,接入系统级事件通知自动捕获,告别原有必配外部推送服务的繁琐历史 **2026.02.13** - 重构任务执行引擎:深度集成 Mise 运行时管理,支持 Python, Node.js, Go, Rust, PHP 等几乎所有主流语言的动态安装与多版本切换,同步上线跨语言统一依赖管理系统 **2026.02.11** - 增强安全性:首次启动使用随机密码并打印在日志中,登录接口增加防暴力破解,文件系统操作增加路径穿越锁定 **2026.02.10** - 重构任务调度系统,完善并发控制,优化文件树交互体验,支持任务执行实时日志流 **2026.02.06** - 整理 Docker 目录结构,增加 Debian 13 (Trixie) 镜像支持 查看完整更新日志 项目来由 多少和青龙面板有点关系,我自己也是青龙面板的使用者,但是现在的青龙面板性能我觉得有点难以接受。以我自己的使用( )为例,一个 的 脚本每隔 执行一次,有时候cpu执行的时候能跳变到 以上。可以看看下面gif图片(如果不动,点击图片查看) 我觉得一个内存和性能占用低的面板更合适自己,所以做了这个项目。 如果你和我一样需要一个性能和内存占用低的定时面板,这个项目你可以体验下。 同样的定时场景和代码,这个项目的情况如下(cpu执行定时跳变不超过 ): 如果项目有用,请帮忙点个star。 特色 • **轻量级:** docker/compose部署,无需复杂配置,开箱即用 • **任务调度:** 支持标准 Cron 表达式,常用时间规则快捷选择。日志不落文件,没有磁盘频繁io的问题 • **脚本管理:** 在线代码编辑器,支持文件上传、压缩包解压 • **在线终端:** WebSocket 实时终端,命令执行结果实时输出 • **消息推送:** 内置强大消息推送与通知引擎,无缝兼容主流渠道,支持系统级事件告警 • **环境变量:** 安全存储敏感配置,任务执行时自动注入 • **现代UI:** 响应式设计,深色/浅色主题切换 • **移动端:** 适配移动小屏样式 • **远程执行:** 支持远程agent执行任务,展示执行结果 • **多语言支持:** 深度集成 Mise,支持几乎所有主流编程语言的动态安装、多版本切换及依赖管理 功能特性 点击展开查看详细功能 定时任务管理 • 支持标准 Cron 表达式调度 • 常用时间规则快捷选择 • 任务启用/禁用状态切换 • 手动触发执行 • 任务超时控制 脚本文件管理 • 在线代码编辑器 • 文件树形结构展示 • 支持创建、重命名、删除文件/文件夹 • 支持压缩包上传解压 • 支持多文件批量上传 在线终端 • WebSocket 实时终端 • 支持常用 Shell 命令 • 命令执行结果实时输出 执行日志 • 任务执行历史记录 • 执行状态追踪(成功/失败/超时) • 执行耗时统计 • 日志内容压缩存储 • 日志自动清理 消息推送与系统通知 • 原生内置各大主流平台渠道(钉钉、企业微信、Telegram、Server酱等) • 支持系统级事件条件触发通知(例如任务失败报警、服务下线提醒) • 自动生成跨语言调用 API 示例代码供脚本集成 环境变量 • 安全存储敏感配置 • 变量值脱敏显示 • 任务执行时自动注入 仓库任务同步 (New) • 支持 青龙 仓库命令格式快捷导入 • 自动解析脚本注释中的 Cron 表达式和环境变量名 • 支持基于正则表达式的白名单、黑名单文件筛选 • 支持脚本依赖文件的识别与保留 • 自动同步远程 Git 仓库变更,增量更新面板任务 系统设置 • 站点标题、标语、图标自定义 • 分页大小、Cookie 有效期配置 • 调度参数热重载 • 数据备份与恢复 支持语言脚本和依赖 点击展开查看已支持的语言及依赖管理详情 脚本运行环境 白虎面板原生支持以下脚本的定时执行: • **Python3**, **Node.js**, **Bash** (标准版镜像内置环境) • 通过 **Mise** 扩展:支持几乎所有主流编程语言的动态安装与切换。 • **Minimal 版**:不预置 Python/Node,仅内置 Mise 底座,由用户按需安装。 依赖管理支持 系统内置了高度集成的跨语言依赖管理器,支持自动化安装和管理以下语言的依赖项,并确保在容器内全局可用: | 语言 | 包管理器 | 功能说明 | | :--- | :--- | :--- | | **Python** | pip | 自动使用内置虚拟环境,支持清华源 | | **Node.js** | npm | 全局安装模式,自动配置 npmmirror 镜像 | | **Go** | go install | 通过 安装二进制工具 | | **Rust** | cargo | 通过 安装 Rust 依赖 | | **Ruby** | gem | 支持 本地安装 | | **Bun** | bun | 支持 全局模式 | | **PHP** | composer | 支持 | | **Deno** | deno | 支持 | | **.NET** | dotnet | 支持 | | **Elixir/Erlang** | mix | 支持 | | **Lua** | luarocks | 通过 管理 Lua 包 | | **Nim** | nimble | 支持 | | **Dart/Flutter** | pub | 支持 | | **Perl** | cpanm | 简单的 安装支持 | | **Crystal** | shards | 项目级别或工具安装 | 使用方法 • **安装环境**:进入「编程语言」页面,使用 一键安装所需的语言及版本。 • **依赖管理**:在已安装列表点击「依赖管理」,输入名称(可选版本)即可自动在对应环境内完成安装。 • **隔离机制**:系统基于 实现了完善的环境隔离,不同版本的依赖包互不冲突。 效果图 快速部署 项目提供多种基础镜像,可根据具体环境选择: | 标签 (Tag) | 基础镜像 | 说明 | | :--- | :--- | :--- | | | Debian 12 | **默认推荐**:集成 Python 3.13 与 Node.js 23,开箱即用 | | | Debian 13 | 尝鲜版本,基于 Debian Trixie | | | Debian 13 | **最小化版**:不预置语言环境,由用户通过面板自主按需安装 | > **提示**:下方部署示例默认使用 标签,如需换用 Debian 13 版,只需将 替换为 即可。 > **警告**:**架构升级破坏性变更** > > 本版本(2026.02.13+)对底层运行时环境进行了彻底重构,弃用了原有的静态 Python/Node 环境,转为使用 **Mise** 进行动态版本管理。 > > 1. **不再提供 Alpine 镜像**:由于 glibc 兼容性问题,Mise 无法在 Alpine 上完美运行,因此暂时取消 Alpine 镜像支持。 > 2. **环境数据不兼容**:如果您是从旧版本升级上来,原有的 Python/Node 环境数据将无法迁移。升级后您需要: > - 清空或备份原有的 挂载目录 > - 启动新容器,让系统自动初始化新的 Mise 环境 > - 在面板中重新安装所需的语言和依赖 方式一:环境变量部署(推荐) 通过环境变量指定配置,简单灵活,适合容器编排场景。 **使用 SQLite(默认):** > **提示**:如需通过反向代理部署在子路径(如 ),添加环境变量: > > 配置后访问地址为 ,详见下方「URL 前缀配置」说明。 **Docker Compose(SQLite):** **使用 MySQL:** > **提示**:如需配置 URL 前缀,添加 **Docker Compose(MySQL):** 方式二:配置文件部署 通过挂载 配置文件来管理配置,适合需要持久化配置的场景。 **Docker 命令:** **Docker Compose:** 首次使用需要复制 为 ,然后根据需要修改配置。 **配置文件示例( ):** 方式三:配合独立中心化消息服务部署(非必需/仅供参考) > 🎉 **好消息**:自白虎面板最新版本起,系统已**原生内置**了完整强大的消息推送功能!您可直接在面板「消息推送」菜单内绑定十余种主流渠道和系统通知事件,原配合外置的 部署方式已不再是使用面板的基础要求。您可随时直接使用上方的第一种简单命令开箱即用体验。 > > 以下「白虎 + 消息聚合服务」的联合部署内容被予以保留,专为仍然需要「中心化通知网关」的重度企业解耦用户作为参考: 白虎面板通过系统集成也可轻松连接独立的消息聚合服务。这里推荐使用 Message-Push-Nest 作为分布式的统一消息推送中心。 **使用 SQLite** 创建 文件: **使用 MySQL(适合生产环境,需要已有 MySQL 服务)** 创建 文件: 启动服务: **访问地址:** • 白虎面板:http://localhost:8052 • 消息推送服务:http://localhost:8053 > 注意:使用 MySQL 方式时,请先在 MySQL 中创建 和 两个数据库,并修改配置中的 MySQL 地址和密码。也可以使用同一个数据库。 **在任务中使用推送** 如今你无需依赖任何外部服务,可以通过面板自身完成: • 进入白虎面板「消息推送」模块,新建你需要通知的渠道。 • 可以在「事件绑定」中直接设定**自动化系统通知**(如监控任务失败或脚本异常中止时进行自动提醒)。 • 如需在自己的脚本逻辑内动态推送,可以点击「脚本调用」页面,立刻获取一键调用的 Shell / API 代码,内嵌进你的业务逻辑中即可完成推信! *(如继续使用 ,你可以通过其管理界面中「消息模板」的「复制推送代码」提取旧有版集成样例。)* > 提示:在 Docker Compose 部署的环境中,推送服务地址使用 (容器内部通信)。如果是独立部署,请使用实际的服务地址。 > 环境变量优先级高于配置文件,两种方式可以混合使用。 方式四:Nginx 反向代理部署(HTTPS) 如果需要通过域名和 HTTPS 访问白虎面板,可以使用 Nginx 作为反向代理。 **Nginx 配置示例:** **配置说明:** • 将 替换为你的域名 • 修改 SSL 证书路径为你的实际路径 • 是 Docker 容器的宿主机地址和端口,根据实际情况修改 • WebSocket 配置是必需的,否则在线终端功能无法使用 **重载 Nginx 配置:** 访问面板 启动后访问:http://localhost:8052 **默认账号:** 用户名 ,密码见启动日志(首次启动会自动生成 12 位随机密码并打印在日志中) > **注意**:出于安全性考虑,系统不再使用固定默认密码。请在容器启动日志中搜索 找到您的随机密码,并登录后及时修改。 命令行工具 (CLI) 白虎面板在环境内内置了同名的 命令行工具。如果您在终端内需要执行系统级别的操作,可以使用以下命令: 终端执行 会直接打印内置支持的高级命令帮助列表。 数据目录 Docker 启动流程 容器启动时 会执行以下操作: • **目录就绪**:检查并创建 、 、 等核心目录。 • **Mise 环境同步**:自动从镜像内置基础环境同步初始化文件至 ,确保持久化挂载后运行时依然可用。 • **运行时激活**: • 自动注入 等环境变量,确保运行时数据指向持久化目录。 • 将 路径加入系统 ,实现 Python、Node.js 等多版本环境的全局无感调用。 • **依赖管理预设**:默认配置 Python 清华源(PIP)镜像,优化 Node.js 默认内存上限。 • **启动应用**:运行 面板主进程。 > **提示**:通过挂载 ,您通过面板安装的所有编程语言运行时以及通过「依赖管理」安装的所有第三方库都会永久保留,容器升级或重启后无需重新安装。 配置说明 点击展开查看配置详情 配置文件 配置文件路径: 环境变量 所有配置项都支持通过环境变量覆盖,环境变量优先级高于配置文件: | 环境变量 | 对应配置 | 说明 | 默认值 | |----------|----------|------|--------| | | server.port | 服务端口 | 8052 | | | server.host | 监听地址 | 0.0.0.0 | | | server.url_prefix | URL 前缀,用于反向代理子路径部署 | - | | | database.type | 数据库类型 (sqlite/mysql) | sqlite | | | database.host | 数据库地址 | l…