selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

Qinglong logo

Self-host Qinglong

2.23.0

Web panel for scheduling Python, JS, Shell and TS scripts

ReleaseOpen SourceApache-2.0
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
Updated2 weeks ago
LanguageJavaScript
Setup difficultyEasy
ThemeDark mode
Stars
20 019
Ports
5700 (Panel web UI and API), 5500 (gRPC service port)
Docker
whyour/qinglong

What is Qinglong?

Qinglong (青龙) is a web-based platform for scheduling and managing timed script tasks, written for people who run Python, JavaScript, Shell or TypeScript scripts on their own servers. The panel lets you edit scripts, environment variables and config files online, sync scripts from repositories or single-file URLs through subscriptions, schedule tasks down to the second, and read run logs in the browser. It ships system-level notifications to many channels (Telegram, DingTalk, WeCom, Feishu, Bark, Gotify, ntfy, Server酱, email and more), manages script dependencies, and exposes an OpenAPI plus a built-in QLAPI for use inside scripts. A separate npm CLI (@whyour/qinglong-cli with an Agent Skill) manages a remote panel from a terminal or automation flow. Deploy it with a single Docker container (Alpine or Debian images), Docker Compose, Podman, an npm install on Debian/Ubuntu/Alpine Linux, or via the Baota and 1Panel hosting panels; data persists under /ql/data. The web UI supports dark mode and phone operation, and login uses a built-in admin account with an optional two-step code. The Alpine image's crond needs root; use the debian image with --user qinglong to run non-root.

Should you self-host Qinglong?

Qinglong scores 69/100 on selfhost.directory (how scoring works) and ranks #3 of 34 in Task Management. It has 20 019 GitHub stars.

There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.

Setup is easy: most people get it running in one sitting. An official Docker image is available. It is Apache-2.0-licensed and written mostly in JavaScript.

Its closest alternative on selfhost.directory is Super Productivity (83/100, 23 206 stars). It scores higher overall, so compare the two before you pick. See Qinglong vs Super Productivity side by side.

Features

  • Built-in script API (QLAPI)
  • Built-in shell commands (task, ql)
  • Concurrent / multi-account task execution
  • Dependency Management
  • Multi-language script support
  • Online script, environment variable and config management
  • Online task log viewing
  • Remote CLI
  • Repository subscription sync
  • REST OpenAPI
  • Run statistics dashboard
  • Second-level cron scheduling
  • System-level notifications
  • Two-factor authentication

Qinglong README

How to install Qinglong

Install Qinglong with Docker

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

latest image is Alpine-based; use the debian image with --user qinglong for non-root

How to configure Qinglong

  • BACK_PORT5700
  • BIND_HOST服务绑定地址,默认 ::(IPv6 通配,双栈系统同时支持 IPv4/IPv6) 纯 IPv4 环境自动 fallback 到 0.0.0.0,也可手动指定

    服务绑定地址,默认 ::(IPv6 通配,双栈系统同时支持 IPv4/IPv6) 纯 IPv4 环境自动 fallback 到 0.0.0.0,也可手动指定

  • BIND_HOST_GRPC
  • GRPC_PORT5500
  • JWT_EXPIRES_IN
  • JWT_SECRET
  • LOG_LEVELinfo
  • PYTHON_VENV_DIRPython 虚拟环境路径,留空则使用系统 Python

    Python 虚拟环境路径,留空则使用系统 Python

  • QINIU_AK
  • QINIU_SCOPE
  • QINIU_SK
  • QlBaseUrl/Optional deployment path prefix (部署路径前缀), e.g. /test

    Optional deployment path prefix (部署路径前缀), e.g. /test

  • QlPort5700Panel listening port; when remapping, the right side of -p must match QlPort

    Panel listening port; when remapping, the right side of -p must match QlPort

  • QL_TRUST_PROXY可信反向代理。未设置时可在「系统设置 → 客户端 IP」中配置和诊断。 环境变量优先级高于系统设置。支持固定层数、IP、CIDR 或逗号分隔列表:

    可信反向代理。未设置时可在「系统设置 → 客户端 IP」中配置和诊断。 环境变量优先级高于系统设置。支持固定层数、IP、CIDR 或逗号分隔列表:

More in Scheduling & Booking

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…