Loading repository data…
Loading repository data…
engigu / repository
🐯轻量级定时任务管理系统,支持 Python, Node.js, Go, Rust, PHP 等所有主流语言的动态安装与多版本切换,,Docker/Compose 即用。A lightweight, high-performance cron panel built with Go & Vue 3.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
白虎面板 (Baihu Panel) 是一款极致轻量、高性能的自动化任务调度平台。采用 Go + Vue3 架构,专注于高性能与低系统开销。通过深度集成 Mise 运行时管理,它原生支持 Python、Node.js、Go、Rust、PHP 等所有主流语言环境的动态安装(几乎所有的版本)与统一依赖管理。支持 Docker/Docker-Compose 一键部署,开箱即用,是您理想的轻量化脚本托管与任务调度解决方案。
演示站点(演示站点的服务器比较烂,见谅) 演示站点
文档说明 文档说明
2026.07.13 - ZSTD 日志与任务排序:流式日志升级至 ZSTD 压缩,支持 Zlib 兼容;上线依赖自动补全交互式终端;支持任务列表及移动端、视图联动排序;全局 ESC 非侵入式退出弹窗。
2026.06.28 - 节点互联与终端 UX:全面升级节点互联架构(支持变量同步、OpenConnect 协议及同步大屏);优化移动端终端交互,引入 Worker 边界防护防 OOM。
2026.06.12 - 调度器与资源实时监控:新增对面板运行资源、并发调度池(Worker)及内存堆栈的实时高频监控指标展示。
2026.05.29 - 自定义前端 (WebUI):新增 WebUI 插件化管理机制,支持上传管理第三方前端包 (.tar.gz) 接管内置界面,支持深度主题化定制。详情请看前端定制说明文档
2026.04.16 - 内建脚本助手库 (Built-in SDK):新增 Python 与 Node.js 的轻量化助手库,实现脚本内 “零代码配置” 通知投递;配套新增 baihu builtininstall 自动化安装命令。
2026.04.14 - PWA 与通知渠道增强:支持 PWA (Progressive Web App) 动态配置,站点标题与图标可由后端实时控制;新增 VoceChat 通知渠道支持;增强 Bark 推送,支持自建服务器配置。
2026.03.27 - 安全机密管理 (GitHub Secrets 风格):新增系统级机密(Secret)管理功能。支持 AES-GCM 工业级加密存储,秘钥内存留存销毁;支持执行日志自动脱敏打码;支持仅在计划任务调度时按需注入,终端与测试运行物理隔离,全面提升敏感配置安全性。
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) 镜像支持
多少和青龙面板有点关系,我自己也是青龙面板的使用者,但是现在的青龙面板性能我觉得有点难以接受。以我自己的使用(机器1C2G)为例,一个python的requests脚本每隔30s执行一次,有时候cpu执行的时候能跳变到50%以上。可以看看下面gif图片(如果不动,点击图片查看)

我觉得一个内存和性能占用低的面板更合适自己,所以做了这个项目。
如果你和我一样需要一个性能和内存占用低的定时面板,这个项目你可以体验下。
同样的定时场景和代码,这个项目的情况如下(cpu执行定时跳变不超过20%):

如果项目有用,请帮忙点个star。
白虎面板原生支持以下脚本的定时执行:
系统内置了高度集成的跨语言依赖管理器,支持自动化安装和管理以下语言的依赖项,并确保在容器内全局可用:
| 语言 | 包管理器 | 功能说明 |
|---|---|---|
| Python | pip | 自动使用内置虚拟环境,支持清华源 |
| Node.js | npm | 全局安装模式,自动配置 npmmirror 镜像 |
| Go | go install | 通过 go install 安装二进制工具 |
| Rust | cargo | 通过 cargo install 安装 Rust 依赖 |
| Ruby | gem | 支持 gem install 本地安装 |
| Bun | bun | 支持 bun add -g 全局模式 |
| PHP | composer | 支持 composer global require |
| Deno | deno | 支持 deno install -g |
| .NET | dotnet | 支持 dotnet tool install -g |
| Elixir/Erlang | mix | 支持 mix archive.install |
| Lua | luarocks | 通过 luarocks 管理 Lua 包 |
| Nim | nimble | 支持 nimble install |
| Dart/Flutter | pub | 支持 pub global activate |
| Perl | cpanm | 简单的 cpanm 安装支持 |
| Crystal |
mise 一键安装所需的语言及版本。mise exec 实现了完善的环境隔离,不同版本的依赖包互不冲突。
项目提供多种基础镜像,可根据具体环境选择:
| 标签 (Tag) | 基础镜像 | 说明 |
|---|---|---|
latest | Debian 12 | 默认推荐:集成 Python 3.13 与 Node.js 23,开箱即用 |
latest-debian13 | Debian 13 | 尝鲜版本,基于 Debian Trixie |
latest-minimal | Debian 13 | 最小化版:不预置语言环境,由用户通过面板自主按需安装 |
提示:下方部署示例默认使用
latest标签,如需换用 Debian 13 版,只需将latest替换为latest-debian13即可。
警告:架构升级破坏性变更
本版本(2026.02.13+)对底层运行时环境进行了彻底重构,弃用了原有的静态 Python/Node 环境,转为使用 Mise 进行动态版本管理。
- 不再提供 Alpine 镜像:由于 glibc 兼容性问题,Mise 无法在 Alpine 上完美运行,因此暂时取消 Alpine 镜像支持。
- 环境数据不兼容:如果您是从旧版本升级上来,原有的 Python/Node 环境数据将无法迁移。升级后您需要:
- 清空或备份原有的
envs/挂载目录- 启动新容器,让系统自动初始化新的 Mise 环境
- 在面板中重新安装所需的语言和依赖
通过环境变量指定配置,简单灵活,适合容器编排场景。
使用 SQLite(默认):
docker run -d \
--name baihu \
-p 8052:8052 \
-v $(pwd)/data:/app/data \
-v $(pwd)/envs:/app/envs \
-e TZ=Asia/Shanghai \
-e BH_SERVER_PORT=8052 \
-e BH_SERVER_HOST=0.0.0.0 \
-e BH_DB_TYPE=sqlite \
-e BH_DB_PATH=/app/data/baihu.db \
-e BH_DB_TABLE_PREFIX=baihu_ \
-e BAIHU_SECRET_KEY=your_secret_key_here \
--restart unless-stopped \
ghcr.io/engigu/baihu:latest
提示:如需通过反向代理部署在子路径(如
/baihu),添加环境变量:-e BH_SERVER_URL_PREFIX=/baihu配置后访问地址为
http://your-domain.com/baihu/,详见下方「URL 前缀配置」说明。
Docker Compose(SQLite):
services:
baihu:
image: ghcr.io/engigu/baihu:latest
container_name: baihu
ports:
- "8052:8052"
volumes:
- ./data:/app/data
- ./envs:/app/envs
environment:
- TZ=Asia/Shanghai
- BH_SERVER_PORT=8052
- BH_SERVER_HOST=0.0.0.0
- BH_DB_TYPE=sqlite
- BH_DB_PATH=/app/data/baihu.db
- BH_DB_TABLE_PREFIX=baihu_
- BAIHU_SECRET_KEY=your_secret_key_here
# - BH_SERVER_URL_PREFIX=/baihu # 可选:配置 URL 前缀用于反向代理
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
restart: unless-stopped
使用 MySQL:
docker run -d \
--name baihu \
-p 8052:8052 \
-v $(pwd)/data:/app/data \
-v $(pwd)/envs:/app/envs \
-e TZ=Asia/Shanghai \
-e BH_SERVER_PORT=8052 \
-e BH_SERVER_HOST=0.0.0.0 \
-e BH_DB_TYPE=mysql \
-e BH_DB_HOST=mysql-server \
-e BH_DB_PORT=3306 \
-e BH_DB_USER=root \
-e BH_DB_PASSWORD=your_password \
-e BH_DB_NAME=baihu \
-e BH_DB_TABLE_PREFIX=baihu_ \
-e BAIHU_SECRET_KEY=your_secret_key_here \
--restart unless-stopped \
ghcr.io/engigu/baihu:latest
提示:如需配置 URL 前缀,添加
-e BH_SERVER_URL_PREFIX=/baihu
Docker Compose(MySQL):
services:
baihu:
image: ghcr.io/engigu/baihu:latest
container_name: baihu
ports:
- "8052:8052"
volumes:
- ./data:/app/data
- ./envs:/app/envs
environment:
- TZ=Asia/Shanghai
- BH_SERVER_PORT=8052
- BH_SERVER_HOST=0.0.0.0
# - BH_SERVER_URL_PREFIX=/baihu # 可选:配置 URL 前缀
- BH_DB_TYPE=mysql
- BH_DB_HOST=mysql-server
- BH_DB_PORT=3306
- BH_DB_USER=root
- BH_DB_PASSWORD=your_password
- BH_DB_NAME=baihu
- BH_DB_TABLE_PREFIX=baihu_
- BAIHU_SECRET_KEY=your_secret_key_here
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
restart: unless-stopped
通过挂载 config.ini 配置文件来管理配置,适合需要持久化配置的场景。
Docker 命令:
docker run -d \
--name baihu \
-p 8052:8052 \
-v $(pwd)/data:/app/data \
-v $(pwd)/configs:/app/configs \
-v $(pwd)/envs:/app/envs \
-e TZ=Asia/Shanghai \
-e BAIHU_SECRET_KEY=your_secret_key_here \
--restart unless-stopped \
ghcr.io/engigu/baihu:latest
Docker Compose:
services:
baihu:
image: ghcr.io/engigu/baihu:latest
container_name: baihu
ports:
- "8052:8052"
volumes:
- ./data:/app/data
- ./configs:/app/configs
- ./envs:/app/envs
environment:
- TZ=Asia/Shanghai
- BAIHU_SECRET_KEY=your_secret_key_here
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
restart: unless-stopped
首次使用需要复制 configs/config.example.ini 为 configs/config.ini,然后根据需要修改配置。
配置文件示例(configs/config.ini):
[server]
port = 8052
host = 0.0.0.0
# 可选:配置 URL 前缀用于反向代理,例如 /baihu
url_prefix =
# 全局会话 Cookie 名称
cookie_name = BHToken
[database]
type = sqlite
path = ./data/baihu.db
table_prefix = baihu_
🎉 好消息:自白虎面板最新版本起,系统已原生内置了完整强大的消息推送功能!您可直接在面板「消息推送」菜单内绑定十余种主流渠道和系统通知事件,原配合外置的
Message-Push-Nest部署方式已不再是使用面板的基础要求。您可随时直接使用上方的第一种简单命令开箱即用体验。以下「白虎 + 消息聚合服务」的联合部署内容被予以保留,专为仍然需要「中心化通知网关」的重度企业解耦用户作为参考:
白虎面板通过系统集成也可轻松连接独立的消息聚合服务。这里推荐使用 Message-Push-Nest 作为分布式的统一消息推送中心。
使用 SQLite
创建 docker-compose.yml 文件:
services:
# 白虎面板
baihu:
image: ghcr.io/engigu/baihu:latest
container_name: baihu
ports:
- "8052:8052"
volumes:
- ./data:/app/data
- ./envs:/app/envs
environment:
- TZ=Asia/Shanghai
- BH_SERVER_PORT=8052
- BH_SERVER_HOST=0.0.0.0
- BH_DB_TYPE=sqlite
- BH_DB_PATH=/app/data/baihu.db
- BH_DB_TABLE_PREFIX=baihu_
- BAIHU_SECRET_KEY=your_secret_key_here
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
restart: unless-stopped
depends_on:
- message-nest
# 消息推送服务
message-nest:
image: ghcr.io/engigu/message-nest:latest
# 或使用 Docker Hub 镜像
# image: engigu/message-nest:latest
container_name: message-nest
ports:
- "8053:8000"
environment:
- TZ=Asia/Shanghai
- DB_TYPE=sqlite
volumes:
- ./message-nest-data:/app/data
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
restart: unless-stopped
使用 MySQL(适合生产环境,需要已有 MySQL 服务)
创建 docker-compose.yml 文件:
services:
# 白虎面板
baihu:
image: ghcr.io/engigu/baihu:latest
container_name: baihu
ports:
- "8052:8052"
volumes:
- ./data:/app/data
- ./envs:/app/envs
environment:
- TZ=Asia/Shanghai
| shards |
shards 项目级别或工具安装 |