Выделенные серверы
Новый выделенный сервер
В самом начале работы с панелью необходимо добавить выделенный сервер (VDS/VPS, контейнер, физический сервер), на котором будет работать GameAP Daemon.
Перейдите на страницу «Администрирование» → «Выделенные серверы» и нажмите кнопку «Создать». Откроется окно с готовой командой установки — отдельно для Linux и для Windows.
Сертификаты создаёт и передаёт демону сама панель: генерировать и подписывать их вручную не нужно.
Ключ установки действует 1 час и одноразовый — после успешной регистрации демона он гасится. Ключ общий для всей панели, поэтому повторное открытие окна «Создать» выпускает новый ключ, а ранее скопированная команда перестаёт работать.
Что нужно на выделенном сервере
- Права суперпользователя (root в Linux, администратор в Windows).
- Исходящий доступ к панели по порту 31718/TCP — по нему демон общается с панелью по gRPC. Это единственный порт панели, который нужен работающему демону.
- Исходящий доступ к
github.comиapi.github.com— оттуда скачиваются gameapctl и сам демон. - Для Linux-скрипта: установленные
curl,tarиinstall. - Архитектура:
amd64,arm64,386илиarm.
Порт 8025 — это веб-интерфейс и API панели. Он нужен браузеру администратора и команде curl
в однострочнике установки, но работающему демону не требуется.
Порт 31717 демон при регистрации указывает как свой собственный. В GameAP 4 панель не устанавливает входящих соединений к демону, поэтому открывать этот порт на выделенном сервере не требуется.
Установка на Linux
Скопируйте команду из вкладки Linux и выполните её на выделенном сервере от имени root:
bash <(curl -fsSL 'https://your-panel/nodes/setup/zItWHWlI4RKPl9ZsYc3y3WgdKq7mNvBx')
Скрипт проверит окружение, установит gameapctl в /usr/local/bin (а если он уже установлен —
обновит его), после чего запустит gameapctl daemon install. Тот поставит GameAP Daemon, создаст
пользователя gameap, установит SteamCMD, зарегистрирует демона в панели и запустит его как сервис
systemd gameap-daemon.
Команду нужно запускать именно от root, а не через sudo: подстановка процесса bash <(...) не
переживает sudo, и скрипт остановится с ошибкой. Если вы работаете не из-под root, скачайте скрипт
в файл и запустите его:
curl -fsSL 'https://your-panel/nodes/setup/zItWHWlI4RKPl9ZsYc3y3WgdKq7mNvBx' -o gameap-setup.sh
sudo bash gameap-setup.sh
Куда всё устанавливается:
| Что | Путь |
|---|---|
| Демон | /usr/bin/gameap-daemon |
| Конфигурация | /etc/gameap-daemon/gameap-daemon.yaml |
| Сертификаты | /etc/gameap-daemon/certs |
| Рабочий каталог | /srv/gameap |
| SteamCMD | /srv/gameap/steamcmd |
| Логи | /var/log/gameap-daemon/output.log |
Установка на Windows
Однострочника для PowerShell нет, установка идёт через gameapctl:
- Скачайте архив gameapctl для своей архитектуры со страницы
релизов gameapctl. Архив называется
gameapctl-<версия>-windows-amd64.zip. - Распакуйте архив и запустите
gameapctl.exe. - В разделе GameAP Daemon нажмите Install.
- Вставьте в поле Connect URL строку из вкладки Windows в панели.
- Нажмите Install.
То же самое можно сделать командой в консоли:
gameapctl daemon install --connect=grpc://your-panel:31718/zItWHWlI4RKPl9ZsYc3y3WgdKq7mNvBx
Куда всё устанавливается:
| Что | Путь |
|---|---|
| Демон | C:\gameap\daemon\gameap-daemon.exe |
| Конфигурация | C:\gameap\daemon\gameap-daemon.yaml |
| Сертификаты | C:\gameap\daemon\certs |
| Рабочий каталог | C:\gameap |
| SteamCMD | C:\gameap\steamcmd |
| Логи | C:\gameap\daemon\logs\output.log |
Демон регистрируется как служба GameAP Daemon.
Дополнительные настройки установки
В окне создания есть раскрывающийся блок «Дополнительные настройки»:
- Менеджер процессов — чем управлять процессами игровых серверов. В Linux доступны
systemd,docker,podman,tmuxиsimple, в Windows —winsw,shawlиsimple. По умолчанию выбирается автоматически. Подробнее — Менеджеры процессов. - GitHub — собрать демона из исходников вместо готового релиза.
- Ветка — ветка репозитория, если демон собирается из исходников.
Выбранные значения панель дописывает к команде установки:
bash <(curl -s '...') --config='process_manager.name=docker' --github --branch=master
Ручная установка
Если автоматический скрипт не подходит — нестандартный дистрибутив, свои правила установки пакетов, установка в подготовленный образ — демона можно зарегистрировать вручную.
- Скачайте бинарник
gameap-daemonдля своей платформы со страницы релизов демона и разместите его на выделенном сервере. - Откройте в панели окно «Создать» и возьмите из команды для Windows connect URL вида
grpc://хост:порт/ключ. - Выполните регистрацию:
gameap-daemon enroll --connect=grpc://your-panel:31718/zItWHWlI4RKPl9ZsYc3y3WgdKq7mNvBx
Демон подключится к панели, создаст в ней запись о выделенном сервере, получит сертификаты
(ca.crt, server.crt, server.key с правами 0600 в каталоге с правами 0700) и запишет
файл конфигурации.
| Флаг | По умолчанию в Linux | По умолчанию в Windows | Назначение |
|---|---|---|---|
--connect |
— | — | Connect URL. Обязателен |
--config-path |
/etc/gameap-daemon/gameap-daemon.yaml |
C:\gameap\daemon\gameap-daemon.yaml |
Куда записать конфигурацию |
--certs-dir |
/etc/gameap-daemon/certs |
C:\gameap\daemon\certs |
Куда сохранить сертификаты |
--work-path |
/srv/gameap |
C:\gameap |
Рабочий каталог игровых серверов |
--steamcmd-path |
/srv/gameap/steamcmd |
C:\gameap\steamcmd |
Каталог SteamCMD |
--listen-ip |
0.0.0.0 |
0.0.0.0 |
IP, который демон сообщает о себе. При 0.0.0.0 определяется автоматически |
--listen-port |
31717 |
31717 |
Порт, который демон сообщает о себе |
Команда
enrollперезаписывает файл конфигурации целиком — без слияния с существующими настройками и без резервной копии. Если демон уже был настроен, сохраните конфигурацию заранее.
После регистрации демона нужно самостоятельно зарегистрировать его как системный сервис и запустить.
Если установка не удалась
| Сообщение | Причина |
|---|---|
This script must be run as root. |
Скрипт запущен не от root. Скачайте его в файл и запустите через sudo, как показано выше |
Error: 'curl' is required but not installed. |
На сервере нет curl, tar или install. Установите недостающий пакет и повторите |
Unsupported architecture: ... |
Для архитектуры сервера нет готовых сборок |
Failed to detect latest gameapctl version |
Нет доступа к api.github.com либо исчерпан лимит GitHub API (60 запросов в час с одного адреса). Подождите или установите gameapctl вручную |
cannot reach gRPC server at ... |
С выделенного сервера не открывается порт 31718 панели. Проверьте файрвол и адрес панели — см. GRPC API |
Ссылка отдаёт 403 |
Ключ установки истёк или был перевыпущен. Откройте окно «Создать» заново и скопируйте новую команду |
Редактирование выделенных серверов
Для редактирования выделенного сервера (ноды) перейдите на страницу “Администрирование” → “Выделенные серверы”, затем выберите выделенный сервер, который хотите отредактировать и нажмите на кнопку “Редактировать”.
Описание параметров
Основное
Имя
Имя выделенного сервера. Может быть любым непустым значением, ни на какой функционал не влияет.
Рабочий каталог
В этом каталоге располагаются основные скрипты управления процессами игровых серверов. В подкаталогах
рабочего каталога размещаются файлы игровых серверов. Относительно указанного пути назначается
каталог игрового сервера. По умолчанию /srv/gameap.
Путь к SteamCMD
Путь к каталогу где размещается SteamCMD (там находится скрипт steamcmd.sh). По умолчанию /srv/gameap/steamcmd.
Список IP
Список IP или хостов, на которых будут работать игровые серверы.
Скрипты
Шаблоны команд, которыми панель управляет игровыми серверами на этом выделенном сервере. Заполнять не обязательно: если поле пустое, используется команда по умолчанию.
GameAP Daemon
Данные о подключении демона. Заполняются автоматически при регистрации выделенного сервера, менять их вручную обычно не требуется.
В GameAP 4 соединение устанавливает демон: он сам подключается к панели по gRPC и держит постоянное соединение. Панель к демону не подключается.
GameAP Daemon хост и порт
Адрес и порт, которые демон сообщил о себе при регистрации. По умолчанию порт 31717. Значения носят
справочный характер — панель их для подключения не использует, открывать этот порт на выделенном
сервере не требуется.
GameAP Daemon логин и пароль
Устаревшие поля из GameAP 3, где панель подключалась к демону сама. В GameAP 4 не используются, заполнять их не нужно.