Выделенные серверы

Новый выделенный сервер

В самом начале работы с панелью необходимо добавить выделенный сервер (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:

  1. Скачайте архив gameapctl для своей архитектуры со страницы релизов gameapctl. Архив называется gameapctl-<версия>-windows-amd64.zip.
  2. Распакуйте архив и запустите gameapctl.exe.
  3. В разделе GameAP Daemon нажмите Install.
  4. Вставьте в поле Connect URL строку из вкладки Windows в панели.
  5. Нажмите 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

Ручная установка

Если автоматический скрипт не подходит — нестандартный дистрибутив, свои правила установки пакетов, установка в подготовленный образ — демона можно зарегистрировать вручную.

  1. Скачайте бинарник gameap-daemon для своей платформы со страницы релизов демона и разместите его на выделенном сервере.
  2. Откройте в панели окно «Создать» и возьмите из команды для Windows connect URL вида grpc://хост:порт/ключ.
  3. Выполните регистрацию:
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 не используются, заполнять их не нужно.