轩辕镜像 官方专业版
轩辕镜像
专业版
轩辕镜像 官方专业版
轩辕镜像
专业版
首页个人中心搜索镜像
交易
充值流量¥8起我的订单
文档
工具
提交工单页面收录
ghcr.io/engigu/baihu

ghcr.io/engigu/baihu:1.2.0-minimal

ghcr.iolinux/amd641.2.0-minimal大小: 174.49 MB更新于 2026年10月7日
让 AI 帮你使用轩辕镜像? · 展开查看说明 · 点击收起说明

如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。

只需在 AI 对话中先发送下面这段话即可:

请先阅读并遵守:https://xuanyuan.cloud/agents.md

未读文档前不要生成 pull 命令或排错方案。

查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。

白虎面板

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

截止 2026 年 9 月 22 日,系统核心功能框架已全部搭建完成,从声明式 YAML 的全流程编排定义,到底层任务调度,再到多端消息推送,正式构建起完整的自动化生命周期闭环。

演示站点(演示站点服务器配置较低,敬请谅解):演示站点

文档说明:https://engigu.github.io/baihu-panel/

更新日志

[!NOTE] 最新版本:https://github.com/engigu/baihu-panel/releases/tag/v1.4.2 (2026.10.01)

  • 系统设置全模块视觉与交互重构:全面重构安全、站点、前端定制、调度、备份恢复及关于页面,解耦嵌套卡片,新增 2FA 安全盾评估、硬件推荐调优矩阵、主题画廊网格与终端救生命令一键复制功能。
  • 声明式应用卸载级联清理与标签回收:卸载应用时支持安全级联清理未被复用的关联环境变量,自动回收无引用的孤儿标签,并同步精准注销调度器中的对应任务。
  • Checkbox 默认勾选修复与弹窗体验优化:修复 Checkbox 默认选中失效问题,应用卸载页面默认勾选清理环境变量选项;任务/应用删除弹窗接入防重防抖 Loading 保护,消除 WAI-ARIA 告警。
  • Windows 托盘更新弹窗优化:系统托盘新版本提示弹窗支持内容区域滚动,保障用户可以完整清晰地浏览长更新日志。

点击展开查看近期历史版本日志

  • 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 防护。

https://engigu.github.io/baihu-panel/guide/changelog.html

项目来由

本项目的诞生和青龙面板有一定关联,我本人也是青龙面板的长期使用者,但目前青龙面板的性能表现我认为难以满足使用需求。以我自己的使用场景(机器1C2G)为例,一个使用 requests 库的 Python 脚本每 30s 执行一次,运行时 CPU 占用有时会跳变至 50% 以上。相关演示效果可查看下方动图(若动图无法播放,可点击图片查看)。

我认为一款内存占用更低、性能表现更优的面板会更贴合自身使用需求,因此开发了本项目。

如果你和我一样,需要一个低性能开销、低内存占用的定时任务面板,不妨体验一下本项目。

在完全相同的定时场景与代码条件下,本项目的运行表现如下:任务执行时 CPU 峰值跳变不超过 20%。

如果本项目对你有所帮助,欢迎前往项目主页点一个 Star 支持。

特色

  • 轻量级: Docker/Compose 部署,无需复杂配置,开箱即用
  • 任务调度: 支持标准 Cron 表达式,提供常用时间规则快捷选择。日志不落盘存储,无磁盘频繁 IO 问题
  • 脚本管理: 内置在线代码编辑器,支持文件上传、压缩包解压
  • 在线终端: WebSocket 实时终端,命令执行结果实时输出
  • 消息推送: 内置功能完善的消息推送与通知引擎,无缝兼容主流推送渠道,支持系统级事件告警
  • 机密管理: (新增) 类似 GitHub Secrets 的安全存储机制,支持 AES-GCM 加密,日志自动对敏感内容打码,仅在任务调度时注入运行环境
  • 环境变量: 用于存储普通配置项,任务执行时自动注入运行环境
  • 现代UI: 响应式设计,支持深色/浅色主题切换
  • 移动端适配: 完美适配移动设备小屏显示样式
  • 远程执行: 支持通过远程 Agent 执行任务,实时展示执行结果
  • 多语言支持: 深度集成 Mise,支持几乎所有主流编程语言的动态安装、多版本切换及统一依赖管理
  • 内建助手库: (新增) 为 Python/Node.js 提供零配置助手库,只需简单 import 即可实现一键消息推送,无需手动管理 API Token 和访问 URL

功能特性

点击展开查看详细功能列表

定时任务管理

  • 支持标准 Cron 表达式调度
  • 提供常用时间规则快捷选择
  • 任务启用/禁用状态一键切换
  • 支持手动触发任务执行
  • 支持自定义任务超时控制

脚本文件管理

  • 内置在线代码编辑器
  • 支持文件树形结构可视化展示
  • 支持创建、重命名、删除文件/文件夹
  • 支持压缩包上传与自动解压
  • 支持多文件批量上传

在线终端

  • WebSocket 实时交互终端
  • 支持所有常用 Shell 命令
  • 命令执行结果实时回显输出

执行日志

  • 全量任务执行历史记录留存
  • 执行状态全链路追踪(成功/失败/超时)
  • 支持执行耗时自动统计
  • 日志内容自动压缩存储
  • 日志支持按规则自动清理

消息推送与系统通知

  • 原生内置各大主流平台推送渠道(钉钉、企业微信、***、Server酱 等)
  • 支持系统级事件条件触发通知(例如任务失败报警、服务下线提醒)
  • 可自动生成跨语言调用 API 示例代码,方便直接集成到业务脚本中

变量与机密管理

  • 支持普通环境变量与安全机密(Secret)分类独立管理
  • 机密内容使用 AES-GCM 加密存储,数据库不存储明文
  • 解密密钥仅在内存中临时留存,服务启动读取后立即销毁(Unset)
  • 执行日志自动扫描并屏蔽(******)**所有敏感机密内容
  • 严格权限隔离机制:机密仅在定时任务调度时注入运行环境,终端/测试调试环境完全不可见

节点互联体系 (新增)

  • 支持 OpenConnect 协议,轻松实现多台白虎面板实例之间的互联互通
  • 支持节点间的环境变量无缝同步(完整保留原有结构与 ID)
  • 集成同步管理控制台,可统一查看与管控各节点状态与负载指标
  • 底层路由深度适配穿透隧道,完美支持分布式前端代理访问场景

仓库任务同步 (新增)

  • 支持青龙仓库命令格式快捷导入
  • 自动解析脚本注释中定义的 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 安装支持
Crystalshards支持 shards 项目级别或工具安装

使用方法

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

效果图

快速部署

项目提供多种基础镜像,可根据实际使用环境选择:

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

[!TIP] 下文所有部署示例默认使用 latest 标签,如需换用 Debian 13 版本,只需将镜像标签中的 latest 替换为 latest-debian13 即可。

[!WARNING] 架构升级破坏性变更

本版本(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:

镜像名称:ghcr.io/engigu/baihu 参考标签:latest

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_

方式三:配合独立中心化消息服务部署(非必需/仅供参考)

[!NOTE] 原生内置推送:自白虎面板最新版本起,系统已原生内置了完整强大的消息推送功能!您可直接在面板「消息推送」菜单内绑定十余种主流渠道和系统通知事件,原配合外置的 Message-Push-Nest 部署方式已不再是使用面板的基础要求。您可随时直接使用上方的第一种简单命令开箱即用体验。

以下「白虎 + 消息聚合服务」的联合部署内容被予以保留,专为仍然需要「中心化通知网关」的重度企业解耦用户作为参考:

白虎面板通过系统集成也可轻松连接独立的消息聚合服务。这里推荐使用 https://github.com/engigu/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

访问地址:

  • 白虎面板:http://localhost:8052
  • 消息推送服务:http://localhost:8053

注意:使用 MySQL 方式时,请先在 MySQL 中创建 baihu 和 message_nest 两个数据库,并修改配置中的 MySQL 地址和密码。也可以使用同一个数据库。

在任务中使用推送

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

  1. 进入白虎面板「消息推送」模块,新建你需要通知的渠道。
  2. 可以在「事件绑定」中直接设定自动化系统通知(如监控任务失败或脚本异常中止时进行自动提醒)。
  3. 如需在自己的脚本逻辑内动态推送,可以点击「脚本调用」页面,立刻获取一键调用的 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;
}

配置说明:

  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 位随机密码并打印在日志中)

[!IMPORTANT] 出于安全性考虑,系统不再使用固定默认密码。请在容器启动日志中搜索 管理员账号创建成功 找到您的随机密码,并登录后及时修改。


命令行工具 (CLI)

白虎面板在环境内内置了同名的 baihu 命令行工具。如果您在终端内需要执行系统级别的操作,可以使用以下命令:

baihu server # 以前台方式启动面板的后台进程服务(面板启动指令)
baihu reposync # 供定时任务调用,将远程 Git 仓库的高级特性同步到本地目录中
baihu resetpwd # 交互式重置系统 admin 账号密码(密码丢失时可通过进入终端重置)
baihu restore # 使用本地的 .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 等多版本环境的全局无感调用。
  1. 依赖管理预设:默认配置 Python 清华源(PIP)镜像,优化 Node.js 默认内存上限。
  2. 启动应用:运行 baihu 面板主进程。

[!NOTE] 通过挂载 ./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_COOKIE_NAMEserver.cookie_name全局会话 Cookie 名称BHToken
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

修改调度设置后立即生效,无需重启服务。

免责声明

[!WARNING] 重要免责条款:

白虎面板(Baihu Panel)仅作为一个轻量级的任务托管与调度平台,本项目及相关代码不提供、不内置任何具有实际业务逻辑的第三方脚本。

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

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

贡献者

感谢所有为白虎面板做出贡献的开发者们!大家的 Star 和 Pull Request 是项目持续迭代的动力!

社区交流

欢迎加入白虎面板交流社区,与开发者和用户共同探讨、交流经验与反馈建议!

社区反馈与指引QQ 交流群
问题反馈 (Bug Report):如果在使用中遇到问题,欢迎提交 GitHub Issues 功能建议 (Feature Request):有新的想法或需求,随时发起讨论 代码贡献 (Pull Request):非常欢迎提交 PR 参与共建 使用文档 (Documentation):遇到配置与使用疑问可查阅 官方文档中心***号:468870216

鸣谢

  • Windows 安装包的简体中文语言包使用了由 https://github.com/kira-96 维护的开源项目 https://github.com/kira-96/Inno-Setup-Chinese-Simplified-Translation,特此致谢。

许可证

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

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

轩辕镜像配置手册

按平台快速找到配置文档

一键安装

一键安装 Docker

Linux Docker 一键安装

AI

用 AI 使用轩辕镜像

agents.md · AI 对话 · 提示词

Docker

登录仓库拉取

登录认证 · 私有仓库

专属域名拉取

免登录 · 高速拉取

Linux

Docker 镜像配置

Windows / Mac

Docker Desktop 配置

MacOS OrbStack

OrbStack 容器

Apple Container

macOS 原生容器

Docker Compose

Compose 项目配置

NAS

群晖

Synology 配置

飞牛

fnOS 镜像配置

绿联

绿联 NAS

威联通

QNAP 配置

极空间

极空间 NAS

Unraid

Unraid NAS

企业仓库

其他仓库

ghcr · Quay · nvcr

Harbor 镜像源

Proxy Repository 对接

Portainer 镜像源

Registries 配置

Nexus 镜像源

Docker Proxy 缓存

开发工具

Dev Containers

VS Code 开发容器

Podman

Podman 配置指南

Singularity / Apptainer

HPC 科学计算容器

Kubernetes

K8s Containerd

Kubernetes · Containerd

K3s

轻量级集群

面板 / 网络

爱快路由

爱快 4.0 · iKuai 镜像加速

宝塔面板

一键配置镜像源

需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

功能

版本功能对比

功能对比 · 版本选择

支持的镜像仓库

Docker Hub · GCR · GHCR

专属域名用法

专属域名 · 开启停用 · 多仓库

新手拉取配置

登录 · 专属域名 · 配置

docker search 限制

专属域名 · Hub 搜索

不支持 push

仅支持 pull · 不支持

拉取速度原因

带宽 · 缓存 · 冷热镜像

错误码

402 与流量用尽

402 · 流量包 · 充值

401 认证失败

401 · docker login

manifest unknown

标签错误 · 镜像不存在

410 Gone 排查

410 · Docker 升级

429 限流

免费版 · 专业版 · 企业版 · 请求频率

其他报错

DNS 超时

DNS 解析 · 网络超时

TLS 证书失败

no matching manifest(架构)

docker.sock / daemon

账号

失败是否计费

manifest · blob · 计费

申请开票(企业 / 个人)

开票 · 发票 · 工单

修改登录密码

网站 · 仓库 · 重置

注销账户

工单 · 数据 · 注销

原理

mirrors 不生效

daemon.json · 重启

去掉域名前缀

docker tag · 重命名

指定架构拉取

ARM64 · AMD64 · 多架构

latest 与「最新」

digest · 版本号 · 标签

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

用户头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
ghcr.io/engigu/baihu
定价查看流量套餐与价格
博客Docker 镜像公告与技术博客
官方技术交流群:|问题咨询请:提交工单
服务号:轩辕镜像|公众号:源码跳动|小程序:轩辕镜像|官方技术交流群:|问题咨询请:提交工单
专业版 · 高速稳定拉取镜像
高速镜像下载·在线技术支持·99.95% SLA 保障·付费会员免广告
50GB 仅 ¥8/年
专业版 · 高速稳定拉取镜像
50GB 仅 ¥8/年
高速镜像下载·在线技术支持·99.95% SLA 保障·付费会员免广告
用户协议·隐私政策·增值电信业务经营许可证:浙B2-20261007·©2024-2026 源码跳动©2024-2026 杭州源码跳动科技有限公司·商务合作:点击复制邮箱