English · Русский
Приложение для администрирования серверов Quake Live: подключение по RCON, ввод команд, просмотр ответов сервера и потока live-событий (kills, чат, подключения). Поддерживает несколько серверов с переключением между ними.
GUI на wxPython, связь с сервером через ZeroMQ (pyzmq).
- Python 3.14 (поддерживается 3.12+)
- uv для управления пакетами
uv sync # создать окружение и установить зависимости
uv run main.py # запустить приложение
# или
uv run ql-consoleВ приложении: Add → укажите имя, host/IP, RCON-порт и пароль; при желании включите подписку на события (stats-порт и пароль).
На стороне Quake Live сервера должны быть заданы cvar'ы:
+set zmq_rcon_enable 1
+set zmq_rcon_password "<пароль>"
+set zmq_rcon_port <порт>
+set zmq_stats_enable 1 # для панели событий
+set zmq_stats_password "<пароль>"
+set zmq_stats_port <порт>
Список серверов хранится в простом JSON-файле (пароли — в открытом виде, держите файл приватным):
- по умолчанию:
%APPDATA%\ql_console\servers.json - переопределяется переменной окружения
QL_CONSOLE_CONFIG
- RCON — сокет
DEALER, PLAIN-аутентификация (username=rcon,zap_domain=rcon), случайныйIDENTITY; после установления соединения отправляется кадрregister, затем команды; ответы приходят текстом. - Stats — сокет
SUBс подпиской на всё, PLAIN-аутентификация (username=stats,zap_domain=stats); события приходят в виде JSON. Регистрация не требуется.
Весь сетевой ввод-вывод выполняется в фоновых потоках; результаты доставляются в
GUI через wx.CallAfter.
uv sync # установит dev-зависимости (PyInstaller)
uv run python tools/build_exe.pyРезультат — папка dist/ql-console/ с ql-console.exe внутри (режим one-dir,
без консоли, с иконкой). Распространять нужно всю папку. Скрипт сам подключает
папку с иконками и сгенерированный каталог cvar'ов (_generated.py), если он
есть. После изменения кода или ассетов просто запусти скрипт заново.
