青龙面板使用教程:Docker 十分钟装好你的定时任务管理平台
【免费下载链接】qinglong支持 Python3、JavaScript、Shell、Typescript 的定时任务管理平台(Timed task management platform supporting Python3, JavaScript, Shell, Typescript)项目地址: https://gitcode.com/GitHub_Trending/qi/qinglong
半夜脚本跑挂了没人知道,crontab 里的日志翻都翻不到——如果你的定时任务管理还停留在命令行时代,青龙面板(QingLong)值得试一下。它是一个支持 JavaScript、TypeScript、Python3、Shell 的定时任务管理平台:Web 界面建任务、写脚本、看日志、管环境变量,默认端口 5700,一条 Docker Compose 命令就能跑起来。
它适合谁,不适合谁
一句话定位:给"手里有一堆脚本,想统一调度和监控"的人用的单机版定时任务管理平台。
| 说明 | |
|---|---|
| 适合 | 有 3 个以上定时脚本,想要统一调度、看日志、管环境变量的个人或小团队 |
| 适合 | 混用多种语言脚本(py + js + sh 都要跑) |
| 不适合 | 需要原生集群部署的场景,它按单机设计,多实例要靠外部负载均衡 |
| 不适合 | 只想管理传统 Linux crontab 条目、不想引入 Web 面板的运维 |
最小成本跑起来:Docker 安装青龙面板
最短路径就是 Docker。docker/docker-compose.yml 已经配好了端口和数据卷,clone 下来直接用:
git clone https://gitcode.com/GitHub_Trending/qi/qinglong cd qinglong/docker docker compose up -dcompose 文件里只做了三件关键的事:镜像whyour/qinglong:latest(另有基于 Debian 的whyour/qinglong:debian标签)、把宿主机./data挂进容器/ql/data、端口5700:5700。启动后浏览器访问 http://localhost:5700,首次进入是初始化页面,先创建账号密码再开始用。
不走 Docker 也行:本机装好 Node.js(14+)和 Python3,clone 代码后依次pnpm install、pnpm run build:back、pnpm run build:front、pnpm start,同样监听 5700 端口。
典型用法
每天定时跑一批脚本。在任务页新建定时任务,填 cron 表达式(标准 5 段写法),指向data/scripts/里的脚本文件即可。任务实际由 shell/task.sh 拉起,所以 js、ts、py、sh 四种后缀都能跑。任务多了还可以保存成任务视图统一管理,脚本页、任务页的交互逻辑可以看 src/pages/crontab/ 和 src/pages/script/。
跑挂了当场就能看见。每次执行都有独立日志文件,存放在data/log/下,面板里能翻历史,也能看实时输出。配合data/config/config.sh里的通知环境变量(Server酱、Bark、钉钉、企业微信、Telegram 等,变量清单见 sample/config.sample.sh),失败时能推到手机上。另外面板自带依赖管理页:任务缺 requests 或某个 npm 包时,在界面上装即可,不用 ssh 进服务器。
Cookie、API Key 不再散落在脚本里。环境变量统一在面板里维护,任务执行时自动注入,改一次所有脚本生效。想拉取别人维护的脚本仓库?订阅管理页填仓库地址,面板会把仓库 clone 到data/repo/并同步脚本,配合 config.sh 里的AutoAddCron、DefaultCronRule还能自动建任务。
新手容易踩的坑
- 首次访问不知道账号。初始没有默认密码,按初始化页提示创建即可;sample/auth.sample.json 只是配置模板,别把它当真实账号用。
- 本地安装漏了环境变量。shell/start.sh 要求
QL_DATA_DIR必须以/data结尾(如/ql/data),不满足会直接报错退出。 - 备份方向搞错。真正需要备份的是
data/目录(脚本、日志、SQLite 库data/db/database.sqlite、data/config/配置都在里面),而不是整个代码目录——Docker 方式下这就是你挂载的那个./data。 - 5700 端口被占。面板 HTTP 固定监听 5700(back/config/index.ts),端口冲突时改宿主机一侧的映射即可。
- cron 表达式写不对。常规任务用标准 5 段格式,写错了任务不会执行也不报错,新建任务前先在面板里预览下次执行时间。
上手前你可能想问
它支持哪些语言的脚本?JavaScript、TypeScript、Python3、Shell 四种,文件放在data/scripts/下就能被任务和订阅识别。
数据存在哪,怎么备份?全在data/目录:data/db/database.sqlite是 SQLite 库,data/config/是配置,data/repo/是订阅仓库。Docker 部署只要备份挂载的./data就完整了。
集群部署?目前按单机设计。想水平扩展可以上负载均衡,但状态(脚本、数据库、日志)是本地文件,不适合无脑多开。
想跑起来:clone 仓库后按上面 Docker 三行命令部署,访问 http://localhost:5700 初始化账号即可。想看系统结构再读 docs/PROJECT_ARCHITECTURE.md,遇到问题可以提 issue 或在社区交流。
【免费下载链接】qinglong支持 Python3、JavaScript、Shell、Typescript 的定时任务管理平台(Timed task management platform supporting Python3, JavaScript, Shell, Typescript)项目地址: https://gitcode.com/GitHub_Trending/qi/qinglong
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考