Skip to content

CS HL Dedicated Server

Anfit5 edited this page Sep 15, 2026 · 1 revision

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

Variable Value Description
image anfit5/cs16-dedicated:release_1 Image name on GitHub / Docker Hub
container_name cs16-dedicated Arbitrary custom container name
/cs16dedicated/SSL_certificates /srv/FastDL/SSL Required directory containing SSL certificates for your domain on the host machine: fullchain.pem, privkey.pem
/cs16dedicated/cstrike dedicated_cstrike Named 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

Variable Example Value Description
ROOT_PASSWORD mypass Password for SSH connection to configure and restart services
GAME_DIR cstrike Game type: cstrike or valve
SERVER_NAME My CS16 Server Name of your server displayed on the dos.zone MP portal
MAP de_dust2 Default map loaded upon image startup
MAXPLAYERS 24 Maximum number of players upon startup
IP 188.72.103.3 External IP address of the VPS server
DOMAIN_NAME mydomain.com Domain name of the VPS server
FASTDL_PORT 4433 Port used in the sv_downloadurl variable inside server.cfg for fast file delivery
FASTDL_DIRECTORY cstrike Path set in the sv_downloadurl variable inside server.cfg for fast file delivery
GAME_SIGNAL_TCP_PORT 27020 Main TCP signaling port for initial game client connection
GAME_DATA_UDP_PORT 27030 UDP port for transmitting game data between server and client
ADMIN_PANEL_USER admin Admin panel login via https://<DOMAIN_NAME>:<GAME_SIGNAL_TCP_PORT>/admin
ADMIN_PANEL_PASSWORD mypass Admin panel password (for security reasons, should not match the SSH password)
ADMIN_LOG_LEVEL info Console log verbosity level; available options: TRACE, DEBUG, INFO, WARN, ERROR

Port Mapping Description

Ports Description
921:22 SSH port (external 921 -> internal 22); you can specify your own external port
27020:27020/tcp TCP signaling port for Web Xash3D CS 1.6; can be customized, preferably matching GAME_SIGNAL_TCP_PORT
27030:27030/udp UDP 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-контейнер

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

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

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

Переменная Пример значения Описание
ROOT_PASSWORD mypass Пароль для подключения к образу по SSH для конфигурации и перезапуска сервисов
GAME_DIR cstrike Тип игры: cstrike или valve
SERVER_NAME My CS16 Server Имя вашего сервера, которое будет отображаться на MP-портале dos.zone
MAP de_dust2 Карта по умолчанию при запуске образа
MAXPLAYERS 24 Максимальное количество игроков при запуске
IP 188.72.103.3 Внешний IP-адрес VPS-сервера
DOMAIN_NAME mydomain.com Доменное имя VPS-сервера
FASTDL_PORT 4433 Этот порт будет использоваться в переменной sv_downloadurl в файле server.cfg для быстрой отдачи файлов
FASTDL_DIRECTORY cstrike Этот путь будет вписан в переменную sv_downloadurl в файле server.cfg для быстрой отдачи файлов
GAME_SIGNAL_TCP_PORT 27020 Основной TCP-порт для начального подключения игрового клиента
GAME_DATA_UDP_PORT 27030 UDP-порт для передачи игровых данных между сервером и клиентом
ADMIN_PANEL_USER admin Логин в админку сервера по пути https://<DOMAIN_NAME>:<GAME_SIGNAL_TCP_PORT>/admin
ADMIN_PANEL_PASSWORD mypass Пароль в админку сервера (не должен совпадать с SSH-паролем в целях безопасности)
ADMIN_LOG_LEVEL info Уровень детализации логов в консоль сервера; доступны TRACE, DEBUG, INFO, WARN, ERROR

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

Порты Описание
921:22 SSH-порт (внешний 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

Clone this wiki locally