青龙面板搭建教程:Docker 一键部署定时任务管理平台
什么是青龙面板
青龙面板(Qinglong Panel)是一款开源的定时任务管理平台,由开发者 whyour 维护,项目托管在 GitHub 上。它提供了一个简洁直观的 Web 可视化界面,让你可以方便地管理和调度各种自动化脚本。
青龙面板支持以下 4 种脚本语言:
- Python3:适合数据处理、爬虫类任务
- JavaScript(Node.js):适合网页自动化和签到类任务
- Shell:适合系统运维和批量操作
- TypeScript:适合类型安全要求较高的复杂脚本
核心特性包括:
- 支持在线编辑和管理脚本文件
- 支持 Cron 表达式灵活配置定时规则,精确到秒级
- 支持通过订阅自动从 GitHub 等代码仓库拉取并更新脚本
- 支持环境变量管理,方便统一维护 Cookie 等敏感信息
- 内置依赖管理功能,可直接在面板中安装 Node.js 和 Python 的第三方包
- 提供完善的任务执行日志,便于排查问题
- 支持暗黑模式和手机端访问
环境准备
在开始搭建之前,你需要准备以下环境:
| 准备项 | 要求说明 |
|---|---|
| 服务器 | 一台 Linux 服务器(CentOS / Ubuntu / Debian 均可),也支持群晖 NAS、树莓派等 |
| 内存 | 建议 1 GB 以上 |
| Docker | 需提前安装 Docker 环境 |
| 端口 | 默认使用 5700 端口,需确保防火墙和安全组已放行 |
如果你的服务器尚未安装 Docker,可以使用一键安装脚本:
curl -fsSL https://get.docker.com | sh安装完成后,启动 Docker 并设置开机自启:
sudo systemctl start docker
sudo systemctl enable docker验证 Docker 是否安装成功:
docker --versionDocker 一键部署青龙面板
方式一:Docker 命令直接部署
首先拉取青龙面板的最新镜像:
docker pull whyour/qinglong:latest然后执行以下命令启动容器:
docker run -dit \
-v $PWD/ql/data:/ql/data \
-p 5700:5700 \
-e QlBaseUrl="/" \
-e QlPort="5700" \
--name qinglong \
--hostname qinglong \
--restart unless-stopped \
whyour/qinglong:latest参数说明:
| 参数 | 含义 |
|---|---|
-v $PWD/ql/data:/ql/data |
将面板数据(配置、日志、脚本等)映射到宿主机,避免容器重启后数据丢失 |
-p 5700:5700 |
将容器内的 5700 端口映射到宿主机的 5700 端口 |
-e QlBaseUrl="/" |
设置面板的基础路径,默认为根路径 |
-e QlPort="5700" |
设置面板运行端口 |
--restart unless-stopped |
容器异常退出时自动重启 |
注意:新版青龙面板(v2.12 及以上)将所有数据统一存储在
/ql/data目录下,不再需要分别挂载 config、log、db、scripts 等多个目录。如果你在网上看到挂载多个目录的教程,那可能是针对旧版本的。
方式二:Docker Compose 部署(推荐)
使用 Docker Compose 管理容器更加方便,尤其是后续需要更新版本的时候。
先创建一个工作目录:
mkdir -p ~/qinglong && cd ~/qinglong创建 docker-compose.yml 文件:
version: '2'
services:
qinglong:
image: whyour/qinglong:latest
container_name: qinglong
hostname: qinglong
volumes:
- ./data:/ql/data
ports:
- "5700:5700"
environment:
QlBaseUrl: '/'
QlPort: '5700'
restart: unless-stopped启动容器:
docker-compose up -d提示:如果你的服务器是 ARM 架构(比如树莓派或 M 系列 Mac),青龙面板同样支持,镜像会自动适配。如果遇到兼容性问题,可以尝试使用
whyour/qinglong:debian镜像。
访问面板与初始化配置
容器启动后,在浏览器中访问:
http://你的服务器IP:5700首次访问会进入初始化引导页面,按照提示完成以下步骤:
- 设置管理员账号:输入你想要的用户名和密码
- 配置通知渠道(可选):支持 Telegram、钉钉、企业微信、Server 酱等多种通知方式
- 点击完成即可进入面板主界面
如果忘记了管理员密码,可以通过以下命令重置:
# 查看当前账号信息
docker exec -it qinglong cat /ql/data/config/auth.json
# 重置登录限制(登录失败次数过多时使用)
docker exec -it qinglong ql resetlet青龙面板核心功能详解
添加订阅(自动拉取脚本)
订阅功能是青龙面板最实用的特性之一。通过订阅,面板会定时从指定的 GitHub 仓库拉取脚本,并自动创建对应的定时任务。
操作步骤:
-
进入面板左侧菜单的「订阅管理」
-
点击右上角的「新建订阅」
-
填写订阅信息:
- 名称:给订阅起一个方便识别的名字
- 类型:选择「公开仓库」
- 链接:填写仓库地址,例如
https://github.com/用户名/仓库名.git - 定时规则:设置自动更新频率,如
0 0 * * *表示每天凌晨更新一次 - 白名单 / 黑名单:可选,用于过滤需要或不需要的脚本文件
-
保存后建议先手动点击「运行」,让面板首次拉取脚本并创建定时任务
订阅成功后,面板会根据设定的频率定时拉取仓库更新,并自动维护对应的定时任务列表。
手动添加定时任务
除了通过订阅自动创建,你也可以手动添加定时任务:
- 进入「定时任务」页面
- 点击「新建任务」
- 填写以下信息:
- 名称:任务描述
- 命令:要执行的脚本命令,如
task scripts/example.js - 定时规则:Cron 表达式,如
30 8 * * *表示每天早上 8:30 执行
Cron 表达式速查表:
| 表达式 | 含义 |
|---|---|
0 0 * * * |
每天 0 点执行 |
30 8 * * * |
每天 8:30 执行 |
0 */6 * * * |
每隔 6 小时执行一次 |
0 8,12,18 * * * |
每天 8 点、12 点、18 点执行 |
0 0 * * 1 |
每周一 0 点执行 |
环境变量管理
很多脚本需要用到 Cookie 或 Token 等凭据信息。青龙面板提供了专门的「环境变量」管理功能:
- 进入「环境变量」页面
- 点击「新建变量」
- 填写变量名和变量值
例如,某个签到脚本需要名为 MY_COOKIE 的环境变量,只需在面板中添加即可,脚本运行时会自动读取。
安全提示:Cookie 和 Token 属于敏感信息,不要在公开场合分享。另外,Cookie 通常有有效期,过期后需要及时更新。
依赖管理
脚本运行时如果报错 Cannot find module 'xxx' 或者 ModuleNotFoundError: No module named 'xxx',说明缺少对应的依赖包。
青龙面板内置了可视化的依赖管理功能,无需手动进入容器安装:
- 进入「依赖管理」页面
- 点击「新建依赖」
- 选择依赖类型(Node.js / Python3 / Linux)
- 「自动拆分」选择「是」
- 在名称栏输入需要安装的包名,多个包用换行分隔
常用 Node.js 依赖:
crypto-js
dotenv
jsdom
date-fns
tough-cookie
ts-md5
axios常用 Python3 依赖:
requests
PyExecJS也可以通过命令行手动安装依赖:
# 安装 Node.js 依赖
docker exec -it qinglong pnpm install axios
# 安装 Python3 依赖
docker exec -it qinglong pip3 install requests如何获取网站 Cookie
大多数自动化脚本都需要用到目标网站的 Cookie 来模拟登录状态。以下介绍两种获取方式。
电脑端获取 Cookie
- 打开 Chrome 或 Edge 浏览器,访问目标网站并完成登录
- 按
F12打开开发者工具(DevTools) - 切换到「Network」(网络)标签页
- 刷新页面,点击第一个网络请求
- 在右侧的「Headers」中找到
Cookie字段,复制完整的值
手机端获取 Cookie
安卓手机推荐使用 Alook 浏览器,操作步骤:
- 安装并打开 Alook 浏览器
- 进入目标网站,使用手机号完成登录
- 关闭浏览器自带的广告过滤功能
- 向右滑动底部工具栏,找到「工具箱」
- 进入「开发者工具」,点击「Cookies」即可查看和复制
实用脚本配置示例
以下是一些常见的自动化脚本配置方法,仅供参考。请注意,第三方脚本仓库可能随时失效或发生变化,使用前请自行确认脚本来源的可靠性。
阿里云盘自动签到
阿里云盘支持每日签到领取额外存储空间,利用青龙面板可以实现全自动签到。
第 1 步:添加订阅
在「订阅管理」中新建订阅,填写以下仓库地址:
https://github.com/mrabit/aliyundriveDailyCheck.git白名单填写 autoSignin,扩展脚本填写 qlApi,定时规则建议设为 0 0 * * *(每天凌晨执行)。
第 2 步:获取 refresh_token
- 在浏览器中登录 阿里云盘
- 按
F12打开开发者工具,进入 Console(控制台) - 粘贴以下代码并回车:
JSON.parse(localStorage.token).refresh_token- 复制输出的 token 值
第 3 步:添加环境变量
在「环境变量」中新建变量:
| 变量名 | 变量值 |
|---|---|
refresh_token |
上一步复制的 token 值 |
第 4 步:安装依赖
进入「依赖管理」 → 「Node.js」 → 新建依赖,名称填写 axios。
第 5 步:运行测试
在「定时任务」中找到自动创建的签到任务,手动运行一次,查看日志确认是否执行成功。
哔哩哔哩自动任务
BiliBiliToolPro 是一个功能丰富的 B 站自动化工具,支持每日经验任务、投币、直播签到等。
项目地址:RayWangQvQ/BiliBiliToolPro
具体的配置方式请参考项目仓库中 qinglong 目录下的说明文档,按照文档指引添加订阅和配置环境变量即可。
青龙面板版本更新与维护
保持青龙面板为最新版本可以获得更好的稳定性和安全性。
Docker 命令方式更新:
# 停止并移除旧容器
docker stop qinglong
docker rm qinglong
# 拉取最新镜像
docker pull whyour/qinglong:latest
# 重新启动容器(使用与部署时相同的命令)
docker run -dit \
-v $PWD/ql/data:/ql/data \
-p 5700:5700 \
-e QlBaseUrl="/" \
-e QlPort="5700" \
--name qinglong \
--hostname qinglong \
--restart unless-stopped \
whyour/qinglong:latestDocker Compose 方式更新:
cd ~/qinglong
docker-compose down
docker-compose pull
docker-compose up -d提醒:由于数据目录已挂载到宿主机,更新容器不会丢失你的脚本、配置和任务数据。
常见问题
Q1:访问 5700 端口显示无法连接?
首先确认容器是否正常运行:
docker ps | grep qinglong如果容器已启动但无法访问,检查以下几点:
- 服务器防火墙是否放行了 5700 端口
- 云服务器的安全组规则是否允许 5700 端口入方向流量
- 如果使用了宝塔面板,确保在宝塔的安全设置中也放行了该端口
Q2:脚本运行报错 Cannot find module 'xxx'?
这是缺少 Node.js 依赖导致的。有两种解决方式:
- 方式一:在面板的「依赖管理」→「Node.js」中搜索并安装对应的包
- 方式二:通过命令行安装
docker exec -it qinglong pnpm install xxxQ3:Python 脚本报错 ModuleNotFoundError: No module named 'xxx'?
类似于 Node.js 依赖问题,在面板的「依赖管理」→「Python3」中安装对应的模块,或通过命令行:
docker exec -it qinglong pip3 install xxxQ4:登录失败次数过多被锁定了怎么办?
在服务器终端执行以下命令重置登录限制:
docker exec -it qinglong ql resetletQ5:面板页面出现白屏或 502 错误?
可能是容器内部服务尚未完全启动,稍等片刻后刷新页面。如果持续出现问题:
# 查看容器日志排查原因
docker logs qinglong --tail 50
# 尝试重启容器
docker restart qinglongQ6:订阅拉取脚本失败?
常见原因:
- 仓库地址不正确或仓库已被删除
- 服务器无法访问 GitHub(国内服务器可能需要配置代理或使用镜像源)
- 白名单 / 黑名单配置有误,导致没有匹配到任何脚本文件
Q7:如何备份青龙面板的数据?
青龙面板的所有数据都在挂载的 data 目录中,直接备份这个目录即可:
tar -czf qinglong-backup-$(date +%Y%m%d).tar.gz ./ql/dataQ8:Cookie 多久需要更新一次?
不同网站的 Cookie 有效期不同,一般从几天到几个月不等。当脚本日志中出现「Cookie 已失效」或类似提示时,就需要重新获取并更新环境变量中的 Cookie 值了。
总结
青龙面板凭借简洁的 Web 界面和强大的定时任务管理能力,已经成为自动化脚本管理的主流工具之一。通过本文的介绍,相信你已经掌握了从 Docker 部署到日常使用的完整流程。
回顾一下核心要点:
- 部署方面:推荐使用 Docker Compose 方式,方便后续的版本更新和维护
- 数据持久化:务必通过
-v参数挂载数据目录,防止容器重建时丢失数据 - 依赖管理:善用面板内置的依赖管理功能,遇到模块缺失问题可以快速解决
- 安全意识:Cookie 和 Token 等敏感信息要妥善保管,定期检查是否失效
- 脚本来源:使用第三方脚本前请仔细审查代码,确保来源可靠
如果你在搭建或使用青龙面板的过程中遇到任何问题,欢迎在评论区留言交流,也可以前往 GitHub Issues 查看是否已有相关解答。希望这篇教程对你有所帮助!
版权声明
未经授权,禁止转载本文章。
如需转载请保留原文链接并注明出处。即视为默认获得授权。
未保留原文链接未注明出处或删除链接将视为侵权,必追究法律责任!
本文原文链接: https://fiveyoboy.com/articles/qinglong-panel-docker-deploy-guide/
备用原文链接: https://blog.fiveyoboy.com/articles/qinglong-panel-docker-deploy-guide/