Перейти до вмісту
Warcon
Відкритий код, MIT Bun · SvelteKit · Postgres Docker Compose

RCON для WARDOGS без роздавання пароля.

Warcon — це панель для виділених серверів WARDOGS, яку ви розгортаєте самі. Керуйте всіма серверами з одного місця, дайте кожному адміну власний логін і роль та зберігайте запис усього, що відбувається. Пароль RCON залишається зашифрованим на сервері. Нікому не потрібно його знати.

Користуйтеся на console.warcon.app або запустіть власну копію однією командою docker compose up. В обох випадках та сама панель з відкритим кодом.

Огляд сервера у Warcon із рахунком команд, керуванням матчем і таблицею результатів сервера WARDOGS

Зроблено на вбудованому демо-сервері, тож цифри вигадані.

Проблема

Офіційна вебконсоль звертається до ігрового сервера просто з браузера через незашифрований HTTP. Її не можна розмістити на HTTPS, і кожному адміну доводиться давати пароль RCON у відкритому вигляді.

Що робить Warcon

Warcon спілкується з ігровим сервером із власного процесу. Пароль зберігається на боці сервера під AES-GCM, адміни входять під власними обліковими записами, а роль перевіряється перед кожною дією.

І все записує

Запис аудиту створюється до того, як буде надіслано відповідь. Хто що зробив, на якому сервері, звідки і чи прийняла це гра.

Можливості

Створено для тих, хто тримає більше ніж один сервер.

01

Усі сервери в одному місці

Додайте стільки серверів WARDOGS, скільки у вас є. Кожен зберігає власний зашифрований пароль RCON, а панель показує їх усі наживо.

02

Облікові записи замість спільного пароля

Окремий обліковий запис для власника та кожного учасника, з ролями viewer, operator і admin для кожного сервера. Скидання пароля, примусова зміна, вимкнення, відкликання сесій та обмеження спроб входу. За бажанням вхід через Discord.

03

Повний журнал аудиту

Кожен вхід, кожна зміна користувача чи сервера та кожна ігрова команда, з виконавцем, ціллю, результатом, IP-адресою та тривалістю. Фільтруйте, експортуйте у CSV чи JSON і читайте поруч власний журнал ігрового сервера.

04

Статистика, якої гра не зберігає

Фоновий процес регулярно опитує кожен сервер: гравці онлайн у часі, доступність, час на кожній мапі, найактивніші години, ігровий час і сесії гравців, історія матчів із результатами.

05

Усе, що вміє офіційна консоль

Стан і таблиця результатів, кік, бан, кіл, шепіт, зміна команди, оголошення, зміна мапи й наступна мапа, завершення або перезапуск матчу, редагування ротації, зарезервовані слоти, score tick, зображення спонсора та весь ServerSettings.ini з перевіркою і застосуванням.

06

Спробуйте, перш ніж підключати справжній сервер

Вбудований демо-сервер імітує справжній RCON-слухач WARDOGS, тож можна переглянути всі екрани, не вводячи жодного справжнього пароля.

Як це працює

Один процес між вашими адмінами та грою.

Warcon віддає сторінки, тримає сесії та робить виклики до RCON-слухача кожного ігрового сервера. Фоновий процес час від часу опитує стан і гравців та зберігає те, чого гра сама не зберігає. Postgres зберігає все, з ретенцією TimescaleDB для вибірок, якщо вона доступна.

Запускайте його поруч з ігровим сервером, на будь-якому VPS або на хості контейнерів. Йому потрібно лише дістатися порту RCON: напряму, через приватну мережу або через TLS-проксі на ігровій машині.

Браузер
Адміни входять
HTTPS ▸
Warcon
Сесії · ролі · аудит · опитування
HTTP ▸
Ігровий сервер
:7776 WDRCON
Postgres
користувачі · сервери · аудит · вибірки · матчі

Протокол відновлено зворотною розробкою з офіційної консолі та задокументовано в репозиторії.

Свій сервер

Два контейнери, один файл для редагування.

Docker Compose запускає Warcon і базу даних TimescaleDB. Відкрийте адресу, створіть обліковий запис власника, додайте перший сервер і запросіть своїх адмінів. Міграції виконуються під час запуску, а база даних живе в іменованому томі.

  1. 1Машина з Docker: дешевий VPS, старий ПК або сама машина з ігровим сервером.
  2. 2Хост, порт RCON (зазвичай 7776) і пароль RCON вашого сервера.
  3. 3За бажанням: Caddy, nginx, Traefik або Cloudflare Tunnel попереду для HTTPS.
Термінал
git clone https://github.com/warcon-app/warcon.git warcon && cd warcon
cp .env.example .env
# задайте BETTER_AUTH_SECRET і ENCRYPTION_KEY значеннями з `openssl rand -base64 32`,
# POSTGRES_PASSWORD, а ORIGIN — адресою, яку відкриватимуть люди
docker compose up -d
Ролі

Дайте кожному адміну рівно те, що йому потрібно.

Ролі задаються для кожного сервера окремо. Учасник може бути admin на одному сервері та viewer на іншому. Власник керує користувачами, серверами й доступом і бачить увесь журнал аудиту.

Діїvieweroperatoradminowner
Стан, гравці, ротація, бани, зарезервовані слоти, налаштування, журнал сервера, статистика
Оголошення, шепіт, кік, кіл, зміна команди, завершення або перезапуск матчу, зміна мапи, наступна мапа, зміни ротації наживо·
Бан і розбан, зарезервовані слоти, score tick, збереження ротації, зображення спонсора, застосування налаштувань, прямі виклики API··
Керування користувачами, серверами й доступом; перегляд усього журналу аудиту···