Skip to content

dngrtech/qlsm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

403 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

QLSM — Quake Live Server Management

📚 User Guide → · Issues

Features:

  • Three deployment modes (Debian 12 and Ubuntu 22 are tested, Debian 12 is recommended):
    • QLSM self-deployment: run QLDS instances on the same machine as QLSM
    • Standalone remote server
    • VULTR cloud provisioning via Terraform
  • Automatic CPU affinity assignment for QLDS instances on multi-vCPU hosts
  • Optional 99k LAN rate mode. Only Debian 12 supports this feature
  • Optional QLFilter deployment (anti-DDOS protection)
  • Per-instance RCON console with command line and live feed of all server events
  • Live server status with current map, gametype, mode/factory, match timer, player list, and scores
  • Syntax-aware editors (CodeMirror) for server.cfg, mappool.txt, access.txt, and workshop.txt, featuring a Python linter for minqlx plugin's code validation. The editor includes search and replace functionality for easy editing
  • Upload common config files, factories, custom minqlx plugins, or *.so binary files
  • Preset manager to load/save/update/delete QLDS presets. Each preset includes custom server.cfg, access.cfg, mappool.cfg, workshop.txt, set of minqlx-plugins and *.factories files
    • Minqlx plugins can be enabled in the UI by selecting checkboxes. This eliminates the need to manually edit the qlx_plugins cvar, as QLSM handles it automatically.
    • Factories can be enabled in the UI by selecting checkboxes.
  • Chat logs (including rotated archived chat log files) and server logs retrieval with convenient search capability.
  • Daily/weekly/monthly host auto-restart scheduling; scheduled restarts trigger Steam workshop refresh across all deployed instances
  • Manual workshop item update by Steam Workshop ID, with optional restart of selected instances
  • ZMQ RCON Port, ZMQ RCON Password, ZMQ Stats Port, ZMQ Stats Password - all these cvars are auto-generated and shown in the UI
  • User management: create users, delete users, and reset passwords
  • External API key management for service-to-service access
  • External REST API for authenticated instance inventory lookups
  • Responsive server management UI optimized for desktop, tablet, and mobile layouts
  • Per-user host/instance ordering and expanded-state preferences stored in browser local storage

Everything runs over SSH via Ansible.

qlsm-main edit_config

Stack

Flask + React + SQLite + Redis + Ansible. Background jobs run through RQ workers. The frontend is a Vite/Tailwind SPA served behind Caddy.

Requirements

Debian 12 recommended (Ubuntu 22 is also supported, but the 99k LAN rate feature requires Debian 12):

  • Dockerinstall guide
  • Docker Compose (usually included with Docker)
  • A user with sudo access

Redis, Caddy, the app itself run inside Docker.

To install Docker on a fresh Debian server:

curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
newgrp docker

Quick start

Option 1 — Vultr (no terminal required)

The easiest option. Register a Vultr account, go to Manage → Startup Scripts, and add the vultr-startup.sh script. Then deploy a shared CPU VPS (Debian 12, vc2-1c-1gb at $5/month works fine) selecting that startup script under the Configure Software tab — QLSM will be up and running in about 10 minutes with no terminal interaction needed. After deployment, open http://[vultr-provided-ip] in your browser to access the web interface.

Option 2 — one-liner

curl -fsSL https://raw.githubusercontent.com/dngrtech/qlsm/main/qlsm-install.sh | bash

With a custom domain (enables HTTPS via Caddy):

SITE_ADDRESS=qlds.example.com bash <(curl -fsSL https://raw.githubusercontent.com/dngrtech/qlsm/main/qlsm-install.sh)

Option 3 — git clone

git clone https://github.com/dngrtech/qlsm.git && cd qlsm
cp .env.example .env
# edit .env: set SITE_ADDRESS, REDIS_PASSWORD, and VULTR_API_KEY if using Vultr
docker compose up -d

Default login is admin / admin. A password change is enforced on first login.

Updating

Manual update

Default install (~/qlsm)

curl -fsSL https://raw.githubusercontent.com/dngrtech/qlsm/main/qlsm-install.sh | bash -s -- --update

Vultr / system install (/opt/qlsm)

curl -fsSL https://raw.githubusercontent.com/dngrtech/qlsm/main/qlsm-install.sh | INSTALL_DIR=/opt/qlsm bash -s -- --update

Automatic daily updates (cron)

Default install (~/qlsm)

(crontab -l 2>/dev/null | grep -v "qlsm-install.sh"; echo "0 9 * * * curl -fsSL https://raw.githubusercontent.com/dngrtech/qlsm/main/qlsm-install.sh | bash -s -- --update >> \$HOME/qlsm-update.log 2>&1") | crontab -

Vultr / system install (/opt/qlsm)

sudo bash -c '(crontab -l 2>/dev/null | grep -v "qlsm-install.sh"; echo "0 9 * * * curl -fsSL https://raw.githubusercontent.com/dngrtech/qlsm/main/qlsm-install.sh | INSTALL_DIR=/opt/qlsm bash -s -- --update >> /var/log/qlsm-update.log 2>&1") | crontab -'

Full installation guide: docs/user/getting-started/installation.md

Development

cp .env.example .env
./run-dev.sh

That starts Flask, Vite, an RQ worker, the RCON service, and a status poller together. Flask ends up on :5001, frontend on :5173.

Redis needs to be running locally for dev (it's included automatically in the Docker stack for production):

# Ubuntu/Debian
sudo apt install redis-server && sudo systemctl enable --now redis
pytest tests/

Docs

Acknowledgements

Huge thanks to Doomsday — his deep knowledge of Quake Live dedicated server administration has directly shaped a large portion of QLSM's features. Years of running servers for the NA Thunderdome community gave him insights that no documentation could replace. He also maintains an excellent collection of minqlx plugins worth checking out.

Kudos to mb for his help configuring and troubleshooting the 99k LAN rate feature.

License

GPL-3.0

About

Quake Live Server Management - Web dashboard for Quake Live dedicated server management

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors