白虎面板

May 29, 2026 · View on GitHub

Hits Version Image Size Image pulls

白虎面板 (Baihu Panel) 是一款极致轻量、高性能的自动化任务调度平台。采用 Go + Vue3 架构,专注于高性能与低系统开销。通过深度集成 Mise 运行时管理,它原生支持 Python、Node.js、Go、Rust、PHP 等所有主流语言环境的动态安装(几乎所有的版本)与统一依赖管理。支持 Docker/Docker-Compose 一键部署,开箱即用,是您理想的轻量化脚本托管与任务调度解决方案。

演示站点(演示站点的服务器比较烂,见谅) 演示站点

文档说明 文档说明

更新日志 ☕

最近更新

2026.05.29 - 自定义前端框架 (WebUI):新增前端定制管理机制,支持开发和上传第三方前端静态资源包 (.tar.gz / .zip),完全无缝接管并替换内置的系统面板界面,支持实现深度主题化定制。详情请看前端定制说明文档

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)为例,一个pythonrequests脚本每隔30s执行一次,有时候cpu执行的时候能跳变到50%以上。可以看看下面gif图片(如果不动,点击图片查看)

qinglong.gif

我觉得一个内存和性能占用低的面板更合适自己,所以做了这个项目。

如果你和我一样需要一个性能和内存占用低的定时面板,这个项目你可以体验下。

同样的定时场景和代码,这个项目的情况如下(cpu执行定时跳变不超过20%):

baihu.gif

如果项目有用,请帮忙点个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)

  • 支持 青龙 仓库命令格式快捷导入
  • 自动解析脚本注释中的 Cron 表达式和环境变量名
  • 支持基于正则表达式的白名单、黑名单文件筛选
  • 支持脚本依赖文件的识别与保留
  • 自动同步远程 Git 仓库变更,增量更新面板任务

系统设置

  • 站点标题、标语、图标自定义
  • 分页大小、Cookie 有效期配置
  • 调度参数热重载
  • 数据备份与恢复

支持语言脚本和依赖

点击展开查看已支持的语言及依赖管理详情

脚本运行环境

白虎面板原生支持以下脚本的定时执行:

  • Python3, Node.js, Bash (标准版镜像内置环境)
  • 通过 Mise 扩展:支持几乎所有主流编程语言的动态安装与切换。
  • Minimal 版:不预置 Python/Node,仅内置 Mise 底座,由用户按需安装。

依赖管理支持

系统内置了高度集成的跨语言依赖管理器,支持自动化安装和管理以下语言的依赖项,并确保在容器内全局可用:

语言包管理器功能说明
Pythonpip自动使用内置虚拟环境,支持清华源
Node.jsnpm全局安装模式,自动配置 npmmirror 镜像
Gogo install通过 go install 安装二进制工具
Rustcargo通过 cargo install 安装 Rust 依赖
Rubygem支持 gem install 本地安装
Bunbun支持 bun add -g 全局模式
PHPcomposer支持 composer global require
Denodeno支持 deno install -g
.NETdotnet支持 dotnet tool install -g
Elixir/Erlangmix支持 mix archive.install
Lualuarocks通过 luarocks 管理 Lua 包
Nimnimble支持 nimble install
Dart/Flutterpub支持 pub global activate
Perlcpanm简单的 cpanm 安装支持
Crystalshardsshards 项目级别或工具安装

使用方法

  1. 安装环境:进入「编程语言」页面,使用 mise 一键安装所需的语言及版本。
  2. 依赖管理:在已安装列表点击「依赖管理」,输入名称(可选版本)即可自动在对应环境内完成安装。
  3. 隔离机制:系统基于 mise exec 实现了完善的环境隔离,不同版本的依赖包互不冲突。

效果图

baihu-display.gif

快速部署

项目提供多种基础镜像,可根据具体环境选择:

标签 (Tag)基础镜像说明
latestDebian 12默认推荐:集成 Python 3.13 与 Node.js 23,开箱即用
latest-debian13Debian 13尝鲜版本,基于 Debian Trixie
latest-minimalDebian 13最小化版:不预置语言环境,由用户通过面板自主按需安装

提示:下方部署示例默认使用 latest 标签,如需换用 Debian 13 版,只需将 latest 替换为 latest-debian13 即可。

警告架构升级破坏性变更

本版本(2026.02.13+)对底层运行时环境进行了彻底重构,弃用了原有的静态 Python/Node 环境,转为使用 Mise 进行动态版本管理。

  1. 不再提供 Alpine 镜像:由于 glibc 兼容性问题,Mise 无法在 Alpine 上完美运行,因此暂时取消 Alpine 镜像支持。
  2. 环境数据不兼容:如果您是从旧版本升级上来,原有的 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.iniconfigs/config.ini,然后根据需要修改配置。

配置文件示例(configs/config.ini):

[server]
port = 8052
host = 0.0.0.0
# 可选:配置 URL 前缀用于反向代理,例如 /baihu
url_prefix = 

[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 中创建 baihumessage_nest 两个数据库,并修改配置中的 MySQL 地址和密码。也可以使用同一个数据库。

在任务中使用推送

如今你无需依赖任何外部服务,可以通过面板自身完成:

  1. 进入白虎面板「消息推送」模块,新建你需要通知的渠道。
  2. 可以在「事件绑定」中直接设定自动化系统通知(如监控任务失败或脚本异常中止时进行自动提醒)。
  3. 如需在自己的脚本逻辑内动态推送,可以点击「脚本调用」页面,立刻获取一键调用的 Shell / API 代码,内嵌进你的业务逻辑中即可完成推信!

(如继续使用 Message-Push-Nest,你可以通过其管理界面中「消息模板」的「复制推送代码」提取旧有版集成样例。)

1768143124572.png

提示:在 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;
}

配置说明:

  1. example.com 替换为你的域名
  2. 修改 SSL 证书路径为你的实际路径
  3. 172.17.0.1:8052 是 Docker 容器的宿主机地址和端口,根据实际情况修改
  4. 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 会执行以下操作:

  1. 目录就绪:检查并创建 /app/data/app/configs/app/envs 等核心目录。
  2. Mise 环境同步:自动从镜像内置基础环境同步初始化文件至 /app/envs/mise,确保持久化挂载后运行时依然可用。
  3. 运行时激活
    • 自动注入 MISE_DATA_DIR 等环境变量,确保运行时数据指向持久化目录。
    • mise shims 路径加入系统 PATH,实现 Python、Node.js 等多版本环境的全局无感调用。
  4. 依赖管理预设:默认配置 Python 清华源(PIP)镜像,优化 Node.js 默认内存上限。
  5. 启动应用:运行 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_PORTserver.port服务端口8052
BH_SERVER_HOSTserver.host监听地址0.0.0.0
BH_SERVER_URL_PREFIXserver.url_prefixURL 前缀,用于反向代理子路径部署-
BH_DB_TYPEdatabase.type数据库类型 (sqlite/mysql)sqlite
BH_DB_HOSTdatabase.host数据库地址localhost
BH_DB_PORTdatabase.port数据库端口3306
BH_DB_USERdatabase.user数据库用户root
BH_DB_PASSWORDdatabase.password数据库密码-
BH_DB_NAMEdatabase.dbname数据库名称bh_panel
BH_DB_PATHdatabase.pathSQLite 文件路径./data/baihu.db
BH_DB_TABLE_PREFIXdatabase.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/*
WebSocketws://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)仅作为一个轻量级的任务托管与调度平台,本项目及相关代码不提供、不内置任何具有实际业务逻辑的第三方脚本

在使用本项目时,请您务必知悉并同意以下条款:

  1. 脚本来源审核:请勿轻易执行任何来源不明或不可信的外部脚本。所有在平台上运行的脚本及代码均需由用户自行添加或配置,用户必须在执行前仔细阅读并审核其源代码,确保其安全性。
  2. 安全责任自负:本项目作为基础调度工具,无法且不保证任何被执行任务的安全性。因运行不安全、违规脚本带来的一切数据泄露、系统损坏、财产损失及法律责任等后果,均由使用者自行承担,与本项目及开发者无关。
  3. 软件按“原样”提供:本项目为业余开源开发,按“原样”提供,不保证不存在 Bug 或漏洞。开发者不对因使用本项目而引起的任何直接或间接损失负责。

贡献

欢迎提交 Issue 和 Pull Request!如果觉得本项目对你有帮助,不求大富大贵,只求顺手点个 Star,大家的 Star 是我持续更新的动力!

许可证

本项目采用 Apache License 2.0 协议发布,并包含额外的 NOTICE 说明。

强制要求: 在任何分发、修改或二次开发中,必须完整保留原作者署名及项目名称(详见 NOTICE 文件)。