# Game Server с использованием Sunshine и Steam Этот проект предоставляет Docker-конфигурацию для запуска игрового сервера с использованием Sunshine и Steam, позволяя запускать игры на нескольких клиентах одновременно. ## Структура проекта - `Dockerfile` - файл для создания Docker-образа с Sunshine и Steam - `docker-compose.yml` - конфигурация для запуска нескольких контейнеров - `players/` - директория с конфигурациями и данными для каждого игрока - `p1_config/`, `p2_config/`, `p3_config/`, `p4_config/` - конфигурации для каждого клиента - `p1_steam/`, `p2_steam/`, `p3_steam/`, `p4_steam/` - данные Steam для каждого клиента ## Особенности - Поддержка 4 одновременных клиентов - Использование NVIDIA GPU для ускорения работы - Автоматическое восстановление контейнеров - Healthcheck для мониторинга состояния - Логирование для отладки ## Требования - Docker и Docker Compose - NVIDIA драйверы - NVIDIA Container Toolkit - 2x Tesla K80 (суммарно 4 GPU-чипа) ## Установка 1. Убедитесь, что у вас установлен Docker и Docker Compose 2. Склонируйте репозиторий 3. Настройте пути к папкам Steam в `docker-compose.yml` 4. Проверьте назначение GPU-чипов в `NVIDIA_VISIBLE_DEVICES`: - `player1` -> GPU `1` - `player2` -> GPU `2` - `player3` -> GPU `3` - `player4` -> GPU `4` GPU `0` в этой конфигурации обычно занят отдельной видеокартой (например, Quadro) и не используется для игровых контейнеров. 5. Запустите команду: ```bash docker-compose up -d ``` ## Настройка ### Конфигурация Sunshine Конфигурационные файлы Sunshine находятся в директориях `players/pX_config/`: - `apps.json` - список установленных игр - `credentials/` - SSL сертификаты `sunshine.conf` не хранится в репозитории и генерируется Sunshine автоматически при первом запуске контейнера. ### Порты Каждый клиент использует следующие порты: - TCP: 47984-47990 - UDP: 47998-48000 Порты для каждого клиента отличаются для избежания конфликтов. ## Отладка Для проверки состояния контейнеров используйте: ```bash docker-compose ps ``` Для просмотра логов: ```bash docker-compose logs player1 ``` ## Улучшения 1. Добавлен healthcheck для лучшей стабильности 2. Добавлено логирование для отладки 3. Оптимизирован Dockerfile 4. Улучшена стабильность запуска контейнеров