Deploy a Multi‑Language Task Scheduler with Podman, Docker, and Docker‑Compose

This guide introduces a versatile task‑scheduling panel supporting Python 3, JavaScript, Shell, and TypeScript, outlines its key features, and provides step‑by‑step deployment instructions for Podman, Docker, and Docker‑Compose, including command examples and usage tips.

Programmer DD
Programmer DD
Programmer DD
Deploy a Multi‑Language Task Scheduler with Podman, Docker, and Docker‑Compose

Today we share a task‑management panel that supports Python 3, JavaScript, Shell, and TypeScript.

The project offers the following features:

Multiple script language support (Python 3, JavaScript, Shell, TypeScript)

Online management of scripts, environment variables, and configuration files

Real‑time task log viewing

Second‑level task scheduling

System‑level notifications

Dark mode

Mobile‑friendly operation

Podman deployment

1. Install Podman https://podman.io/getting-started/installation 2. Run the container

podman run -dit \
  --network bridge \
  -v $PWD/ql:/ql/data \
  -p 5700:5700 \
  --name qinglong \
  --hostname qinglong \
  --restart unless-stopped \
  docker.io/whyour/qinglong:latest

Docker deployment

1. Install Docker sudo curl -sSL get.docker.com | sh 2. Run the container

docker run -dit \
  -v $PWD/ql:/ql/data \
  -p 5700:5700 \
  --name qinglong \
  --hostname qinglong \
  --restart unless-stopped \
  whyour/qinglong:latest

Docker‑Compose deployment

1. Install Docker‑Compose

sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

2. Start the container

mkdir qinglong
wget https://raw.githubusercontent.com/whyour/qinglong/master/docker/docker-compose.yml
# start
docker-compose up -d
# stop
docker-compose down

Built‑in commands for using the panel include:

# Update and restart QingLong
ql update
# Run custom script extra.sh
ql extra
# Add a single script file
ql raw <file_url>
# Add a specific script from a repository
ql repo <repo_url> <whitelist> <blacklist> <dependence> <branch>
# Delete old logs
ql rmlog <days>
# Start tg‑bot
ql bot
# Check environment and fix issues
ql check
# Reset login error count
ql resetlet
# Disable two‑step login
ql resettfa
# Execute tasks with optional random delay, concurrency, or specific account
task <file_path>
task <file_path> now
task <file_path> conc <env_name> <account_number>
task <file_path> desi <env_name> <account_number>

Parameter explanations:

file_url: script address

repo_url: repository address

whitelist: path substring that must be present when pulling scripts

blacklist: path substring that must not be present when pulling scripts

dependence: dependency files copied to the scripts directory, unaffected by blacklist

branch: repository branch to pull

days: number of days to retain logs

file_path: path of the file to execute

env_name: environment variable name for concurrent or targeted execution

account_number: specific account index for execution

Usage example:

git clone [email protected]:whyour/qinglong.git
cd qinglong
cp .env.example .env
# Recommended: install pnpm
npm install -g pnpm
pnpm install
pnpm start

After starting, access the panel at http://127.0.0.1:5700.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

ContainerDocker Composetask schedulerPodman
Programmer DD
Written by

Programmer DD

A tinkering programmer and author of "Spring Cloud Microservices in Action"

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.