Автоматизированная установка системы
Это рекомендуемый способ установки «ФинГрад — Корпоративное казначейство». Веб-приложение и транспортный сервер разворачиваются на одном хосте, а все настройки задаются в одном файле .env, после чего весь стек поднимается одной командой.
Для нестандартных сценариев – например, когда веб-приложение и транспортный сервер нужно разнести на разные хосты или требуется тонкий контроль над каждым контейнером – используйте ручную установку.
Предварительные требования
- хост с установленным Docker Engine и плагином Docker Compose v2 (команда
docker compose). - сетевой доступ к реестру образов https://registry.fingrad.com и серверу аутентификации https://registry-auth.fingrad.com – либо заранее загруженные образы (см. Передача дистрибутива в сеть без доступа в Интернет).
- существующий сервер СУБД и учётная запись к нему. Для развёртывания PostgreSQL «с нуля» см. Установка и настройка PostgreSQL.
Системные требования описаны в статье Системные требования.
Настройка ОС 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_PORT | 80 | Порт веб-приложения на хосте. |
TS_HTTP_PORT | 81 | Порт транспортного сервера на хосте (не должен совпадать с WEB_HTTP_PORT). |
WEB_DATA_DIR | ./data/web | Каталог данных веб-приложения на хосте (внутри – crypto/keys, crypto/data, certs). |
TS_DATA_DIR | ./data/ts | Каталог данных транспортного сервера. |
REGISTRY | registry.fingrad.com | Реестр, откуда тянутся образы. |
ASPNETCORE_ENVIRONMENT | Production | Окружение 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.
Обновление версии
Процедура обновления приложения и базы данных описана в статье Обновление системы.