Перейти к основному содержимому

Автоматизированная установка системы

Это рекомендуемый способ установки «ФинГрад — Корпоративное казначейство». Веб-приложение и транспортный сервер разворачиваются на одном хосте, а все настройки задаются в одном файле .env, после чего весь стек поднимается одной командой.

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

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

Системные требования описаны в статье Системные требования.

Настройка ОС Astra Linux

Компоненты приложения при аварийных завершениях формируют дампы для дальнейшего анализа. Astra Linux по умолчанию запрещает необходимую для этого трассировку процессов; при активном запрете запуск приложения невозможен. На каждом хосте, где запускаются контейнеры, один раз выполните:

sudo astra-ptrace-lock disable
sudo reboot

Подробнее – в разделе Настройка ОС Astra Linux ручной установки.

Получение файлов развёртывания

Скачайте docker-compose.yml и шаблон переменных среды окружения .env.example в рабочий каталог на хосте:

mkdir -p ~/fingrad && cd ~/fingrad
curl -fLO https://dl.fingrad.com/scripts/deploy/docker-compose.yml
curl -fLO https://dl.fingrad.com/scripts/deploy/.env.example

Ссылки на файлы:

  • docker-compose.yml – описание сервисов, монтирований и портов;
  • .env.example – полный список переменных с пояснениями и значениями по умолчанию.

1. Создание базы данных

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

PostgreSQL:

docker container run --rm -it \
--entrypoint dotnet \
registry.fingrad.com/web:6.0.0.41569 \
../DbManager.dll /action=create /dbms=postgresql /server="10.0.0.123" /port=5432 /user=login /password=pass /database=MyCompany

Microsoft SQL Server:

docker container run --rm -it \
--entrypoint dotnet \
registry.fingrad.com/web:6.0.0.41569 \
../DbManager.dll /action=create /dbms=mssql /server="10.0.0.123" /user=login /password=pass /database=MyCompany

Признак успешного создания – в конце вывода:

Создание базы данных...
Завершение работы...

Подробнее – в разделе База данных ручной установки.

2. Заполнение .env

cp .env.example .env

Откройте .env и заполните значения. Минимально обязательные:

ПеременнаяНазначение
VERSIONВерсия дистрибутива (она же тег образов web и transport-server), например 6.0.0.41569.
WEB_DB_CONNECTION_STRINGСтрока подключения к БД веб-приложения.
TS_DB_CONNECTION_STRINGСтрока подключения к БД транспортного сервера (может совпадать с БД веб-приложения).
TS_TOKENСекретный ключ транспортного сервера – произвольная случайная строка (например, openssl rand -hex 20). То же значение указывается в веб-интерфейсе.

Остальные переменные имеют разумные значения по умолчанию и обычно не требуют изменений:

ПеременнаяПо умолчаниюНазначение
WEB_HTTP_PORT80Порт веб-приложения на хосте.
TS_HTTP_PORT81Порт транспортного сервера на хосте (не должен совпадать с WEB_HTTP_PORT).
WEB_DATA_DIR./data/webКаталог данных веб-приложения на хосте (внутри – crypto/keys, crypto/data, certs).
TS_DATA_DIR./data/tsКаталог данных транспортного сервера.
REGISTRYregistry.fingrad.comРеестр, откуда тянутся образы.
ASPNETCORE_ENVIRONMENTProductionОкружение ASP.NET Core.

Строка подключения к БД

Строка подключения задаётся целиком, в формате ODBC. Примеры форматов для PostgreSQL и Microsoft SQL Server приведены в разделе Строка подключения к БД ручной установки.

Спецсимволы в значениях

В файле .env символ $ нужно удваивать: Pwd=p$$word – иначе Docker Compose воспримет его как ссылку на переменную. Кавычки и пробелы внутри значения пишутся как есть, без обрамляющих кавычек.

3. Запуск

docker compose pull # загрузить образы указанной версии
docker compose up -d # поднять стек в фоне

Веб-приложение будет доступно по адресу http://<хост>:<WEB_HTTP_PORT> (по умолчанию http://localhost).

4. Первый вход

Учётная запись администратора в новой БД по умолчанию: root / root.

Далее см. Вход в систему.

Если используется транспортный сервер, после входа откройте Настройки шлюзов → Транспортный сервер и заполните:

  • Адресhttp://<хост>:<TS_HTTP_PORT> (по умолчанию порт 81);
  • Секретный ключ – значение TS_TOKEN из .env.

Обновление версии

Процедура обновления приложения и базы данных описана в статье Обновление системы.