qinglong is a free, open source project & work management project written in TypeScript and released under Apache-2.0. It has 19,887 GitHub stars, 3,232 forks and 108 open issues, and was last pushed 5 hours ago. On this registry it ranks #3 of 62 tracked projects in Project & Work Management, with 5 head-to-head comparisons available. It gained 13 stars over the last 3 tracked days.

What is qinglong?

Qinglong is a self-hosted timed task management platform that schedules and runs Python 3, JavaScript, Shell, and TypeScript scripts from a web interface, built for developers and operators who want central control over scheduled jobs instead of hand-editing crontab on every machine.

What it is

Qinglong is a TypeScript project, licensed Apache-2.0, that combines a task scheduler with a browser-based management panel. It is distributed mainly as Docker images under whyour/qinglong and secondarily as the npm package @whyour/qinglong. From the panel, users write and store scripts, define environment variables and configuration files, set schedules, read task logs, and receive system-level notifications. The Docker image ships in two variants: latest, built on Alpine, and debian, built on debian-slim, with the Debian variant recommended when Alpine lacks a required dependency, most notably when running the container as a non-root user, since Alpine's crond requires root.

The concrete problem it solves is the operational gap around plain crontab. A crontab entry names a command and a schedule, but gives no place to keep the script itself, no retained output to inspect, no managed environment variables, and no remote interface. Qinglong replaces that hand-maintained crontab file with a managed console: jobs, their scripts, their variables, and their logs all live in one panel reachable over HTTP on port 5700. It sits in the self-hosted Linux container ecosystem alongside other cron front ends, and it lists crontab among its topics.

Key capabilities

  • Runs scheduled jobs in four languages: Python 3, JavaScript, Shell, and TypeScript.
  • Manages scripts, environment variables, and configuration files online rather than through shell access to the host.
  • Shows task logs online, so job output is inspectable from the panel.
  • Supports second-level task settings, allowing schedules finer than the one-minute granularity of classic crontab.
  • Sends system-level notifications.
  • Offers a dark mode and a mobile-friendly interface, so jobs can be checked and started from a phone.
  • Ships two Docker image variants, whyour/qinglong:latest on Alpine and whyour/qinglong:debian on debian-slim.

Who uses it and how

  • Self-hosters running a home server or NAS who deploy one container, mount a single data volume at /ql/data, and publish port 5700.
  • Operators who need a non-root container: they use the debian image and pass --user qinglong, a combination the Alpine image cannot support because its crond needs root.
  • Users on hosts where containers are not wanted: they install @whyour/qinglong via npm on debian, ubuntu, or alpine systems, having installed node, npm, python3, pip3, and pnpm themselves.
  • Teams replacing crontab sprawl across several machines, who want one panel for schedules, stored environment variables, and retained log output rather than per-host editing.
  • Script-driven automations that depend on centrally stored environment variables and configuration files, edited in the panel and injected at run time.

Getting started

Docker is the primary path: run whyour/qinglong:latest or whyour/qinglong:debian with a volume mounted at /ql/data and port 5700 published. The npm route installs the same project with npm i @whyour/qinglong, and installation guides, built-in API references, and built-in command references are published at https://qinglong.online.

How it compares

The README explicitly credits crontab-ui among its references, which places Qinglong in the same family of web front ends that put a browser interface over cron. It goes further than a thin cron editor by also storing the scripts themselves, their environment variables, and their configuration files, and by supporting Python 3, JavaScript, Shell, and TypeScript alongside second-level scheduling. The facts provided name no paid products that Qinglong replaces.

When to use it — and when not to

A self-hoster must operate the Docker host, the mounted /ql/data volume, and port 5700, or maintain a host with node, npm, python3, pip3, and pnpm installed for the npm route. Users who need non-root execution inside a container must accept the larger debian image, because the Alpine variant cannot do it. The README itself is brief and defers installation, API, and command details to the external documentation site, so anyone expecting complete operational guidance, high-availability clustering, or a supported hosted service should look elsewhere; only a demo instance is offered at http://demo.qinglong.online:4433/.

project readme (upstream, from github) — read inline

青龙

简体中文 | English

支持 Python3、JavaScript、Shell、Typescript 的定时任务管理平台

Timed task management platform supporting Python3, JavaScript, Shell, Typescript

npm version docker pulls docker stars docker image size

Demo / Issues / Telegram Channel / Buy Me a Coffee

演示 / 反馈 / Telegram 频道 / 打赏开发者

cover

功能

  • 支持多种脚本语言(python3、javaScript、shell、typescript)
  • 支持在线管理脚本、环境变量、配置文件
  • 支持在线查看任务日志
  • 支持秒级任务设置
  • 支持系统级通知
  • 支持暗黑模式
  • 支持手机端操作

版本

docker

latest 镜像是基于 alpine 构建,debian 镜像是基于 debian-slim 构建。如果需要使用 alpine 不支持的依赖,建议使用 debian 镜像

⚠️ 重要提示: 如果您需要以非 root 用户运行 Docker,请使用 debian 镜像。Alpine 的 crond 需要 root 权限。

docker pull whyour/qinglong:latest
docker pull whyour/qinglong:debian

使用 debian 镜像以非 root 用户运行时,需指定 --user qinglong

docker run -d \
  -v /path/to/ql/data:/ql/data \
  -p 5700:5700 \
  --user qinglong \
  --name qinglong \
  whyour/qinglong:debian

npm

npm 版本支持 debian/ubuntu/alpine 系统,需要自行安装 node/npm/python3/pip3/pnpm

npm i @whyour/qinglong

部署

查看文档

内置 API

查看文档

内置命令

查看文档

开发

git clone https://github.com/whyour/qinglong.git
cd qinglong
cp .env.example .env
# 推荐使用 pnpm https://pnpm.io/zh/installation
npm install -g [email protected]
pnpm install
pnpm start

打开你的浏览器,访问

链接

名称来源

青龙,又名苍龙,在中国传统文化中是四象之一、天之四灵之一,根据五行学说,它是代表东方的灵兽,为青色的龙,五行属木,代表的季节是春季,八卦主震。苍龙与应龙一样,都是身具羽翼。《张果星宗》称“又有辅翼,方为真龙”。

《后汉书·律历志下》记载:日周于天,一寒一暑,四时备成,万物毕改,摄提迁次,青龙移辰,谓之岁。

在中国二十八宿中,青龙是东方七宿(角、亢、氐、房、心、尾、箕)的总称。 在早期星宿信仰中,祂是最尊贵的天神。 但被道教信仰吸纳入其神系后,神格大跌,道教将其称为“孟章”,在不同的道经中有“帝君”、“圣将”、“神将”和“捕鬼将”等称呼,与白虎监兵神君一起,是道教的护卫天神。

Frequently asked questions

Is qinglong free to use?

qinglong is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does qinglong do?

支持 Python3、JavaScript、Shell、Typescript 的定时任务管理平台(Timed task management platform supporting Python3, JavaScript, Shell, Typescript)

What is qinglong written in?

qinglong is primarily written in TypeScript. Its source is publicly available at https://github.com/whyour/qinglong, and it has 19,887 GitHub stars.