
1. 青龙面板部署前的环境准备与核心思路1.1 为什么选择青龙面板来管理自动化任务青龙面板本质上是一个支持定时任务的脚本管理平台最早在自动化签到、数据采集等场景中被广泛使用。它的核心价值在于把散落在各处的脚本统一管理起来通过Web界面完成定时调度、日志查看、环境变量注入和依赖安装。相比直接用系统自带的crontab青龙面板的优势非常明显任务状态可视化、日志集中存储、支持多账号环境变量隔离、脚本可以按分组管理。我最初接触青龙面板是因为手头有几个需要每天定时执行的脚本用crontab管理起来太痛苦——改个时间要SSH登录看日志要翻文件多账号切换更是噩梦。换成青龙面板之后所有操作都在浏览器里完成效率提升非常明显。青龙面板支持Docker部署和直接部署两种方式。Docker方式最省心环境隔离干净升级也方便直接部署适合资源受限的设备比如路由器或者低配小主机。下面我会重点讲Docker方式因为这是目前最主流、踩坑最少的方案。1.2 部署环境的最低配置要求在动手之前先确认你的设备满足基本要求。青龙面板本身很轻量但跑脚本的时候会吃一些内存和CPU。配置项最低要求推荐配置CPU1核2核及以上内存512MB1GB及以上硬盘2GB可用空间10GB及以上系统Linux (amd64/arm64)Ubuntu 20.04 / Debian 11Docker20.10最新稳定版如果你用的是Windows 10专业版可以通过WSL2来部署体验和原生Linux几乎一样。我实测下来WSL2 Docker Desktop的组合在Win10专业版上跑青龙面板非常稳定资源占用也在可接受范围内。注意内存低于512MB的设备跑青龙面板会比较吃力尤其是同时执行多个脚本时容易出现OOM。如果设备内存确实有限建议限制并发任务数量或者考虑升级硬件。1.3 Docker环境的安装与验证Docker是青龙面板部署的基础。如果你还没装Docker先用官方脚本安装curl -fsSL https://get.docker.com | bash -s docker安装完成后启动Docker服务并设置开机自启sudo systemctl start docker sudo systemctl enable docker验证Docker是否正常工作docker run hello-world如果能看到Hello from Docker!的输出说明Docker环境没问题。接下来安装Docker Compose青龙面板用Compose管理会更方便sudo curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose sudo chmod x /usr/local/bin/docker-compose验证Compose版本docker-compose --version这一步很关键因为后面青龙面板的部署、升级、备份都会用到Compose。我见过不少人跳过这步直接用docker run结果后面升级的时候手忙脚乱。1.4 目录规划与数据持久化设计青龙面板的数据包括脚本、日志、配置、数据库这些都需要持久化到宿主机否则容器一删数据就没了。我的习惯是在宿主机上建一个专门的数据目录mkdir -p /opt/qinglong/data然后在docker-compose.yml里把容器的/ql/data映射到这个目录。这样即使容器重建数据也不会丢失。目录权限方面青龙面板容器默认以root运行但为了安全起见建议把数据目录的属主设置为当前用户sudo chown -R $USER:$USER /opt/qinglong提示如果你打算用MySQL作为外部数据库后面会讲数据目录的规划还要考虑MySQL的数据文件存放位置建议单独挂载一个目录给MySQL避免和青龙面板的数据混在一起。2. 青龙面板的安装与基础配置2.1 使用Docker Compose一键部署青龙面板青龙面板的Docker镜像维护得比较活跃直接拉取最新版即可。创建一个docker-compose.yml文件version: 3 services: qinglong: image: whyour/qinglong:latest container_name: qinglong restart: unless-stopped ports: - 5700:5700 volumes: - /opt/qinglong/data:/ql/data environment: - ENABLE_HANGUPtrue - ENABLE_WEB_PANELtrue几个关键参数说明一下。restart: unless-stopped保证容器意外退出后自动重启这对长期运行的定时任务平台很重要。端口5700是青龙面板的默认Web端口如果你宿主机上这个端口被占用了改成其他端口即可。ENABLE_HANGUPtrue允许任务在后台挂起运行适合那些执行时间较长的脚本。启动容器cd /opt/qinglong docker-compose up -d查看启动日志docker-compose logs -f看到Web panel is running之类的提示就说明启动成功了。浏览器访问http://你的IP:5700首次进入会要求设置管理员账号和密码。2.2 初始配置与安全加固首次登录后有几件事必须马上做。第一是修改默认端口如果你用了默认的5700建议改成不常见的端口减少被扫描的风险。第二是设置强密码青龙面板的登录接口是公开的弱密码很容易被撞库。第三是配置通知渠道。青龙面板支持多种通知方式包括邮件、Webhook、PushPlus、WxPusher等。WxPusher是我用得比较多的一个配置简单推送及时。在系统设置-通知设置里填入WxPusher的AppToken和UID即可。第四是开启登录验证码。虽然多一步操作但安全性提升明显。在系统设置-安全设置里可以开启。注意青龙面板的Web界面如果直接暴露在公网一定要做好安全加固。除了改端口、强密码、验证码之外还可以考虑加一层反向代理并配置HTTPS或者只在内网访问通过其他方式远程连接。2.3 依赖安装与Node.js环境配置青龙面板的脚本大多依赖Node.js运行环境部分脚本还需要Python3和Linux系统工具。青龙面板内置了依赖管理功能在依赖管理页面可以一键安装。Node.js依赖的安装命令npm install -g png-js npm install -g date-fns npm install -g axios npm install -g crypto-js npm install -g md5 npm install -g ts-node npm install -g types/node npm install -g typescript npm install -g jsdom npm install -g require npm install -g js-base64 npm install -g tough-cookiePython3依赖pip3 install requests pip3 install canvas pip3 install ping3 pip3 install jieba pip3 install PyExecJSLinux依赖apt-get install -y gcc g make libc-dev这些依赖不是每个脚本都需要但提前装好可以避免脚本运行时报模块未找到的错误。我踩过的坑是有些脚本依赖特定版本的库装最新版反而会报错。遇到这种情况可以在依赖管理里指定版本号安装。2.4 环境变量与多账号管理青龙面板的环境变量功能是它的核心优势之一。你可以把不同账号的Cookie、Token等信息作为环境变量注入脚本运行时自动读取。命名规范一般是变量名序号比如JD_COOKIE1、JD_COOKIE2。在环境变量页面新建变量名称填JD_COOKIE值填Cookie内容备注写账号标识。多个账号就建多个变量名称用JD_COOKIE1、JD_COOKIE2区分。提示环境变量的值如果包含特殊字符建议用引号包裹。另外青龙面板支持环境变量的启用/禁用临时不想跑某个账号的时候禁用对应的变量即可不用删除。3. 京东脚本的推荐与配置实操3.1 京东脚本的获取渠道与筛选原则京东脚本的来源主要有几个GitHub上的开源仓库、社区论坛的分享、以及一些聚合仓库。比较知名的有pangbai66的京东脚本仓库、以及一些定期更新的聚合库。筛选脚本的时候我一般看几个指标更新频率、Issue活跃度、Star数量、以及是否有详细的README。更新频率高的仓库说明作者还在维护脚本失效的概率低。Issue活跃说明有问题能及时反馈。Star数量虽然不能完全代表质量但至少说明用的人多踩坑的人也多解决方案容易找到。需要特别注意的是京东的接口和活动规则经常变化脚本失效是常态。所以不要指望一套脚本用到底定期更新是必须的。3.2 订阅管理自动拉取与更新脚本青龙面板支持订阅管理可以定时从GitHub仓库拉取最新脚本。在订阅管理页面新建订阅填入仓库地址和定时规则。仓库地址格式一般是https://github.com/用户名/仓库名.git定时规则用cron表达式比如0 0 * * *表示每天零点更新一次。分支填main或master取决于仓库的默认分支。拉取脚本的时候青龙面板会把仓库里的脚本文件复制到/ql/data/scripts目录下。你可以在脚本管理页面看到所有拉取下来的脚本。注意有些仓库的脚本文件放在子目录里订阅的时候需要指定白名单或者黑名单来过滤。比如只拉取jd_开头的脚本可以在订阅设置里配置。3.3 定时任务的创建与调度策略脚本拉取下来之后需要创建定时任务来执行。在定时任务页面新建任务选择对应的脚本文件设置cron表达式。京东脚本的调度有几个原则。第一是错峰执行不要所有脚本都设在同一个时间点否则容易触发风控。第二是控制频率有些脚本一天跑一次就够了跑太勤反而容易被限制。第三是设置随机延迟青龙面板支持在任务里配置随机延迟比如设置randomDelay: 300表示延迟0-300秒随机执行。一个典型的京东脚本调度配置脚本类型建议执行时间cron表达式签到类每天8:00-10:000 8 * * *任务类每天10:00-12:000 10 * * *查询类每天20:000 20 * * *通知类任务完成后依赖前序任务3.4 通知推送配置WxPusher与Webhook脚本跑完的结果需要及时知道青龙面板的通知功能可以解决这个问题。WxPusher的配置最简单注册账号创建应用拿到AppToken然后在青龙面板的通知设置里填入。Webhook方式更灵活可以推送到企业微信、钉钉、飞书等。以企业微信机器人为例创建一个群机器人拿到Webhook地址填入青龙面板即可。通知内容可以自定义模板青龙面板支持变量替换比如{{title}}、{{content}}。我一般会把任务名称、执行结果、关键数据都放进通知里这样一眼就能看出哪个账号出了问题。提示通知频率不要太高否则容易被平台限流。建议只推送失败通知和关键结果日常的成功通知可以关闭。4. 常见问题排查与性能优化4.1 脚本执行失败的典型原因与排查路径脚本执行失败是最常见的问题原因五花八门。我整理了一个排查顺序按这个顺序走基本能定位到问题。第一步看日志。青龙面板的日志功能很详细在日志管理页面可以看到每个任务的执行输出。重点看报错信息比如模块未找到说明依赖没装Cookie失效说明需要更新环境变量请求超时说明网络问题。第二步检查环境变量。很多时候脚本失败是因为环境变量没配置或者配置错了。在环境变量页面确认对应的变量是否存在、是否启用、值是否正确。第三步检查依赖。如果日志里出现Cannot find module说明缺少Node.js模块去依赖管理里安装对应的模块。第四步检查脚本版本。如果脚本本身过期了怎么调都没用去订阅管理里手动更新一下。报错信息可能原因解决方法Cannot find module缺少Node.js依赖安装对应模块Cookie失效环境变量过期更新Cookie请求超时网络问题检查网络或增加超时时间403 Forbidden被风控降低频率增加延迟脚本语法错误脚本版本问题更新脚本4.2 手机端访问青龙面板的解决方案手机青龙面板打不开是很多人遇到的问题。原因通常有几个一是端口没开放二是防火墙拦截三是网络环境问题。如果是局域网访问确认手机和服务器在同一个网段然后检查服务器防火墙是否放行了5700端口。Ubuntu上用ufw的话sudo ufw allow 5700如果是外网访问需要做端口映射或者用内网穿透工具。但要注意安全风险外网暴露面板一定要做好安全加固。手机浏览器访问的时候建议用Chrome或Edge兼容性比较好。如果页面显示不全可以试试切换成桌面模式。4.3 性能优化减少资源占用与提升稳定性青龙面板跑久了可能会变慢主要是日志和缓存积累导致的。定期清理日志是个好习惯在日志管理页面可以批量删除旧日志。数据库方面青龙面板默认用SQLite数据量大了之后查询会变慢。如果任务很多可以考虑换成MySQL。在docker-compose.yml里加一个MySQL服务然后配置青龙面板连接外部数据库。services: mysql: image: mysql:8.0 container_name: qinglong-mysql restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: your_password MYSQL_DATABASE: qinglong volumes: - /opt/qinglong/mysql:/var/lib/mysql然后在青龙面板的配置文件里指定数据库连接信息。换成MySQL之后任务多的时候查询速度提升明显。另外限制并发任务数量也很重要。在系统设置里可以配置最大并发数根据设备性能调整。内存小的设备建议设成2-3内存充足的可以设成5-10。4.4 数据备份与迁移的实操方法青龙面板的数据都在/ql/data目录下备份这个目录就相当于备份了整个面板。我一般用定时任务来做自动备份tar -czf /opt/backup/qinglong_$(date %Y%m%d).tar.gz /opt/qinglong/data然后配合find命令删除7天前的旧备份find /opt/backup -name qinglong_*.tar.gz -mtime 7 -delete迁移的时候把备份文件拷到新设备解压到对应目录然后重新启动容器即可。环境变量、脚本、定时任务、日志都会保留。注意迁移之前先停掉旧设备上的容器避免数据不一致。新设备上的青龙面板版本最好和旧设备一致避免数据库结构不兼容。5. 进阶玩法与长期维护建议5.1 多面板管理与任务分组策略当你管理的账号越来越多单个面板可能会变得混乱。这时候可以考虑多面板方案一个主面板跑核心任务其他面板跑辅助任务。或者按账号类型分组比如京东一组、其他平台一组。青龙面板支持任务分组在创建任务的时候可以指定分组。分组之后在任务列表页面可以按分组筛选管理起来清晰很多。5.2 脚本更新与失效应对的长期策略京东脚本失效是必然的关键是建立一套应对机制。我的做法是订阅多个仓库互为备份定期检查任务日志发现失败及时处理关注社区动态了解最新的脚本变化。另外不要把所有希望寄托在同一个脚本上。同一个功能找两三个不同的脚本作为备选一个失效了立刻切换。5.3 安全防护避免面板被入侵的实用措施青龙面板被入侵的案例不少大多是因为弱密码或者端口暴露。除了前面提到的改端口、强密码、验证码之外还可以限制访问IP。在Nginx反向代理里配置IP白名单只允许特定IP访问。如果一定要外网访问建议加HTTPS并且定期更换密码。另外不要在面板里存放敏感信息比如银行卡密码之类的。我在实际使用中的体会是青龙面板本身是个很好的工具但它的安全性取决于你怎么配置。花半小时做好安全加固能省掉后面很多麻烦。最后再分享一个小技巧定期导出环境变量和任务配置存到本地万一面板出问题了恢复起来会快很多。