白虎面板

白虎面板 (Baihu Panel) 是一款极致轻量、高性能的自动化任务调度平台。采用 Go + Vue3 架构,专注于高性能与低系统开销。通过深度集成 Mise 运行时管理,它原生支持 Python、Node.js、Go、Rust、PHP 等所有主流语言环境的动态安装(几乎所有的版本)与统一依赖管理。支持 Docker/Docker-Compose 一键部署,开箱即用,是您理想的轻量化脚本托管与任务调度解决方案。
截止20260922,系统核心蓝图已全面拼齐,从声明式 YAML 的全流程编排定义,到底层任务调度,再到多端消息推送,正式构建起完整的自动化生命周期闭环。
演示站点(演示站点的服务器比较烂,见谅) 演示站点
文档说明 文档说明
更新日志
- 语言依赖未指定版本自动探测回填:安装 Python/Node.js 等依赖包若留空版本,自动通过轻量命令探测实际安装版本并回填入库,重构 Upsert 逻辑避免同环境多版本脏数据(#237)。
- 备份恢复与归档解包安全漏洞防御:提取公共安全解包方法,彻底防御 Zip-Slip 目录穿越路径逃逸与非安全符号链接劫持风险,覆盖备份恢复、应用中心与任务同步解压场景(#235)。
- 动态机密环境变量安全 Upsert 支持:支持机密环境变量根据变量名称及用户作用域安全 Upsert,强化加密存储与写入校验(#234)。
- 构建优化与 Windows 托盘版本注入修复:编译参数统一启用
-trimpath 剥离本地路径,修复 Windows 托盘程序版本号正确注入。
点击展开查看近期历史版本日志
-
2026.11.04 (v1.6.2) - 单点登录第三方身份与本地账号绑定管理、标签管理跨分类重名校验隔离修复与文档构建依赖优化。
-
2026.11.04 (v1.6.1) - 旧备份两步验证死锁自愈修复、分页空数据白屏异常统一修复、安全漏洞加固与核心依赖升级。
-
2026.11.03 (v1.6.0) - 任务超时支持0不限制、限制并发任务运行中快捷停止、执行历史日志防重渲染、演示模式切面重构与容器控存调优。
-
2026.10.30 (v1.5.9) - Docker 容器异步初始化内建助手库、Node.js 内建通知健壮性加固与返回值支持、变量机密编辑框最后编辑时间展示。
-
2026.10.27 (v1.5.8) - 语言安装下载镜像加速与 Mise 运行时镜像源配置、已装应用更新检测与无损升级中枢、OpenAPI 文件管理能力开放与全站安全加固。
-
2026.10.21 (v1.5.7) - 任务日志自定义变量提取与通知模板注入、设置中心全局悬浮保存与改动追踪、脚本编辑终端重构及体验加固。
-
2026.10.17 (v1.5.6) - 运行时 PageCache 控存策略重构、容器入口标准化与公共库抽取、OIDC 领域层解耦及前端交互优化。
-
2026.10.16 (v1.5.5) - 多身份源单点登录并行共存架构、SSO 独立路由与凭据解耦、移动端响应式与视觉细节打磨。
-
2026.10.15 (v1.5.4) - MCP 双传输共存架构 (Streamable HTTP + SSE)、通用 OAuth 2.0 单点登录与全站 Inter 字体排版。
-
2026.10.15 (v1.5.3) - 原生 OIDC / Pocket ID 单点登录、任务批量设置多类型混选重构、表格分页数独立持久化与演示模式全面加固。
-
2026.10.12 (v1.5.2) - 容器 PageCache 自适应回收与点杀、tini 僵尸进程回收、树形目录批量展开、小屏代码编辑优化。
-
2026.10.09 (v1.5.1) - Windows 托盘无黑窗静默运行、容器内存口径对齐 Docker Stats、OpenAPI MCP 服务健壮性加固。
-
2026.10.07 (v1.5.0) - 原生内置 MCP 服务、Server酱推送通道、文件树按需懒加载与检索、Agent 实时增量同步。
-
2026.10.01 (v1.4.2) - 系统设置全模块视觉与交互重构、声明式应用卸载级联清理与标签自动回收。
-
2026.09.30 (v1.4.1) - 远程 Agent 工作目录解析修复、Windows Agent Shell 免依赖回退、Bark 动态参数覆盖。
-
2026.09.29 (v1.4.0) - RESTful 状态码双轨对齐、Bark 端到端加密推送、任务深层目录展开。
-
2026.09.23 (v1.3.0) - 机密端到端安全解密 (ECDH+AES-GCM)、日志冗余任务名、文档体验升级。
-
2026.09.22 (v1.2.0) - 声明式应用引擎与应用市场、2FA 备份恢复修复、跨平台路径升级。
-
2026.09.11 (v1.1.30) - 标签关联资源穿透跳转、输入法回车丢失修复、调度引擎调优。
-
2026.09.08 (v1.1.29) - Windows ConPTY 伪终端重构、hosts 自动映射、托盘 UI 升级。
-
2026.09.04 (v1.1.28) - IDE 底部 Terminal、环境持久化、任务配置批量更新。
-
2026.08.21 (v1.1.27) - 通知过滤机制、移动端平滑滚动与小屏适配优化。
-
2026.08.17 (v1.1.26) - 统一通知内容与 Options SDK、日志 SSE 状态帧协议。
-
2026.08.10 (v1.1.25) - 企业微信推送接入、备份恢复自动加载调度、安全漏洞修复。
-
2026.07.31 (v1.1.24) - 标签管理系统、Monaco 多语言语法高亮、登录两步验证 (2FA)。
-
2026.07.23 (v1.1.23) - Windows GUI 安装包与后台系统托盘守护程序。
-
2026.07.20 (v1.1.22) - Windows 平台深度适配、网页终端 Ctrl+C 终结、PTY 崩溃修复。
-
2026.07.13 (v1.1.21) - ZSTD 日志压缩、依赖自动补全终端、列表视图联动排序。
-
2026.06.28 (v1.1.20) - 节点互联架构 (变量同步与 OpenConnect)、终端 OOM 防护。
查看完整历史更新日志 (在线文档)
项目来由
多少和青龙面板有点关系,我自己也是青龙面板的使用者,但是现在的青龙面板性能我觉得有点难以接受。以我自己的使用(机器1C2G)为例,一个python的requests脚本每隔30s执行一次,有时候cpu执行的时候能跳变到50%以上。可以看看下面gif图片(如果不动,点击图片查看)

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

如果项目有用,请帮忙点个star。
特色
- 轻量级: docker/compose部署,无需复杂配置,开箱即用
- 任务调度: 支持标准 Cron 表达式,常用时间规则快捷选择。日志不落文件,没有磁盘频繁io的问题
- 脚本管理: 在线代码编辑器,支持文件上传、压缩包解压
- 在线终端: WebSocket 实时终端,命令执行结果实时输出
- 消息推送: 内置强大消息推送与通知引擎,无缝兼容主流渠道,支持系统级事件告警
- 机密管理: (New) 类似 GitHub Secrets 的安全存储,支持 AES-GCM 加密,日志自动打码,仅在调度时注入
- 环境变量: 存储普通配置,任务执行时自动注入
- 现代UI: 响应式设计,深色/浅色主题切换
- 移动端: 适配移动小屏样式
- 远程执行: 支持远程agent执行任务,展示执行结果
- 多语言支持: 深度集成 Mise,支持几乎所有主流编程语言的动态安装、多版本切换及依赖管理
- 内建助手库: (New) 为 Python/Node.js 提供零配置助手库,简单 import 即可实现一键推信,无需手动管理 API Token 和 URL
功能特性
点击展开查看详细功能
定时任务管理
- 支持标准 Cron 表达式调度
- 常用时间规则快捷选择
- 任务启用/禁用状态切换
- 手动触发执行
- 任务超时控制
脚本文件管理
- 在线代码编辑器
- 文件树形结构展示
- 支持创建、重命名、删除文件/文件夹
- 支持压缩包上传解压
- 支持多文件批量上传
在线终端
- WebSocket 实时终端
- 支持常用 Shell 命令
- 命令执行结果实时输出
执行日志
- 任务执行历史记录
- 执行状态追踪(成功/失败/超时)
- 执行耗时统计
- 日志内容压缩存储
- 日志自动清理
消息推送与系统通知
- 原生内置各大主流平台渠道(钉钉、企业微信、Telegram、Server酱等)
- 支持系统级事件条件触发通知(例如任务失败报警、服务下线提醒)
- 自动生成跨语言调用 API 示例代码供脚本集成
变量与机密
- 支持普通环境变量与安全机密(Secret)分类管理
- 机密使用 AES-GCM 加密存储,数据库不存明文
- 秘钥仅在内存中留存,启动读取后立即销毁(Unset)
- 执行日志自动搜索并屏蔽(******)**敏感机密内容
- 严格权限隔离:机密仅在定时任务调度时注入,终端/测试环境不可见
节点互联体系 (New)
- 支持 OpenConnect 协议,轻松实现多台白虎面板之间的互联互通
- 支持节点间的环境变量无缝同步(保留原有结构与 ID)
- 集成同步管理控制台,统一查看与控制各节点状态与负载指标
- 底层路由深度适配穿透隧道,完美支持分布式前端代理访问
仓库任务同步 (New)
- 支持 青龙 仓库命令格式快捷导入
- 自动解析脚本注释中的 Cron 表达式和环境变量名
- 支持基于正则表达式的白名单、黑名单文件筛选
- 支持脚本依赖文件的识别与保留
- 自动同步远程 Git 仓库变更,增量更新面板任务
系统设置
- 站点标题、标语、图标自定义
- 分页大小、Cookie 有效期配置
- 调度参数热重载
- 数据备份与恢复
支持语言脚本和依赖
点击展开查看已支持的语言及依赖管理详情
脚本运行环境
白虎面板原生支持以下脚本的定时执行:
- Python3, Node.js, Bash (标准版镜像内置环境)
- 通过 Mise 扩展:支持几乎所有主流编程语言的动态安装与切换。
- Minimal 版:不预置 Python/Node,仅内置 Mise 底座,由用户按需安装。
依赖管理支持
系统内置了高度集成的跨语言依赖管理器,支持自动化安装和管理以下语言的依赖项,并确保在容器内全局可用:
| 语言 |
包管理器 |
功能说明 |
| 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 |
shards |
shards 项目级别或工具安装 |
使用方法
- 安装环境:进入「编程语言」页面,使用
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
- BH_SERVER_PORT=8052
- BH_SERVER_HOST=0.0.0.0
- BH_DB_TYPE=mysql
- BH_DB_HOST=192.168.1.100 # 修改为你的 MySQL 地址
- BH_DB_PORT=3306
- BH_DB_USER=root
- BH_DB_PASSWORD=your_password # 修改为你的 MySQL 密码
- 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
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=mysql
- MYSQL_HOST=192.168.1.100 # 修改为你的 MySQL 地址
- MYSQL_PORT=3306
- MYSQL_USER=root
- MYSQL_PASSWORD=your_password # 修改为你的 MySQL 密码
- MYSQL_DB=message_nest
- MYSQL_TABLE_PREFIX=message_
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
restart: unless-stopped
启动服务:
docker-compose up -d
访问地址:
注意:使用 MySQL 方式时,请先在 MySQL 中创建 baihu 和 message_nest 两个数据库,并修改配置中的 MySQL 地址和密码。也可以使用同一个数据库。
在任务中使用推送
如今你无需依赖任何外部服务,可以通过面板自身完成:
- 进入白虎面板「消息推送」模块,新建你需要通知的渠道。
- 可以在「事件绑定」中直接设定自动化系统通知(如监控任务失败或脚本异常中止时进行自动提醒)。
- 如需在自己的脚本逻辑内动态推送,可以点击「脚本调用」页面,立刻获取一键调用的 Shell / API 代码,内嵌进你的业务逻辑中即可完成推信!
(如继续使用 Message-Push-Nest,你可以通过其管理界面中「消息模板」的「复制推送代码」提取旧有版集成样例。)

提示:在 Docker Compose 部署的环境中,推送服务地址使用 http://message-nest:8000(容器内部通信)。如果是独立部署,请使用实际的服务地址。
环境变量优先级高于配置文件,两种方式可以混合使用。
方式四:Nginx 反向代理部署(HTTPS)
如果需要通过域名和 HTTPS 访问白虎面板,可以使用 Nginx 作为反向代理。
Nginx 配置示例:
# 在 http 块中添加 WebSocket 升级配置
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 443 ssl http2;
server_name example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers off;
access_log /var/log/nginx/example.access.log;
error_log /var/log/nginx/example.error.log warn;
location / {
proxy_pass http://172.17.0.1:8052;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
# WebSocket 支持(终端功能需要)
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_buffering off;
proxy_read_timeout 60s;
}
}
# HTTP 自动跳转 HTTPS(可选)
server {
listen 80;
server_name example.com;
return 301 https://$server_name$request_uri;
}
配置说明:
- 将
example.com 替换为你的域名
- 修改 SSL 证书路径为你的实际路径
172.17.0.1:8052 是 Docker 容器的宿主机地址和端口,根据实际情况修改
- WebSocket 配置是必需的,否则在线终端功能无法使用
重载 Nginx 配置:
nginx -t && nginx -s reload
访问面板
启动后访问:http://localhost:8052
默认账号: 用户名 admin,密码见启动日志(首次启动会自动生成 12 位随机密码并打印在日志中)
出于安全性考虑,系统不再使用固定默认密码。请在容器启动日志中搜索 管理员账号创建成功 找到您的随机密码,并登录后及时修改。
命令行工具 (CLI)
白虎面板在环境内内置了同名的 baihu 命令行工具。如果您在终端内需要执行系统级别的操作,可以使用以下命令:
baihu server # 以前台方式启动面板的后台进程服务(面板启动指令)
baihu reposync # 供定时任务调用,将远程 Git 仓库的高级特性同步到本地目录中
baihu resetpwd # 交互式重置系统 admin 账号密码(密码丢失时可通过进入终端重置)
baihu restore <file> # 使用本地的 .zip 备份压缩包文件,一条命令直接全量恢复系统数据
终端执行 baihu 会直接打印内置支持的高级命令帮助列表。
数据目录
./
├── baihu # 可执行文件
├── data/ # 数据目录(自动创建)
│ ├── baihu.db # SQLite 数据库
│ └── scripts/ # 脚本文件存储
├── configs/
│ └── config.ini # 配置文件(自动创建)
└── envs/ # 运行环境挂载目录(自动创建)
└── mise/ # Mise 运行时核心目录 (包含所有语言环境及依赖)
Docker 启动流程
容器启动时 docker-entrypoint.sh 会执行以下操作:
- 目录就绪:检查并创建
/app/data、/app/configs、/app/envs 等核心目录。
- Mise 环境同步:自动从镜像内置基础环境同步初始化文件至
/app/envs/mise,确保持久化挂载后运行时依然可用。
- 运行时激活:
- 自动注入
MISE_DATA_DIR 等环境变量,确保运行时数据指向持久化目录。
- 将
mise shims 路径加入系统 PATH,实现 Python、Node.js 等多版本环境的全局无感调用。
- 依赖管理预设:默认配置 Python 清华源(PIP)镜像,优化 Node.js 默认内存上限。
- 启动应用:运行
baihu 面板主进程。
提示:通过挂载 ./envs:/app/envs,您通过面板安装的所有编程语言运行时以及通过「依赖管理」安装的所有第三方库都会永久保留,容器升级或重启后无需重新安装。
配置说明
点击展开查看配置详情
配置文件
配置文件路径:configs/config.ini
[server]
port = 8052
host = 0.0.0.0
url_prefix =
[database]
type = sqlite
host = localhost
port = 3306
user = root
password =
dbname = bh_panel
table_prefix = baihu_
环境变量
所有配置项都支持通过环境变量覆盖,环境变量优先级高于配置文件:
| 环境变量 |
对应配置 |
说明 |
默认值 |
BH_SERVER_PORT |
server.port |
服务端口 |
8052 |
BH_SERVER_HOST |
server.host |
监听地址 |
0.0.0.0 |
BH_SERVER_URL_PREFIX |
server.url_prefix |
URL 前缀,用于反向代理子路径部署 |
- |
BH_COOKIE_NAME |
server.cookie_name |
全局会话 Cookie 名称 |
BHToken |
BH_DB_TYPE |
database.type |
数据库类型 (sqlite/mysql) |
sqlite |
BH_DB_HOST |
database.host |
数据库地址 |
localhost |
BH_DB_PORT |
database.port |
数据库端口 |
3306 |
BH_DB_USER |
database.user |
数据库用户 |
root |
BH_DB_PASSWORD |
database.password |
数据库密码 |
- |
BH_DB_NAME |
database.dbname |
数据库名称 |
bh_panel |
BH_DB_PATH |
database.path |
SQLite 文件路径 |
./data/baihu.db |
BH_DB_TABLE_PREFIX |
database.table_prefix |
表前缀 |
baihu_ |
BAIHU_SECRET_KEY |
- |
系统加密秘钥,用于机密功能(注:仅支持环境变量设置,不支持配置文件) |
- |
URL 前缀配置
如果需要通过反向代理(如 Nginx)将白虎面板部署在子路径下,可以配置 URL 前缀。
配置方式:
# 方式一:配置文件
[server]
url_prefix = /baihu
# 方式二:环境变量
-e BH_SERVER_URL_PREFIX=/baihu
配置效果:
配置 url_prefix = /baihu 后,访问路径变为:
| 类型 |
路径示例 |
| 前端页面 |
http://your-domain.com/baihu/ |
| 登录页面 |
http://your-domain.com/baihu/login |
| 任务管理 |
http://your-domain.com/baihu/tasks |
| API 接口 |
http://your-domain.com/baihu/api/v1/* |
| WebSocket |
ws://your-domain.com/baihu/api/v1/terminal/ws |
Nginx 反向代理配置示例:
location /baihu/ {
proxy_pass http://localhost:8052/baihu/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
MySQL 示例:
参考上方「方式一:环境变量部署」中的 MySQL 配置示例。
调度设置
系统采用 Worker Pool + 任务队列的架构来控制任务执行,可在「系统设置 > 调度设置」中配置:
| 设置项 |
说明 |
默认值 |
| Worker 数量 |
并发执行任务的 worker 数量 |
4 |
| 队列大小 |
任务队列缓冲区大小 |
100 |
| 速率间隔 |
任务启动间隔(毫秒) |
200 |
修改调度设置后立即生效,无需重启服务。
免责声明
重要免责条款:
白虎面板(Baihu Panel)仅作为一个轻量级的任务托管与调度平台,本项目及相关代码不提供、不内置任何具有实际业务逻辑的第三方脚本。
在使用本项目时,请您务必知悉并同意以下条款:
- 脚本来源审核:请勿轻易执行任何来源不明或不可信的外部脚本。所有在平台上运行的脚本及代码均需由用户自行添加或配置,用户必须在执行前仔细阅读并审核其源代码,确保其安全性。
- 安全责任自负:本项目作为基础调度工具,无法且不保证任何被执行任务的安全性。因运行不安全、违规脚本带来的一切数据泄露、系统损坏、财产损失及法律责任等后果,均由使用者自行承担,与本项目及开发者无关。
- 软件按“原样”提供:本项目为业余开源开发,按“原样”提供,不保证不存在 Bug 或漏洞。开发者不对因使用本项目而引起的任何直接或间接损失负责。
贡献者
感谢所有为白虎面板做出贡献的开发者们!大家的 Star 和 Pull Request 是项目持续迭代的动力!
社区交流
欢迎加入白虎面板交流社区,与开发者和用户共同探讨、交流经验与反馈建议!
| 社区反馈与指引 |
QQ 交流群 |
- 问题反馈 (Bug Report):如果在使用中遇到问题,欢迎提交 GitHub Issues
- 功能建议 (Feature Request):有新的想法或需求,随时发起讨论
- 代码贡献 (Pull Request):非常欢迎提交 PR 参与共建
- 使用文档 (Documentation):遇到配置与使用疑问可查阅 官方文档中心
|
 QQ 群号:468870216 |
鸣谢
许可证
本项目采用 Apache License 2.0 协议发布,并包含额外的 NOTICE 说明。
强制要求: 在任何分发、修改或二次开发中,必须完整保留原作者署名及项目名称(详见 NOTICE 文件)。
评论