Skip to content

Развертывание «КС Бюджет»v. 26.2 через терминал ОС Linux ​

Для соединения с Linux-сервером используйте:

  • терминал в случае наличия графического интерфейса Linux-системы;
  • клиент PuTTY для удаленного соединения с Linux-машиной. Для соединения укажите поля как показано ниже на рисунке и нажмите «Соединиться».

Перечень операционных систем, на которых было проведено тестирование развертывания «WEB-Сервер-КС»:

  • ОС, вошедшие в РРПО: ALT SP Server 10, ALT SP Server 10.1, ALT SP Server 10.2, ALT Server 11.1, RED OS 7.3.1, RED OS 7.3.2, RED OS 8, ALT Workstation K 10.0, Astra Linux Special Edition 1.7, Astra Linux Special Edition 1.8, ROSA Enterprise Linux Server 7.3, AlterOS 7.5;

  • Остальные ОС: Debian GNU/Linux 11, Debian GNU/Linux 12.

1. Получите root-права ​

Наберите команду и введите пароль от пользователя root.

bash
sudo su

2. Проверьте статус «Selinux» ​

Если он в режиме «enforcing» или «disabled», то переведите его в режим «permissive».

Внимание, команды перезагрузят ОС при выполнении условий!

bash
if [ -f /etc/selinux/config ]; then if [ "$(echo $(getenforce))" = "Enforcing" ]; then sudo sed -i "s/SELINUX=enforcing/SELINUX=permissive/" /etc/selinux/config && reboot;fi;fi;
if [ -f /etc/selinux/config ]; then if [ "$(echo $(getenforce))" = "Disabled" ]; then sudo sed -i "s/SELINUX=disabled/SELINUX=permissive/" /etc/selinux/config && reboot;fi;fi;

3. Получите root-права повторно ​

Получите root-права повторно, если предыдущая команда перезагрузила ОС

bash
sudo su

4. Определите имя пакетного менеджера ​

Имя пакетного менеджера (apt-get, apt или yum) определяется автоматически и записывается в переменную $kstmp.

bash
if [ "$(which apt-get 2> /dev/null)" != "" ]; then export kstmp="apt-get";fi;
if [ "$(which yum 2> /dev/null)" != "" ]; then export kstmp="yum";fi;
if [ "$(which apt 2> /dev/null)" != "" ]; then export kstmp="apt";fi;

4.1. Установите дополнительные утилиты «wget», «nano» при их отсутствии ​

Пункт 4 должен быть выполнен.

bash
if [ -z $(which wget 2> /dev/null) ]; then $kstmp install -y wget;fi;
if [ -z $(which nano 2> /dev/null) ]; then $kstmp install -y nano;fi;

Проверьте наличие «iptables»

В Debian GNU/Linux 11, 12 (bullseye) проверьте наличие iptables командой: iptables --version.

Если iptables не установлен, то для установки используйте команду apt install iptables.

5. Настройте диапазон TCP портов ​

Для исключения ошибки:

Unable to start Kestrel. Failed to bind to address http://0.0.0.0:54430: address already in use

5.1. Установите диапазон портов: ​

bash
sysctl -w net.ipv4.ip_local_port_range="1024 65535"

5.2. Зарезервируйте порты кестрел 5444-5493: ​

bash
sysctl -w net.ipv4.ip_local_reserved_ports="5444-5493"

5.3. Создайте файл /etc/sysctl.d/777-keysystems.conf: ​

bash
nano /etc/sysctl.d/777-keysystems.conf

С содержимым:

bash
net.ipv4.ip_local_port_range = 1024 65535
net.ipv4.ip_local_reserved_ports = 5444-5493

5.4. Проверьте диапазон TCP портов командой: ​

bash
sysctl net.ipv4.ip_local_port_range
sysctl net.ipv4.ip_local_reserved_ports

Ожидаемый вывод:

net.ipv4.ip_local_port_range = 1024     65535
net.ipv4.ip_local_reserved_ports = 5444-5493

6. Настройте часовой пояс ​

Если не выполнить данный пункт, в дальнейшем придется выполнить пересоздание контейнера.

Узнайте текущий часовой пояс ​

bash
timedatectl status | grep "zone"

Получите список часовых поясов ​

bash
timedatectl list-timezones

Установите часовой пояс MSK +3 (пример) ​

bash
timedatectl set-timezone Europe/Moscow

Установите время ​

bash
timedatectl set-time 'YYYY-MM-DD HH:MM:SS'

7. Установите «Podman» или «Docker» ​

Рекомендуется установка Docker.

7.1. Установите «Docker» ​

Рекомендуется во всех ОС.

bash
$kstmp install -y docker
$kstmp install -y runc
systemctl start docker
systemctl status docker

7.2. Установите «Podman» при наличии в репозиториях ​

Пункт 4 должен быть выполнен.

bash
$kstmp install -y podman
$kstmp install -y runc
systemctl start podman
systemctl status podman

8. Скачайте и распакуйте образ «dks-wsks-8.0» ​

С 28 мая 2026 года WEB-Cервер-КС, основанный на операционной системе Debian не поставлятся.

Скачайте:

bash
wget -O /opt/dks-wsks-8.0_lp11.tar.gz https://keysystems.ru/files/web/Linux/wsks/8.0/dks-wsks-8.0_lp11.tar.gz
bash
wget -O /opt/dks-wsks-8.0_a18.tar.gz https://keysystems.ru/files/web/Linux/wsks/8.0/dks-wsks-8.0_a18.tar.gz

Распакуйте:

bash
tar -C /opt/ -xvf /opt/dks-wsks-8.0_lp11.tar.gz
bash
tar -C /opt/ -xvf /opt/dks-wsks-8.0_a18.tar.gz

9. Установите контейнер с http-сервером или без http-сервера. ​

Узнайте сначала установленные локали: ​

bash
locale -a | grep ru
Пример вывода ru_RU.utf8:
ru_RU
ru_RU.koi8r
ru_RU.utf8
ru_UA
ru_UA.utf8

9.1. Установка контейнера с http-сервером ​

Установите одно из следующих сочетаний:

  • Docker+Nginx Рекомендуется к установке
  • Docker+Angie В РРПО
  • Docker+Apache
  • Podman+Apache
  • Podman+Nginx
  • Podman+Angie

Порты web-сервиса 443 укажите свои, а также укажите локаль ru_RU.utf8.

В случае, если порт web-сервиса использовался отличный от 443, то наименование установленного контейнера будет иметь вид wsks-8.0_54хх, поэтому нужно быть внимательнее, так как дальнейшая инструкция установки описана для контейнера с портом 443 (wsks-8.0_443).

Не устанавливайте вариант с Apache в ОС ROSA Enterprise Linux Server 7.3!

Docker ​

bash
/opt/dks-wsks-8.0/install.sh -ws "nginx" -p "443" -cs "docker" -pp "9093" -l ru_RU.utf8
bash
/opt/dks-wsks-8.0/install.sh -ws "angie" -p "443" -cs "docker" -pp "9093" -l ru_RU.utf8

Podman ​

bash
/opt/dks-wsks-8.0/install.sh -ws "nginx" -p "443" -cs "podman" -pp "9093" -l ru_RU.utf8
bash
/opt/dks-wsks-8.0/install.sh -ws "angie" -p "443" -cs "podman" -pp "9093" -l ru_RU.utf8
Результат успешной установки
              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
              ~     Установка контейнера WEB-Сервер-КС 8.0
              ~        http сервер: nginx
              ~           порт\id : 443
              ~   контейнеризация : docker
              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

   [   OK   ] Проверка доступности порта 443  ПО "WEB-Сервер-КС".
   [   OK   ] Проверка работы сервиса ПО "Docker" (docker.service).
   [   OK   ] Загрузка эталонного локального образа wsks-8.0 из архива ksdeb09_wsks-8.0_image.tar.
   [   OK   ] Построение конечного образа wsks-8.0_443 на базе эталонного.
              Структура каталогов /opt/wsks-8.0_443 для запуска контейнера wsks-8.0_443 не существует, создаем...
   [   OK   ] Создание структуры каталогов для запуска контейнера wsks-8.0_443.
   [   OK   ] Монтирование порта (-p 443:443) в контейнер.
   [   OK   ] Создание контейнера wsks-8.0_443 и запуск в docker (порт 443).
   [   OK   ] Создание пользователя ks-www-data.
   [   OK   ] Остановка контейнера wsks-8.0_443.
   [   OK   ] Настройка ротации логов ПО "WEB-Сервер-КС".
   [   OK   ] Запуск сервиса wsks-8.0_443.service.
   [  Инфо  ] Остановка сервиса wsks-8.0_443.service.
              Отсутствуют установленные приложения.
              Для развертывания веб приложений используйте скрипт ws_addapp.sh.
              См. инструкцию по развертыванию /opt/wsks-8.0_443/ctl/readme.txt

9.2. Установка контейнера без http-сервера ​

В данном примере:

  • 443 - это виртуальный порт (этот порт не публикуется),
  • порт 9093 - это порт prometheus (сбор метрик сервисов),
  • локаль - ru_RU.utf8.
bash
/opt/dks-wsks-8.0/install.sh -ws "no_http" -p "443" -cs "docker" -pp 9093 -l ru_RU.utf8
bash
/opt/dks-wsks-8.0/install.sh -ws "no_http" -p "443" -cs "podman" -pp 9091 -l ru_RU.utf8

10. Установите веб-приложение КС Бюджет ​

Задача

Развернуть .NET Core приложение КС Бюджет:

  • с типом СУБД - PostgreSQL,
  • именем сервера - 10.0.0.1:5434,
  • базой данных - database_name,
  • обращение к сайту обеспечить через виртуальный каталог ksbubget.

Скачайте:

bash
wget -O /opt/wsks-8.0_443/ctl/tar_files/webnext.tar.gz "https://sharecloud.keysystems.ru/api/v1/file/download/dsr/webnext/26.2/webnext-262.tar.gz"

Установите:

bash
bash /opt/wsks-8.0_443/ctl/ws_addapp.sh -t "wBKS" -a "webnext.tar.gz" -vc "ksbubget" -st "3" -sn "10.0.0.1:5434" -dn "database_name"
ПараметрЗначениеОписание
-s"Ссылка на архив"Интернет-ресурс для закачки файла архива. Закачка осуществляется через утилиту wget.
Постоянный URL-адрес актуальной версии архива КС Бюджет.
-t"wBKS"Тип устанавливаемого приложения КС Бюджет.
-a"webnext.tar.gz"Имя архива *.tar.gz для развертывания. Переименованно в webnext.tar.gz в процессе загрузки архива на хост.
-vc"ksbubget"Виртуальный каталог для приложения.
Если не указан, то берется тип + кестрел порт. Используется для всех типов приложений.
-st"3"Тип источника СУБД:
0-MSSQL,
3-PostgreSQL.
-sn"10.0.0.1:5434"Имя или ip источника СУБД, если используется порт, то его необходимо указать через двоеточие.
-dn"database_name"Имя базы данных источника СУБД.
Результат успешной установки
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           ~    Установка прикладного приложения WEB-Сервер-КС
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[   OK   ] Проверка доступности порта 54430  ПО "КС Бюджет".
[   OK   ] Проверка виртуального каталога "ksbubget".
[   OK   ] Распаковка архива обновления "webnext.tar.gz" в рабочий каталог.
[   OK   ] Создание каталога приложения /opt/wsks-8.0_443/www/html/wsks_54430.
[   OK   ] Создание файла запуска приложения /opt/wsks-8.0_443/ctl/app/54430_app.sh.
           Приложение будет доступно по адресу - https://10.0.0.0:443/ksbubget.
[   OK   ] Создание файла конфигурации для приложения /opt/wsks-8.0_443/conf.ks/vhost.ks/54430_ks.conf.
[   OK   ] Создание файла настроек для приложения /opt/wsks-8.0_443/www/html/wsks_54430/appsettings.Production.json.
[   OK   ] Запуск сервиса wsks-8.0_443.service.

При развертывании экземпляра контейнера с http сервером используется самоподписанный SSL-сертификат wsks-19.08_demo.crt вида:

E = info@keysystems.ru
CN = DSR
OU = DSR
O = Keysystems LLC
L = Cheboksary
S = Chuvashia
C = RU

Как заменить сертификат читайте в статье: Замена сертификата в WEB-Сервер-КС.


Дополнительно ​

1. Чтение информации о WEB-Сервер-КС версии 8.0, использующего порт 443 ​

bash
bash /opt/wsks-8.0_443/ctl/ws_info.sh

Скрипт отображает следующую информацию:

  1. Состояние и тип web-сервера (только для контейнера с http-сервером): Nginx или Angie.
  2. Перечень установленных приложений, и их состояние.
  3. Приложение контейнера Podman или Docker.

ws_info_wsks

2. Создайте стартовую страницу при необходимости ​

Только для контейнера с http-сервером.

Вместо 10.0.0.0 укажите имя или IP-адрес web-сервера.

Каждый раз после добавления, либо удаления приложений стартовую страницу надо пересоздавать.

2.1. Создайте стартовую страницу.

bash
bash /opt/wsks-8.0_443/ctl/ws_crtind.sh -n "10.0.0.0" -r -s
ПараметрыПо умолчаниюОписание
-n
--dns_name
%dns_name_not_define%Доменное имя или ip хоста.
-s
--sort
Без сортировки.Сортировка по типу приложения.
-r
--replace
01 - перезаписать файл ${dks_inst_path}/www/html/index.html
0 - не перезаписывать

2.2. Отредактируйте конфигурационный файл (пример для Nginx).

    location / {
        root   /var/www/html;
        index  index.html index.htm;
    }
    location ~ ^/wsks.* {
        return 400;
    }

2.3. Перечитайте конфигурацию Nginx.

bash
docker exec -ti wsks-8.0_443 bash -c "/etc/init.d/nginx reload"

В итоге стартовая страница web-сервера по адресу https://10.0.0.0:443 (укажите свой IP-адрес или имя сервера, также порт) будет выглядеть следующим образом: crtind

3. Удаление контейнера вместе со всеми приложениями ​

Укажите свой порт web-сервиса.

Внимание: не используйте ключ -all

bash
cd /&& opt/dks-wsks-8.0/uninstall.sh -p "443"

4. Остановка, запуск и перезапуск отдельного .NET Core приложения ​

Остановка, запуск и перезапуск отдельного .NET Core приложения

Без остановки контейнера и других работающих приложений, для дополнительной настройки или просто для временного запрета работы, например, чтобы обновить БД. Управление запуском, остановкой или перезапуском осуществляется выполнением следующих команд:

bash
bash /opt/wsks-8.0_443/ctl/ws_ctlapp.sh -p "54430" -m "stop"
bash /opt/wsks-8.0_443/ctl/ws_ctlapp.sh -p "54430" -m "start"
bash /opt/wsks-8.0_443/ctl/ws_ctlapp.sh -p "54430" -m "restart"
ПараметрыПо умолчаниюОписание
-p
--kestrel_port
54430Кестрел-порт развернутого приложения.
-m
--mode
restartВыполняемое действие:
restart - остановить и запустить;
stop - остановить;
start - запустить.

5. Удаление отдельного .NET Core приложения ​

Выясните, какой kestrel порт использует приложение, которое необходимо удалить:

bash
/opt/wsks-8.0_443/ctl/ws_info.sh

ws_info

Kestrel-порт 54431. Выполните команду для удаления:

bash
cd /opt && bash /opt/wsks-8.0_443/ctl/ws_delapp.sh -p 54431

ws_delapp

6. Остановка, запуск и перезапуск контейнера/службы WEB-Сервер-КС ​

Имя службы WEB-Сервер-КС версии 8.0, использующего порт 443:

wsks-8.0_443.service

Остановка службы (останавливаются все приложения) и просмотр ее статуса: ​

bash
systemctl stop wsks-8.0_443.service
systemctl status wsks-8.0_443.service

Запуск службы (запускаются все приложения) и просмотр ее статуса: ​

bash
systemctl start wsks-8.0_443.service
systemctl status wsks-8.0_443.service

Перезапуск службы (перезапускаются все приложения) и просмотр ее статуса ​

bash
systemctl restart wsks-8.0_443.service
systemctl status wsks-8.0_443.service

© 2026 ООО «Кейсистемс». Все права защищены.