快速部署
项目提供多种基础镜像,默认版本基于 Debian 12,集成了 Python 3.13 与 Node.js 23。
基础镜像选择
| 标签 (Tag) | 基础镜像 | 说明 |
|---|---|---|
latest | Debian 12 | 默认推荐:集成 Python 3.13 与 Node.js 23,开箱即用 |
latest-debian13 | Debian 13 | 尝鲜版本,基于 Debian Trixie |
latest-minimal | Debian 13 | 最小化版:不预置任何语言环境,仅内置 Mise,适合追求极致纯净的用户 |
提示:目前默认使用
latest标签。如需切换环境,只需将镜像名后的latest替换为latest-minimal(极致纯净)或latest-debian13即可。
环境版本重构说明 (2026.02.13+)
警告:架构升级破坏性变更
本版本(2026.02.13+)对底层运行时环境进行了彻底重构,弃用了原有的静态 Python/Node 环境,转为使用 Mise 进行动态版本管理。
- 不再提供 Alpine 镜像:由于 glibc 兼容性问题,Mise 无法在 Alpine 上完美运行,因此暂时取消 Alpine 镜像支持。
- 环境数据不兼容:如果您是从旧版本升级上来,原有的 Python/Node 环境数据将无法迁移。您需要清空挂载的
envs/目录并让其由新容器自动初始化。
方式一:Docker 运行 (环境变量配置)
通过环境变量指定配置,简单灵活,适合一般部署。
SQLite (默认)
bash
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_ \
--restart unless-stopped \
ghcr.io/engigu/baihu:latestMySQL
bash
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_ \
--restart unless-stopped \
ghcr.io/engigu/baihu:latest方式二:Docker Compose 部署
推荐的生产环境部署方式。
核心部署模板
yaml
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_
# - BH_SERVER_URL_PREFIX=/baihu # 可选:配置 URL 前缀用于反向代理
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
restart: unless-stopped方式三:配置文件挂载模式
通过挂载 /app/configs/config.ini 来管理详细配置。
配置文件挂载示例
yaml
volumes:
- ./data:/app/data
- ./configs:/app/configs
- ./envs:/app/envsDocker 启动流程
容器启动时 docker-entrypoint.sh 会自动执行以下关键步骤:
- 环境自检:检查
/app/data、/app/configs、/app/envs挂载点并创建必要子目录。 - Mise 同步:自动将镜像内置的 Mise 核心运行时激活文件同步到持久化挂载目录中,确保容器重启后环境依然可用。
- 运行时激活:动态注入环境变量,将
mise shims路径加入系统PATH。 - 包管理预设:自动为 Python 配置清华源 (PIP) 镜像,配置 Node.js 内存限制。
- 主进程启动:运行
baihu server开启面板。
提示:通过持久化挂载
./envs目录,您安装的所有运行时版本和第三方依赖库均会永久保留。
自动更新 Docker 镜像
如果您希望白虎面板能够自动拉取最新镜像并无感更新,推荐使用 Watchtower。Watchtower 会定期检查被监控容器的基础镜像,当发现有新版本推送时,它会自动拉取新镜像、使用与原容器完全相同的配置重启容器。
由于白虎面板采用持久化挂载(数据和环境都在外部),因此自动更新不会造成任何数据丢失。
方式一:独立一行命令运行 Watchtower(推荐)
执行以下命令,Watchtower 将会自动在每天凌晨 3 点自动检查并更新名为 baihu 的容器:
bash
docker run -d \
--name watchtower \
-v /var/run/docker.sock:/var/run/docker.sock \
-e TZ=Asia/Shanghai \
-e WATCHTOWER_SCHEDULE="0 0 3 * * *" \
-e WATCHTOWER_CLEANUP=true \
--restart unless-stopped \
containrrr/watchtower \
baihu参数说明:
- 结尾处的
baihu为指定仅监控更新名为baihu的容器。若不加此参数,则会自动更新宿主机上所有的 Docker 容器。WATCHTOWER_CLEANUP=true:更新成功后自动删除旧版本的废弃镜像,防止存储空间被占满。WATCHTOWER_SCHEDULE:设置定时检查的 Cron 表达式(秒 分 时 日 月 周)。
方式二:集成到 Docker Compose 中
您可以直接将 Watchtower 作为附加服务加入现有的 docker-compose.yml 中:
yaml
services:
baihu:
image: ghcr.io/engigu/baihu:latest
container_name: baihu
# ... 省略端口、挂载等其他配置 ...
watchtower:
image: containrrr/watchtower
container_name: watchtower
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
- TZ=Asia/Shanghai
- WATCHTOWER_CLEANUP=true
- WATCHTOWER_SCHEDULE="0 0 3 * * *"
command: baihu
restart: unless-stopped修改完成后,执行 docker compose up -d 生效即可。