baihu-panel:Docker 部署定时任务面板
本文属于「自托管 Docker 部署实战」系列(共 35 篇),第 12 篇。 示例中的 IP(192.0.2.10)、域名(example.com)、密码均为占位符,请按实际环境替换。
它是什么
定时任务/脚本编排面板(青龙类工具),支持 Python/Node/Shell 任务、环境变量、日志。
前置条件
- 一台 Linux 服务器(1C1G 起步;Java 类应用建议 2C4G 以上);
- 已安装 Docker 与 Compose v2,执行
docker compose version有版本号输出; - 所有示例里的 IP / 域名 / 密码都是占位符,实际部署请替换成自己的。
# 安装 Docker(已安装可跳过)
curl -fsSL https://get.docker.com | sh
# 目录约定:一个服务一个目录,后文的 ./data 均指栈目录内
mkdir -p /srv/docker/active/<stack> && cd /srv/docker/active/<stack>
镜像地址
ghcr.io/engigu/baihu:latest
目录结构
/srv/docker/active/baihu/
├── docker-compose.yml
├── data/ # 任务、日志、脚本
├── configs/ # 配置
└── envs/ # 环境变量文件
部署步骤
services:
baihu:
image: ghcr.io/engigu/baihu:latest
container_name: baihu
restart: unless-stopped
ports:
- "8052:8052"
volumes:
- ./data:/app/data
- ./configs:/app/configs
- ./envs:/app/envs
environment:
- TZ=Asia/Shanghai
# 可选:用 MySQL 而不是内置 SQLite
# - BH_DB_TYPE=mysql
# - BH_DB_HOST=mysql
# - BH_DB_PORT=3306
# - BH_DB_USER=baihu
# - BH_DB_PASSWORD=${BH_DB_PASSWORD}
# - BH_DB_NAME=baihu
# - BH_DB_TABLE_PREFIX=baihu_
# - BH_SECRET=<随机串>
docker compose up -d
# 访问 http://<SERVER_IP>:8052
关键配置
- 默认 SQLite,数据在
data/;用 MySQL 时把BH_DB_*打开; BH_ALLOWED_ORIGINS配反代域名,跨域才正常;BH_SECRET用于会话签名,必须随机。
注意事项
- 面板能执行任意脚本,权限等同于容器内 root,公网暴露风险极高;
- 定时任务日志会涨,配日志轮转;
- 导入的脚本注意来源,别直接跑陌生仓库的
install.sh。
备份与升级
# 任务、日志、配置、环境变量
tar czf "baihu-$(date +%F).tar.gz" ./data ./configs ./envs
# 升级
docker compose pull
docker compose up -d
- 用 MySQL 存数据时,额外做数据库备份;
- 升级前导出任务列表,防止 schema 迁移出问题。
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 程序员小航
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果