Sign inSign up

anfit5/cs16-dedicated

By anfit5

•Updated 17 days ago

Image
0

169

anfit5/cs16-dedicated repository overview

⁠Counter-Strike 1.6 Dedicated Server (dos.zone MP)

Docker Pulls Docker Image Size

Language / Язык: English⁠ | Русский⁠


⁠🇺🇸 English

⁠Counter-Strike 1.6 Dedicated Server for https://dos.zone/mp/?lobby=cs16⁠

Docker image containing all the necessary software to publish a xash3d Counter-Strike 1.6 dedicated server on https://dos.zone/mp/?lobby=cs16⁠.

The image is based on Linux Debian and a deeply modified Counter-Strike 1.6 Web Server by yohimik⁠.


⁠System Requirements
  • Minimum requirements for stable operation of 2-3 servers on a single VPS: 2 CPU, 2(4) GB RAM, 10 GB HDD(SSD).
  • The game server operates over HTTPS protocol using a special browser game client on the dos.zone project.
  • The server does not automatically generate SSL files; it takes them from the host machine directory. It is implied that along with this server, another FastDL server⁠ will be launched, which provides SSL file generation and fast game resource delivery to the CS16/HLDM client.

⁠Description of docker-compose.yml for Docker Container Creation

Base Parameters

VariableValueDescription
imageanfit5/cs16-dedicated:release_1Image name on GitHub / Docker Hub
container_namecs16-dedicatedArbitrary custom container name
/cs16dedicated/SSL_certificates/srv/FastDL/SSLRequired directory containing SSL certificates for your domain on the host machine: fullchain.pem, privkey.pem
/cs16dedicated/cstrikededicated_cstrikeNamed volume that stores your server's cstrike folder and won't be modified or deleted when recreating the image; located at /var/lib/docker/volumes/ on the host machine

CS1.6 Dedicated Variable Values

VariableExample ValueDescription
ROOT_PASSWORDmypassPassword for SSH connection to configure and restart services
GAME_DIRcstrikeGame type: cstrike or valve
SERVER_NAMEMy CS16 ServerName of your server displayed on the dos.zone MP portal
MAPde_dust2Default map loaded upon image startup
MAXPLAYERS24Maximum number of players upon startup
IP188.72.103.3External IP address of the VPS server
DOMAIN_NAMEmydomain.comDomain name of the VPS server
FASTDL_PORT4433Port used in the sv_downloadurl variable inside server.cfg for fast file delivery
FASTDL_DIRECTORYcstrikePath set in the sv_downloadurl variable inside server.cfg for fast file delivery
GAME_SIGNAL_TCP_PORT27020Main TCP signaling port for initial game client connection
GAME_DATA_UDP_PORT27030UDP port for transmitting game data between server and client
ADMIN_PANEL_USERadminAdmin panel login via https://<DOMAIN_NAME>:<GAME_SIGNAL_TCP_PORT>/admin
ADMIN_PANEL_PASSWORDmypassAdmin panel password (for security reasons, should not match the SSH password)
ADMIN_LOG_LEVELinfoConsole log verbosity level; available options: TRACE, DEBUG, INFO, WARN, ERROR

Port Mapping Description

PortsDescription
921:22SSH port (external 921 -> internal 22); you can specify your own external port
27020:27020/tcpTCP signaling port for Web Xash3D CS 1.6; can be customized, preferably matching GAME_SIGNAL_TCP_PORT
27030:27030/udpUDP gaming port for Web Xash3D CS 1.6; can be customized, preferably matching GAME_DATA_UDP_PORT

⁠docker-compose.yml Example
version: '3.8'

services:
  cs16-server:
    image: anfit5/cs16-dedicated:release_1
    container_name: cs16-dedicated
    restart: unless-stopped
    environment:
      ROOT_PASSWORD: "<your_password>"
      SERVER_NAME: "dos.zone CS1.6 Server"
      MAP: "de_dust2"
      MAXPLAYERS: "24"
      GAME_DIR: "cstrike"
      IP: "38.45.18.103"
      DOMAIN_NAME: "anfit.pp.ua"
      FASTDL_PORT: "4433"
      FASTDL_DIRECTORY: "cstrike"
      GAME_SIGNAL_TCP_PORT: "27020"
      GAME_DATA_UDP_PORT: "27030"
      ADMIN_PANEL_USER: "admin"
      ADMIN_PANEL_PASSWORD: "<your_password>"
      ADMIN_LOG_LEVEL: "info"
    volumes:
      # Directory storing domain SSL certificates
      - /srv/FastDL/SSL:/cs16dedicated/SSL_certificates
      # Named volume for persistent CS 1.6 server data
      - dedicated_cstrike:/cs16dedicated/cstrike

    ports:
      - "921:22"           # SSH port
      - "27020:27020/tcp"  # WebXash3D Signal TCP port
      - "27030:27030/udp"  # Game Data UDP port

volumes:
  dedicated_cstrike:

⁠Obtaining Free SSL Certificates

A dedicated FastDL Server⁠ handles automatic SSL certificate generation.


⁠Creating the Docker Container
  1. Create a separate directory on the host machine where the Docker container will be deployed (e.g., CS16Dedicated).
  2. Save the docker-compose.yml file in UTF-8 encoding. Make sure to specify the correct path to the host directory containing pre-generated SSL certificates from the FastDL server.
  3. Run docker-compose up -d.

⁠Server Management
  1. To manage the game server, open https://<DOMAIN_NAME>:<GAME_SIGNAL_TCP_PORT>/admin.
  2. For a full server restart, you can simply restart the Docker container.
  3. To restart the game process via SSH, run supervisorctl restart CS16_dedicated. Use supervisorctl stop CS16_dedicated to stop and supervisorctl start CS16_dedicated to start.
  4. If using custom maps, place their preview images (320x320x24b) into /cs16dedicated/public/levelshots so map images display correctly on the https://dos.zone/mp/?lobby=cs16⁠ portal.
  5. For proper FastDL file delivery, create a symlink to your host volume directory:
cd /srv/FastDL/public
ln -s /var/lib/docker/volumes/dedicated_cstrike/_data ./cstrike

Here cstrike corresponds to the value configured in FASTDL_DIRECTORY inside docker-compose.yml.


⁠Known Issues
  • For kicking or banning players via console, use amx_kick and amx_ban.
  • If a player's ISP blocks access to your domain, advise them to connect via VPN for now.
⁠Planned Features
  • TURN/STUN integration enabling player connection even under restrictive ISP blocks (similar to dos.zone/mp P2P mode).
  • Admin Web Panel functionality expansion.
  • Fixes for rare server crashes.

⁠Contact & Support

Telegram support channel: https://t.me/doszonemp/14247⁠


⁠🇷🇺 Русский

⁠Counter-Strike 1.6 Dedicated Server для проекта https://dos.zone/mp/?lobby=cs16⁠

Docker-образ, который содержит весь необходимый набор программ для публикации выделенного сервера xash3d Counter-Strike 1.6 на проекте https://dos.zone/mp/?lobby=cs16⁠

Образ базируется на Linux Debian и глубоко модифицированном Counter-Strike 1.6 Web Server от yohimik⁠.


⁠Системные требования
  • Для стабильной работы 2-3 серверов на одном VPS-сервере минимально необходимо: 2 CPU, 2(4) GB ОЗУ, 10 GB HDD(SSD).
  • Игровой сервер работает по HTTPS-протоколу со специальным игровым клиентом в браузере проекта dos.zone.
  • Сервер не генерирует автоматически SSL-файлы, а берёт их из директории хост-машины. Подразумевается, что вместе с этим сервером будет запущен еще один FastDL сервер⁠, который обеспечивает генерацию SSL-файлов и быструю раздачу ресурсов игры CS16/HLDM клиенту.

⁠Описание docker-compose.yml, который создаёт Docker-контейнер

Базовые значения

ПеременнаяЗначениеОписание
imageanfit5/cs16-dedicated:release_1Имя образа с GitHub
container_namecs16-dedicatedПроизвольное личное наименование контейнера
/cs16dedicated/SSL_certificates/srv/FastDL/SSLОбязательная папка, содержащая SSL-сертификаты Вашего домена на хост-машине: fullchain.pem, privkey.pem
/cs16dedicated/cstrikededicated_cstrikeИменованный том, который будет хранить вашу папку сервера cstrike и не будет изменяться и удаляться при пересоздании образа; находится по пути /var/lib/docker/volumes/ на хост-машине

Значения переменных СS1.6 Dedicated

ПеременнаяПример значенияОписание
ROOT_PASSWORDmypassПароль для подключения к образу по SSH для конфигурации и перезапуска сервисов
GAME_DIRcstrikeТип игры: cstrike или valve
SERVER_NAMEMy CS16 ServerИмя вашего сервера, которое будет отображаться на MP-портале dos.zone
MAPde_dust2Карта по умолчанию при запуске образа
MAXPLAYERS24Максимальное количество игроков при запуске
IP188.72.103.3Внешний IP-адрес VPS-сервера
DOMAIN_NAMEmydomain.comДоменное имя VPS-сервера
FASTDL_PORT4433Этот порт будет использоваться в переменной sv_downloadurl в файле server.cfg для быстрой отдачи файлов
FASTDL_DIRECTORYcstrikeЭтот путь будет вписан в переменную sv_downloadurl в файле server.cfg для быстрой отдачи файлов
GAME_SIGNAL_TCP_PORT27020Основной TCP-порт для начального подключения игрового клиента
GAME_DATA_UDP_PORT27030UDP-порт для передачи игровых данных между сервером и клиентом
ADMIN_PANEL_USERadminЛогин в админку сервера по пути https://<DOMAIN_NAME>:<GAME_SIGNAL_TCP_PORT>/admin
ADMIN_PANEL_PASSWORDmypassПароль в админку сервера (не должен совпадать с SSH-паролем в целях безопасности)
ADMIN_LOG_LEVELinfoУровень детализации логов в консоль сервера; доступны TRACE, DEBUG, INFO, WARN, ERROR

Описание портов

ПортыОписание
921:22SSH-порт (внешний 921 -> внутренний 22), внешний можете указать свой
27020:27020/tcpСигнальный TCP-порт для подключения Web xash3d CS 1.6; можно указать свой, желательно чтобы совпадал с переменной GAME_SIGNAL_TCP_PORT
27030:27030/udpИгровой UDP-порт для подключения Web xash3d CS 1.6; можно указать свой, желательно чтобы совпадал с переменной GAME_DATA_UDP_PORT

⁠Пример файла docker-compose.yml
version: '3.8'

services:
  cs16-server:
    image: anfit5/cs16-dedicated:release_1
    container_name: cs16-dedicated
    restart: unless-stopped
    environment:
      ROOT_PASSWORD: "<your_password>"
      SERVER_NAME: "dos.zone CS1.6 Server"
      MAP: "de_dust"
      MAXPLAYERS: "24"
      GAME_DIR: "cstrike"
      IP: "38.45.18.103"
      DOMAIN_NAME: "anfit.pp.ua"
      FASTDL_PORT: "4433"
      FASTDL_DIRECTORY: "cstrike"
      GAME_SIGNAL_TCP_PORT: "27020"
      GAME_DATA_UDP_PORT: "27030"
      ADMIN_PANEL_USER: "admin"
      ADMIN_PANEL_PASSWORD: "<your_password>"
      ADMIN_LOG_LEVEL: "info"
    volumes:
      # Папка, хранящая SSL-сертификаты вашего домена
      - /srv/FastDL/SSL:/cs16dedicated/SSL_certificates
      # Именованный том для сохранения данных CS 1.6 сервера
      - dedicated_cstrike:/cs16dedicated/cstrike

    ports:
      - "921:22"           # SSH-порт (внешний 921 -> внутренний 22)
      - "27020:27020/tcp"  # Сигнальный TCP-порт
      - "27030:27030/udp"  # Игровой UDP-порт      

volumes:
  dedicated_cstrike:

⁠Получение бесплатных SSL-сертификатов

За генерацию SSL-сертификатов отвечает специальный FastDL сервер⁠.


⁠Создание Docker-контейнера
  1. Создаём отдельную папку на хост-машине, где будет разворачиваться Docker-контейнер, и называем её, например, CS16Dedicated.
  2. Сохраняем файл docker-compose.yml в кодировке UTF-8. Обязательно нужно правильно указать путь к директории на хост-машине, где лежат уже сгенерированные SSL-сертификаты FastDL-сервером.
  3. Выполняем команду docker-compose up -d.

⁠Управление сервером
  1. Для управления игровым сервером переходим по пути https://<DOMAIN_NAME>:<GAME_SIGNAL_TCP_PORT>/admin.
  2. Для полного перезапуска сервера можно просто перезапустить Docker-образ.
  3. Для перезапуска сервера из SSH-консоли выполняем команду supervisorctl restart CS16_dedicated. Для остановки: supervisorctl stop CS16_dedicated, для старта: supervisorctl start CS16_dedicated.
  4. Если используете кастомные карты, то их превью нужно положить в папку /cs16dedicated/public/levelshots размером 320х320х24b — тогда на портале https://dos.zone/mp/?lobby=cs16⁠ изображения ваших карт будут отображаться корректно.
  5. Для правильной отдачи файлов через FastDL-сервер необходимо правильно создать симлинк вашего volume с хост-машины, пример:
cd /srv/FastDL/public
ln -s /var/lib/docker/volumes/dedicated_cstrike/_data ./cstrike

Здесь cstrike — это значение, которое Вы вписали ранее в docker-compose.yml в переменную FASTDL_DIRECTORY.


⁠Известные проблемы:
  • Для кика или бана из консоли используйте команды amx_kick, amx_ban.
  • Если у игрока заблокирован доступ к вашему домену политиками провайдера, предлагайте пока что подключаться через VPN.
⁠Что планируется в следующих версиях:
  • Добавление TURN/STUN-логики, чтобы игроки могли подключаться к вашему серверу, даже если доступ блокирует провайдер (как это сейчас реализовано для P2P-режима на dos.zone/mp).
  • Расширение функционала админской WEB-части.
  • Исправление редких падений.

⁠Связь

Телеграм-канал поддержки проекта: https://t.me/doszonemp/14247⁠

Tag summary

Content type

Image

Digest

sha256:249f08c4b…

Size

668.1 MB

Last updated

17 days ago

docker pull anfit5/cs16-dedicated:release_1