docs: globally rename panel name to baihu-panel and refactor linux dependencies guide

This commit is contained in:
duorameng
2026-06-23 09:30:18 +08:00
parent a745fb952c
commit 81a00d983a
23 changed files with 132 additions and 63 deletions
+3 -2
View File
@@ -2,7 +2,7 @@ import { defineConfig } from 'vitepress'
// https://vitepress.dev/reference/site-config
export default defineConfig({
title: '白虎面板',
title: 'baihu-panel',
description: '轻量易用的定时任务面板,支持多语言脚本、依赖管理与日志查看',
base: '/baihu-panel/',
lang: 'zh-CN',
@@ -43,7 +43,8 @@ export default defineConfig({
link: '/guide/examples/',
items: [
{ text: '浏览器示例', link: '/guide/examples/browser' },
{ text: '内置库示例', link: '/guide/examples/builtin' }
{ text: '内置库示例', link: '/guide/examples/builtin' },
{ text: 'Linux 环境依赖', link: '/guide/examples/linux-deps' }
]
}
]
+1 -1
View File
@@ -1,6 +1,6 @@
# 更新日志 ☕
本页面记录了白虎面板的主要版本更新历史。
本页面记录了baihu-panel的主要版本更新历史。
## 最近更新概览
+1 -1
View File
@@ -1,6 +1,6 @@
# 命令行工具 (CLI)
白虎面板在环境内内置了同名的 `baihu` 命令行工具。如果您在终端内需要执行系统级别的操作,可以使用这些内置命令。
baihu-panel在环境内内置了同名的 `baihu` 命令行工具。如果您在终端内需要执行系统级别的操作,可以使用这些内置命令。
## 常用核心指令
+2 -2
View File
@@ -1,6 +1,6 @@
# 系统配置手册
白虎面板支持通过环境变量和配置文件两种核心方式进行系统参数微调。
baihu-panel支持通过环境变量和配置文件两种核心方式进行系统参数微调。
## 环境变量配置 (优先级最高)
@@ -72,7 +72,7 @@ table_prefix = baihu_
## 机密管理 (Secret Management)
白虎面板提供了一套基于 **AES-GCM** 工业级标准的安全机密管理系统,其设计理念参考了 GitHub Actions Secrets。
baihu-panel提供了一套基于 **AES-GCM** 工业级标准的安全机密管理系统,其设计理念参考了 GitHub Actions Secrets。
### 核心特性
+1 -1
View File
@@ -1,6 +1,6 @@
# 数据仪表
数据仪表提供了白虎面板的全局运行状态、任务执行统计及关键指标的可视化展示。
数据仪表提供了baihu-panel的全局运行状态、任务执行统计及关键指标的可视化展示。
## 主要功能
+2 -2
View File
@@ -129,9 +129,9 @@ volumes:
## 自动更新 Docker 镜像
如果您希望白虎面板能够自动拉取最新镜像并无感更新,推荐使用 **Watchtower**。Watchtower 会定期检查被监控容器的基础镜像,当发现有新版本推送时,它会自动拉取新镜像、使用与原容器完全相同的配置重启容器。
如果您希望baihu-panel能够自动拉取最新镜像并无感更新,推荐使用 **Watchtower**。Watchtower 会定期检查被监控容器的基础镜像,当发现有新版本推送时,它会自动拉取新镜像、使用与原容器完全相同的配置重启容器。
由于白虎面板采用持久化挂载(数据和环境都在外部),因此自动更新不会造成任何数据丢失。
由于baihu-panel采用持久化挂载(数据和环境都在外部),因此自动更新不会造成任何数据丢失。
### 方式一:独立一行命令运行 Watchtower(推荐)
+2 -2
View File
@@ -1,6 +1,6 @@
# 免责声明
白虎面板Baihu Panel)及其开发者在提供本项目的同时,默认用户已完全知悉并同意以下条款:
baihu-panelBaihu Panel)及其开发者在提供本项目的同时,默认用户已完全知悉并同意以下条款:
## 1. 免责保证
@@ -15,7 +15,7 @@
## 3. 授权与使用
- **合理镜像申请**:由于项目涉及到网络请求和资产调度,请遵循相关的开源协议进行公平、合理的使用。
- **禁止非法用途**:严禁将白虎面板用于任何违反中华人民共和国法律法规及相关组织政策的行为。
- **禁止非法用途**:严禁将baihu-panel用于任何违反中华人民共和国法律法规及相关组织政策的行为。
---
+3 -3
View File
@@ -9,7 +9,7 @@
## 部署方式对比
白虎面板强烈建议采用 **单独部署浏览器服务(如 Browserless** 的方案,而不是在白虎镜像内部安装浏览器。
baihu-panel强烈建议采用 **单独部署浏览器服务(如 Browserless** 的方案,而不是在白虎镜像内部安装浏览器。
### 本地部署 (在白虎容器内安装) 的缺点
- **资源争抢**:浏览器是极度的“内存/CPU 杀手”,在同一容器内运行多任务极易导致白虎主进程因 OOM (内存溢出) 而崩溃。
@@ -18,7 +18,7 @@
- **不利于扩展**:无法实现多节点负载均衡,一个容器内的资源始终是有限的。
### 远程部署 (Browserless) 的优势
- **性能隔离**:浏览器的负载波动不会影响白虎面板的稳定性。
- **性能隔离**:浏览器的负载波动不会影响baihu-panel的稳定性。
- **开箱即用**:专业的浏览器镜像是针对性优化的,包含所有底层依赖和沙箱安全配置。
- **可视化调试**:大多数服务(如 Browserless)支持通过 VNC 同步查看浏览器画面,方便排查脚本逻辑。
- **弹性伸缩**:支持多会话、多实例模式,可以应对高并发爬虫需求。
@@ -27,7 +27,7 @@
## 准备工作
白虎面板中运行浏览器自动化脚本前,需要先配置好对应的 **语言环境****第三方依赖包**
baihu-panel中运行浏览器自动化脚本前,需要先配置好对应的 **语言环境****第三方依赖包**
### 1. Node.js 环境 (JavaScript)
如果您使用 `playwright.js` 脚本:
+2 -2
View File
@@ -1,6 +1,6 @@
# 内置库示例
白虎面板提供了一个名为 `baihu` 的内建包(Built-in SDK),支持 Python 和 Node.js。通过该内置库,您可以在脚本中实现**消息推送**、**环境变量管理**以及**任务执行控制**等高级功能。
baihu-panel提供了一个名为 `baihu` 的内建包(Built-in SDK),支持 Python 和 Node.js。通过该内置库,您可以在脚本中实现**消息推送**、**环境变量管理**以及**任务执行控制**等高级功能。
---
@@ -9,7 +9,7 @@
在运行内置库脚本之前,请确保完成了以下步骤:
### 1. 安装内置包
白虎面板的「终端」页面中,或者通过创建临时任务执行以下命令,为面板管理的所有语言环境安装 `baihu` 包:
baihu-panel的「终端」页面中,或者通过创建临时任务执行以下命令,为面板管理的所有语言环境安装 `baihu` 包:
```bash
baihu builtininstall
+1
View File
@@ -24,3 +24,4 @@ example/
- [浏览器示例](./browser.md)
- [内置库示例](./builtin.md)
- [Linux 环境依赖示例](./linux-deps.md)
+84
View File
@@ -0,0 +1,84 @@
# Linux 系统依赖处理
在使用baihu-panel时,您可能会在运行某些脚本时遇到缺少底层 Linux 系统级依赖(例如 `apt``apk` 包)的情况。这篇指南将详细讲解如何优雅、持久地解决这些依赖问题。
## 背景与痛点
baihu-panel通常以 Docker 容器的形式运行。Docker 的文件系统具有以下特性:
- **挂载目录(持久化)**:像 `data/` 这样的目录被映射到了宿主机,其中的数据(如脚本、日志、配置文件)在重启或升级镜像时会保留。
- **容器层(非持久化)**:容器自身的系统目录(如 `/usr/bin`, `/lib`, `/etc`)是临时层。如果您直接在终端里执行 `apt-get install xxx`,虽然当下可以立即使用,**但在面板重启、重建或更新镜像后,这些刚安装的系统包就会全部丢失。**
## 核心解决思路
为了解决依赖丢失的问题,baihu-panel提供了一种自动化的解决方案:**利用 `baihu_startup`(开机触发)类型的定时任务,在面板每次启动时自动执行一段依赖安装脚本。**
这样,无论您如何更新镜像或重启容器,系统依赖都能在面板核心服务就绪前自动被补充安装,并且对后续的普通脚本任务透明。
---
## 具体操作步骤
### 第一步:编写依赖安装脚本
首先,在您的脚本目录(通常为 `data/scripts` 下,或者您可以单独建一个 `data/scripts/deps` 目录)创建一个 Shell 脚本,例如 `install_my_deps.sh`
由于baihu-panel的镜像目前均基于 Debian 系统,您可以直接在脚本中使用 `apt``apt-get` 命令来管理系统依赖。
**示例 1:安装 Puppeteer (无头浏览器) 的依赖动态库**
```bash
#!/bin/bash
# 遇到错误即停止执行
set -e
echo "正在检测并安装 Puppeteer 依赖..."
# 提前 update 索引是非常重要的一步
apt-get update
apt-get install -y libnss3 libnspr4 libatk1.0-0 libatk-bridge2.0-0 libcups2 libdrm2 libxkbcommon0 libxcomposite1 libxdamage1 libxfixes3 libxrandr2 libgbm1 libasound2
echo "Puppeteer 依赖安装完成!"
```
**示例 2:安装 Python/C++ 编译所需的基础工具链**
```bash
#!/bin/bash
set -e
apt-get update
# 安装 gcc, g++, make 以及 python3 相关的头文件
apt-get install -y build-essential python3-dev
```
### 第二步:配置开机触发任务
脚本编写并保存到面板后,接下来只需将其配置为开机任务:
1. 进入面板的 **「定时任务」** 页面,点击 **「新建任务」**。
2. **任务名称**: 填写容易辨识的名称,例如 “安装系统底层依赖”。
3. **执行命令**: 输入执行该脚本的命令,例如 `bash deps/install_my_deps.sh` (假设您将脚本放在了 `deps` 文件夹下)。
4. **触发类型**: 在下拉菜单中选择 **`baihu_startup` (开机触发)**。
5. **保存** 任务。
现在,你可以尝试在终端中执行一下该任务验证脚本是否无误。一旦无误,未来每次容器重启,面板都会自动在后台静默执行这个任务,确保环境完备。
---
## 官方预设示例:PHP 编译依赖
为了方便用户参考,我们在项目源码中内置了一个更完善的依赖安装脚本示例。
通过 `mise` 安装某些 PHP 版本时,系统会尝试从源码编译,这就需要用到 `autoconf`, `bison`, `pkg-config` 等工具。
如果您在安装 PHP 时遇到 `autoconf not found``buildconf failed`,可以直接使用项目根目录下的预设示例脚本:
- **路径位置**: `example/deps/install_php_env_deps.sh`
- **使用方法**: 新建 `baihu_startup` 触发类型的任务,执行命令填写 `bash example/deps/install_php_env_deps.sh` 即可。
此示例脚本中还包含了“检测是否已安装再决定是否执行 apt install”的逻辑,您可以查阅其源码作为编写自己依赖脚本的最佳实践参考。
---
## 💡 注意事项与进阶建议
1. **幂等性 (Idempotency)**:开机脚本在每次重启时都会执行。像 `apt-get install -y` 这种命令天然是幂等的(如果已安装就不会重新下载),但这可能会轻微拖慢面板开机速度。您可以在脚本中先用 `dpkg -l <包名>``command -v <命令>` 判断依赖是否存在,不存在时再执行安装。
2. **网络环境**:如果您的服务器在国内,Docker 容器内部直接使用 `apt-get` 可能会非常缓慢。您可以在安装包之前,通过脚本将 `/etc/apt/sources.list.d/debian.sources` 替换为清华源或阿里云源。
3. **避免冲突**:请仅安装您脚本运行强依赖的底层库,尽量不要通过 `apt` 安装 Node.js 或 Python 的运行环境,这些高级语言环境应交由面板的 **「编程语言」** (Mise) 模块统一管理。
+1 -1
View File
@@ -1,6 +1,6 @@
# 访问面板
部署成功并启动容器后,您只需通过浏览器即可访问白虎面板
部署成功并启动容器后,您只需通过浏览器即可访问baihu-panel
## 默认账号
+1 -1
View File
@@ -1,6 +1,6 @@
# 项目介绍
白虎面板 (Baihu Panel) 是一款极致轻量、高性能的自动化任务调度平台。采用 Go + Vue3 架构,专注于高性能与低系统开销。
baihu-panel (Baihu Panel) 是一款极致轻量、高性能的自动化任务调度平台。采用 Go + Vue3 架构,专注于高性能与低系统开销。
## 核心亮点
+4 -11
View File
@@ -1,10 +1,10 @@
# 语言依赖
白虎面板深度集成了 **Mise** 运行时管理器,这使得它具备多版本语言环境的高灵活性和隔离性。
baihu-panel深度集成了 **Mise** 运行时管理器,这使得它具备多版本语言环境的高灵活性和隔离性。
## 脚本运行环境
白虎面板原生支持以下脚本的定时执行:
baihu-panel原生支持以下脚本的定时执行:
- **Python3**, **Node.js**, **Bash** (标准版镜像内置环境)
- 通过 **Mise** 扩展:支持几乎所有主流编程语言的动态安装与切换。
@@ -51,7 +51,7 @@
### 安装 Ansible
白虎面板推荐通过 `mise` 结合 `pipx` 安装 Ansible,以保持环境隔离且全局可用:
baihu-panel推荐通过 `mise` 结合 `pipx` 安装 Ansible,以保持环境隔离且全局可用:
```bash
# 首先安装 pipx
@@ -63,19 +63,12 @@ mise use -g ansible@latest
安装完成后,您可以在「脚本管理」或「定时任务」中直接调用 `ansible``ansible-playbook` 命令。
## PHP 环境特别说明
在 Docker 容器或精简版 Linux 环境中,通过 `mise` 安装某些 PHP 版本时,如果官方没有提供预编译的二进制包,系统会尝试从源码编译。这需要额外的系统级构建依赖(如 `autoconf`, `bison`, `pkg-config` 等)。
如果您在安装 PHP 时遇到 `autoconf not found``buildconf failed` 等错误,请参考以下方案:
1. **运行预设脚本**: 我们在项目根目录提供了示例脚本 [install_php_env_deps.sh](file:///example/deps/install_php_env_deps.sh),它会自动安装所需的系统库。
2. **配置为开机任务**: 由于 Docker 容器层通常是只读的或在重启后重置(非挂载目录),建议在面板中创建一个 **触发类型为 `baihu_startup`** 的定时任务,命令填写 `bash example/deps/install_php_env_deps.sh`。这样可以确保每次容器启动时都会自动准备好 PHP 编译环境。
---
## 隔离机制说明
- 白虎面板通过动态注入 `PATH` 环境和 `mise shims` 将语言环境暴露给系统。
- baihu-panel通过动态注入 `PATH` 环境和 `mise shims` 将语言环境暴露给系统。
- 每个任务在执行前都会根据任务配置自动加载对应的运行时环境变量。
- **运行时激活**:自动将 `MISE_DATA_DIR` 等环境变量指向宿主机的持久化挂载目录,确保护持久化可用。
+2 -2
View File
@@ -1,6 +1,6 @@
# Nginx 反向代理配置
如果您需要通过域名和 HTTPS 访问白虎面板,推荐使用 Nginx 作为反向代理并配置 WebSocket 负载均衡。
如果您需要通过域名和 HTTPS 访问baihu-panel,推荐使用 Nginx 作为反向代理并配置 WebSocket 负载均衡。
## Nginx 反向代理配置示例
@@ -31,7 +31,7 @@ server {
error_log /var/log/nginx/example.error.log warn;
location / {
proxy_pass http://127.0.0.1:8052; # 指定白虎面板宿主机 IP 和端口
proxy_pass http://127.0.0.1:8052; # 指定baihu-panel宿主机 IP 和端口
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;
+3 -3
View File
@@ -18,7 +18,7 @@
## 推送使用路径
白虎面板提供了两种不同层面的通知推送方式,满足从“自动报警”到“程序内自定义推送”的全场景需求。
baihu-panel提供了两种不同层面的通知推送方式,满足从“自动报警”到“程序内自定义推送”的全场景需求。
---
@@ -37,7 +37,7 @@
### 路径二:脚本手动调用 (内置助手库 - 推荐)
白虎面板提供了一套**零配置**的内建助手库(Built-in SDK),支持 Python 和 Node.js。除了支持极简的消息通知投递外,它还支持管理面板的**环境变量**与**定时任务控制**。
baihu-panel提供了一套**零配置**的内建助手库(Built-in SDK),支持 Python 和 Node.js。除了支持极简的消息通知投递外,它还支持管理面板的**环境变量**与**定时任务控制**。
#### 1. 如何获取配置 Key
在使用助手库前,请确保您已经在任务设置的“环境变量”或“机密”中配置了以下对应 Key:
@@ -128,5 +128,5 @@ def send_notify(title, content):
除了配置发送路径,您还可以在消息中心进行以下操作:
- **发送记录 (审计)**:实时记录每一条通过白虎面板发送至外部的消息,方便追溯。
- **发送记录 (审计)**:实时记录每一条通过baihu-panel发送至外部的消息,方便追溯。
- **回执查询**:在 **「消息日志」** 页面查看到每条推送的详细状态,如果发送失败,会提供原始的错误响应代码以供排查。
+1 -1
View File
@@ -1,6 +1,6 @@
# 脚本管理
脚本管理提供了白虎面板的在线文件资源浏览器和编辑器。
脚本管理提供了baihu-panel的在线文件资源浏览器和编辑器。
## 资源管理器
+1 -1
View File
@@ -1,6 +1,6 @@
# 仓库同步 (Repo)
仓库同步允许白虎面板直接以 Git 仓库的形式管理和更新脚本库,极大地方便了脚本的大规模分发与自动化部署。
仓库同步允许baihu-panel直接以 Git 仓库的形式管理和更新脚本库,极大地方便了脚本的大规模分发与自动化部署。
## 同步源管理
+2 -2
View File
@@ -1,6 +1,6 @@
# 定时任务
定时任务是白虎面板的核心模块,支持对各类多语言脚本、命令进行精细化执行管理。
定时任务是baihu-panel的核心模块,支持对各类多语言脚本、命令进行精细化执行管理。
## 任务属性
@@ -24,7 +24,7 @@
## 特殊任务类型
除了标准的 Cron 定时触发,白虎面板还支持以下特殊触发场景:
除了标准的 Cron 定时触发,baihu-panel还支持以下特殊触发场景:
### 开机启动任务 (`baihu_startup`)
+1 -1
View File
@@ -1,6 +1,6 @@
# 功能特性
白虎面板不仅提供基础的脚本执行功能,还集成了众多的实用工具和管理模块。
baihu-panel不仅提供基础的脚本执行功能,还集成了众多的实用工具和管理模块。
## 数据仪表
+8 -8
View File
@@ -1,6 +1,6 @@
# 前端定制 (WebUI)
白虎面板支持完全接管和替换默认系统面板界面。你可以开发自己专属的前端主题,甚至添加自定义的前端交互功能,并打包为独立的 WebUI 资源包上传至系统应用。
baihu-panel支持完全接管和替换默认系统面板界面。你可以开发自己专属的前端主题,甚至添加自定义的前端交互功能,并打包为独立的 WebUI 资源包上传至系统应用。
> [!IMPORTANT]
> **安全与一致性维护声明**
@@ -21,7 +21,7 @@
> 自定义前端包若存在 Bug 或打包不完整可能导致界面白屏。如果不慎应用了错误或不兼容的包,请使用下方命令行工具恢复。
### 2. 命令行 (CLI) 运维
当界面因异常白屏无法访问时,可以进入白虎面板容器/服务器终端,使用 `baihu webui` 命令一键管理或恢复:
当界面因异常白屏无法访问时,可以进入baihu-panel容器/服务器终端,使用 `baihu webui` 命令一键管理或恢复:
- **一键恢复默认内置界面**
```bash
@@ -44,7 +44,7 @@
## 开发自定义前端
白虎面板的前端架构是完全解耦的。你可以选择以下两种方式之一来定制专属前端:
baihu-panel的前端架构是完全解耦的。你可以选择以下两种方式之一来定制专属前端:
### 方式一:基于现有代码二次开发(推荐)
如果你只是想修改部分样式、布局,或者在原有功能基础上增加新特性,最简单的方式是 **Fork `baihu-panel` 项目**。
@@ -55,7 +55,7 @@
### 方式二:从零开始全新开发
如果你想用自己熟悉的技术栈(如 React, Angular,或者是纯静态的 HTML/JS)完全重写整个面板,这也是完全支持的!你只需要按照下方的核心规范进行开发和打包即可。
### 1. 核心校验规则
白虎面板后端提取并启用前端资源时,会执行以下强校验:
baihu-panel后端提取并启用前端资源时,会执行以下强校验:
1. **压缩包根目录下必须包含 `index.html`**:作为单页应用 (SPA) 的静态入口文件。
2. **压缩包根目录下必须包含 `uimanifest.json`**:声明该前端包的元数据信息。
@@ -67,7 +67,7 @@
"name": "custom-neon-theme",
"version": "1.0.2",
"author": "YourName",
"description": "白虎面板霓虹暗黑风定制前端主题",
"description": "baihu-panel霓虹暗黑风定制前端主题",
"min_panel_version": "1.0.0"
}
```
@@ -78,7 +78,7 @@
在独立开发自定义前端时,需要配置请求与后端的通信地址及代理:
- **后端默认服务地址与端口**
白虎面板后端服务默认运行在端口 `8052` 上,本地调试 API 的基础 URL 通常为:
baihu-panel后端服务默认运行在端口 `8052` 上,本地调试 API 的基础 URL 通常为:
`http://127.0.0.1:8052/api/v1`
- **本地开发环境代理配置(以 Vite 为例)**:
@@ -88,7 +88,7 @@
server: {
proxy: {
'/api/v1': {
target: 'http://127.0.0.1:8052', // 本地运行的白虎面板后端地址
target: 'http://127.0.0.1:8052', // 本地运行的baihu-panel后端地址
changeOrigin: true
}
}
@@ -116,7 +116,7 @@
## 打包前端资源包(现成)
你可以利用白虎面板项目自带的 `Makefile` 脚本,在现在的前端页面进行修改,将开发好的前端项目快速编译打包成标准的 `.tar.gz` 前端资源包, 自己使用或者分享使用。
你可以利用baihu-panel项目自带的 `Makefile` 脚本,在现在的前端页面进行修改,将开发好的前端项目快速编译打包成标准的 `.tar.gz` 前端资源包, 自己使用或者分享使用。
### 使用 Makefile 打包
+1 -1
View File
@@ -3,7 +3,7 @@
layout: home
hero:
name: "白虎面板"
name: "baihu-panel"
text: "极致轻量、高性能的自动化任务调度平台"
tagline: "采用 Go + Vue3 架构,专注于高性能与低系统开销。"
image:
+5 -15
View File
@@ -13,21 +13,11 @@ set -e
echo "正在检测 PHP 编译依赖..."
# 根据系统定义包列表
if [ -f /etc/debian_version ]; then
PACKAGES="autoconf bison build-essential libssl-dev libxml2-dev pkg-config libsqlite3-dev zlib1g-dev libcurl4-openssl-dev libpng-dev libjpeg-dev libonig-dev libzip-dev"
CHECK_CMD="dpkg -l"
INSTALL_CMD="apt-get install -y"
UPDATE_CMD="apt-get update"
elif [ -f /etc/alpine-release ]; then
PACKAGES="autoconf bison build-base openssl-dev libxml2-dev pkgconfig sqlite-dev zlib-dev curl-dev libpng-dev libjpeg-turbo-dev oniguruma-dev libzip-dev"
CHECK_CMD="apk info -e"
INSTALL_CMD="apk add --no-cache"
UPDATE_CMD=""
else
echo "未检测到支持的包管理器 (APT/APK),请手动安装依赖。"
exit 1
fi
# Debian 系统依赖包列表
PACKAGES="autoconf bison build-essential libssl-dev libxml2-dev pkg-config libsqlite3-dev zlib1g-dev libcurl4-openssl-dev libpng-dev libjpeg-dev libonig-dev libzip-dev"
CHECK_CMD="dpkg -l"
INSTALL_CMD="apt-get install -y"
UPDATE_CMD="apt-get update"
MISSING_PACKAGES=""
for pkg in $PACKAGES; do