Перейти к содержанию

Обзор развертывания CS2 на сервере

Предварительные требования

Для корректной работы сервера должны быть соблюдены следующие условия:

  • Операционная система: Ubuntu (поддерживается архитектура i386).

  • Права доступа: права суперпользователя (root) для установки системных пакетов и создания директорий.

  • Сетевой доступ: возможность загрузки данных из репозиториев Ubuntu и серверов Steam.

FDQN итоговой панели на домене hostkey.in

Параметр Значение
Префикс plane
Домен hostkey.in
Полный шаблон plane{Server_ID_from_Invapi}.hostkey.in

Структура файлов и каталогов

Основные директории, используемые в системе:

  • /opt/cs2 — корневая директория установки игровых файлов.

  • /opt/cs2/game/game/cfg/ — папка с конфигурационными файлами сервера.

  • /root/.steam/sdk64/ — системная директория для библиотек Steam SDK.

  • /var/log/cs2server.log — файл логов работы игрового сервера.

  • /tmp/cs2server.pid — файл процесса (PID) запущенного сервера.

Процесс установки приложения

Установка выполняется путем настройки системного окружения и загрузки игровых файлов через SteamCMD:

  1. Подготовка системы:

  2. Включение репозитория multiverse.

  3. Добавление архитектуры i386 для поддержки библиотек.

  4. Обновление всех системных пакетов до последних версий.

  5. Настройка окружения Steam:

  6. Создание директории /opt/cs2.

  7. Установка пакета steamcmd через менеджер пакетов apt.

  8. Загрузка и распаковка официального дистрибутива steamcmd_linux.tar.gz в /opt/cs2.

  9. Создание необходимых директорий для библиотек SDK (/root/.steam/sdk64).

  10. Установка игровых файлов:

  11. Автоматизированный запуск steamcmd.sh с параметрами установки игры (AppID 730) в анонимном режиме.

  12. Копирование необходимой библиотеки steamclient.so из папки игры в системную директорию SDK для обеспечения корректной работы сервера.

  13. Конфигурация:

  14. Размещение файла конфигурации cs2server.cfg.

  15. Установка скрипта управления сервером.

Права доступа и безопасность

  • Директория /opt/cs2 имеет права 0755.

  • Файлы конфигурации и скрипты управления имеют владельца root и права доступа 0755.

  • Для работы сервера требуется наличие установленных библиотек в системных путях пользователя.

Контейнеры Docker и их запуск

Для обеспечения работы веб-сервера и автоматического получения SSL-сертификатов используется один контейнер:

Имя образа Порты Тома (volumes) Переменные окружения Политика перезапуска
jonasal/nginx-certbot:latest host mode nginx_secrets:/etc/letsencrypt
/data/nginx/user_conf.d:/etc/nginx/user_conf.d
CERTBOT_EMAIL=hkadm@hostkey.com unless-stopped

Кастомные скрипты и дополнительные настройки

В системе используется управляющий скрипт для управления процессом игры:

Скрипт управления сервером: /root/cs2server.sh Предназначен для выполнения следующих действий:

  • start: Запуск сервера в фоновом режиме (nohup) с использованием конфигурации из cs2server.cfg. Создает PID-файл.

  • stop: Остановка процесса по его ID, указанному в PID-файле.

  • restart: Перезагрузка сервера (остановка и последующий запуск).

  • status: Проверка состояния процесса: запущен ли сервер или процесс был завершен некорректно.

Инструкция по обновлению приложения

Для обновления игровых файлов необходимо использовать стандартную процедуру через SteamCMD, которая выполняет проверку целостности и загрузку актуальных версий (аналогично команде app_update 730 validate).

Расположение конфигурационных файлов и данных

  • Конфигурация сервера: /opt/cs2/game/game/csgo/cfg/cs2server.cfg

  • Логи приложения: /var/log/cs2server.log

Доступные порты для подключения

Приложение использует сетевой режим host, что означает использование стандартных игровых портов Steam (требуется предварительная настройка брандмауэра на уровне ОС).

Запуск, остановка приложения

Управление сервером осуществляется через скрипт /root/cs2server.sh:

  • Запуск:

    /root/cs2server.sh start
    

  • Остановка:

    /root/cs2server.sh stop
    

  • Перезагрузка:

    /root/cs2server.sh restart
    

  • Проверка статуса:

    /root/cs2server.sh status
    

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×