Basic Explanation

These are the default built-in Shell commands for the panel host or container. For Docker, enter the container with docker exec -it qinglong bash. See the separate npm CLI for remote management and panel-internal tools for optional TypeScript execution and maintenance.

Built-in commands

  • task
# Execute in sequence, if a random delay is set, it will be randomly delayed by a certain number of seconds
task <file_path>
# Execute in sequence, regardless of whether a random delay is set, all run immediately,
# and the foreground will output logs, while recorded in the log file
task <file_path> now
# Concurrent execution, regardless of whether a random delay is set, are run immediately,
# the foreground does not output logs, directly recorded in the log file, and can be specified account execution
task <file_path> conc <env_name> <account_number>(Optional)
# Specify the account to execute and run immediately regardless of whether a random delay is set
task <file_path> desi <env_name> <account_number>
# Set task timeout
task -m <max_time> <file_path>
# Use -- to split, -- followed by a parameter that is passed to the script, as in the following example, the script receives the parameter -u whyour -p password
task <file_path> -- -u whyour -p password

Place -m before the script name, for example task -m 30s demo.js now, task -m 5m demo.py, or task -m 1h demo.sh. Values without a suffix are seconds. Without -m, the configured CommandTimeoutTime applies; an empty configuration sets no timeout.

A timeout terminates the script and its descendant processes, with configured after hooks run according to the execution mode. Normal and desi modes record timeout code 124; conc retains its existing aggregate behavior. The default Shell wrapper task.sh still exits with 0, so check the task log for timeout information instead of relying only on the outer command's $?. The internal TypeScript runner returns 124 on timeout; the remote npm CLI's --timeout controls HTTP request waiting time.

Shell scripts run in a child Shell that inherits before-hook variables and functions. A script's cd, Shell options, exit, or exec no longer changes the main wrapper's subsequent hooks and cleanup. Adjust older scripts that rely on those side effects.

  • ql
# Update and restart Qinglong
ql update
# Run custom scripts extra.sh
ql extra
# Adding a single script file
ql raw <file_url>
# Add a specific script for a single repository
ql repo <repo_url> <whitelist> <blacklist> <dependence> <branch> <extensions>
# Delete old logs
ql rmlog <days>
# Start bot
ql bot
# Detecting the Qinglong environment and repairing it
ql check
# Reset the number of login errors
ql resetlet
# Disable two-step login
ql resettfa
Parameter Description
file_url Script address
repo_url Repository address
whitelist The whitelist when pulling the repository, i.e., the string contained in the path of the script to be pulled
blacklist Blacklisting when pulling repositories, i.e. strings that are not included in the path of the script to be pulled
dependence Pulling the dependencies needed for the repository will be copied directly from the repository to the repository directory under scripts, regardless of the blacklist
extensions File extensions to include, separated by pipes
branch Repository branch
days Number of days of logs to keep
file_path Path of the script to execute

Development

Panel builds and regression checks use Node.js 20 and pnpm 8.3.1. The standalone remote CLI requires Node.js 22.12 or newer. Development also needs Python3 and pip3.

git clone https://github.com/whyour/qinglong.git
cd qinglong
cp .env.example .env
# Recommended use pnpm https://pnpm.io/zh/installation
npm install -g pnpm@8.3.1
pnpm install --frozen-lockfile
pnpm start
# Open your browser and visit <http://127.0.0.1:5700>