Инструкция для размещения ADVANTA на сервере с ОС Linux и СУБД PostgreSQL
Перед началом настройки системы ознакомьтесь с актуальными требованиями к программному обеспечению.
Описание установки системы основывается на том, что уже выполнены требования к программному обеспечению сервера базы данных и сервера приложения, а также имеется в наличии инсталляционный диск системы. Если систему планируется разносить на два сервера, то рекомендуем сначала выполнить настройку сервера базы данных, а затем сервера приложения.
Если у вас для системы ADVANTA используется БД MS SQL, развернутая на отдельном сервере под управлением ОС Windows, то инструкцию по подготовке сервера базы данных можно найти здесь.
Если же у вас для системы ADVANTA база данных будет развертываться под ОС Linux, то используется БД PostgreSQL. Перед началом настройки БД PostgreSQL необходимо включить сетевые репозитории и выполнить установку пакетов:
deb cdrom:[OS Astra Linux 1.7.2 1.7_x86-64 DVD ]/ 1.7_x86-64 contrib main non-free deb https://download.astralinux.ru/astra/stable/1.7_x86-64/repository-main/ 1.7_x86-64 main contrib non-free deb https://download.astralinux.ru/astra/stable/1.7_x86-64/repository-update/ 1.7_x86-64 main contrib non-free deb https://download.astralinux.ru/astra/stable/1.7_x86-64/repository-base/ 1.7_x86-64 main contrib non-free deb https://download.astralinux.ru/astra/stable/1.7_x86-64/repository-extended/ 1.7_x86-64 main contrib non-free deb https://download.astralinux.ru/astra/stable/1.7_x86-64/repository-extended/ 1.7_x86-64 astra-ce
Подробную инструкцию по подготовке сервера базы данных можно найти на отдельной странице Настройка базы данных PostgreSQL.
После создания базы данных необходимо выполнить восстановление предоставленного в дистрибутиве дампа базы данных в новую созданную БД a2nta_db
.
Для работы сервера приложений ADVANTA необходимо установить в операционной системе следующие стандартные пакеты (из репозитория ОС):
curl gnupg2 ca-certificates lsb-release debian-archive-keyring wget apt-transport-https
Веб-сервер/Прокси (последняя стабильная версия из репозитория ОС или от вендора):
nginx
Среды .Net (варианты установки):
dotnet-sdk-6.0 dotnet-runtime-6.0 aspnetcore-runtime-6.0
Далее необходимо включить сетевые репозитории и выполнить установку пакетов (операции выполняются под учетной записью администратора сервера):
deb cdrom:[OS Astra Linux 1.7.0 1.7_x86-64 DVD ]/ 1.7_x86-64 contrib main non-free deb https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-main/ 1.7_x86-64 main contrib non-free deb https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-update/ 1.7_x86-64 main contrib non-free deb https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-base/ 1.7_x86-64 main contrib non-free deb https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-extended/ 1.7_x86-64 main contrib non-free astra-ce backports
apt update apt install curl apt install gnupg2 apt install debian-archive-keyring ca-certificates lsb-release apt install apt-transport-https wget apt install nginx
Опционально, можно установить базовые шрифты от MS (для использования в отчетах типа «Электронная таблица») и обновить кэш шрифтов сервера:
sudo apt install ttf-mscorefonts-installer fc-cache -f -v
Опционально. Для использования авторизации в системе ADVANTA через службу Active Directory необходимо установить библиотеку
sudo apt install libldap2-dev
1. Загрузить и распаковать файлы приложения ADVANTA на сервер.
2. Создать файл конфигурации приложения (образцы находятся по пути: <версия приложения>/SL/config/
). Пример созданного файла конфигурации client.config
:
<?xml version="1.0"?> <configuration> <configSections> <section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration" /> <!--<section name="ldapService" type="Config.LDAPConfigurationSection, smcorelib"/> <section name="adDomains" type="Config.ADDomainsConfiguration, smcorelib"/>--> </configSections>
Теги:
<connectionStrings> <add name="db" providerName="Npgsql" connectionString="User ID=postgres;Password=P@ssw0rd;Host=SERV-07;Port=5432;Database=Gazprom;MaxPoolSize=1024;Timeout=60;Max Auto Prepare=100;Auto Prepare Min Usages=3;" /> <add name="dbCubes" providerName="Npgsql" connectionString="User ID=postgres;Password=P@ssw0rd;Host=SERV-07;Port=5432;Database=Gazprom;MaxPoolSize=1024;Timeout=60;Max Auto Prepare=100;Auto Prepare Min Usages=3;" /> <add name="busDb" providerName="Npgsql" connectionString="User ID=postgres;Password=P@ssw0rd;Host=SERV-07;Port=5432;Database=Gazprom;MaxPoolSize=1024;Timeout=60;Max Auto Prepare=100;Auto Prepare Min Usages=3;" /> </connectionStrings>
Значения:
connectionString
– строка подключения к базе данных;User
– пользователь для базы данных;Password
– пароль пользователя.Теги:
<appSettings> <add key="WebPath" value="https://domain:5000" /> <add key="TimeZone" value="+5" /> <add key="autologin" value="false" /> <add key="FilesRootPath" value="/SL_Files" /> <add key="BusTransportType" value="PostgreSql" /> <add key="NegotiationByEmailTimeout" value="120" /> <!-- Настройки списка внешних URL при переадресации --> <!-- <add key="AllowedUrlRedirects" value="https://www.wikipedia.org;https://www.deepl.com/translator" /> --> <!-- Настройки Системы для архивации файлов --> <!-- <add key="DocumentsArchiveLifeTimeHours" value="168" /> <add key="MaxTotalFileSize" value="2097152000" /> <add key="MaxFileCount" value="500" /> <add key="MaxDocumentsArchivingActionCount" value="3" /> <add key="MaxFullPathLength" value="150" /> <add key="MinFolderNameLength" value="3" /> <add key="MinRootFolderNameLength" value="30" /> <add key="DocumentsArchivingService" value="Remote" /> --> <!-- Параметры при выборе локального сервиса архивации файлов --> <!-- <add key="DocumentsArchivingService" value="Local" /> <add key="Bus_DocumentsArchivingCommandsQueue:NumberOfWorkers" value="1"/> <add key="Bus_DocumentsArchivingCommandsQueue:MaxParallelism" value="3"/> <add key="ProfilerLogEnable" value="true"/> <add key="IsWriteToProfilerLogAllRequests" value="true"/> <add key="ProfilerAllLogsSizeLimitMegaBytes" value="10"/> <add key="CompressionLevel" value="Optimal|Fastest|NoCompression"/> <add key="TemporaryArchiveFlat" value="Memory|FileSystem"/> <add key="PathToTemporaryArchiveFlat" value="C:\Temp"/> --> <add key="EnableTestODataEndPoint" value="1" /> <add key="EnableSwagger" value="1" /> <add key="ApplicationId" value="eebe4dc586b3" /> </appSettings>
Параметр value
– это ссылка, которая отображается в уведомлениях из системы, рассылаемых на почтовые ящики.
Пример: внешний адрес сервера 192.168.1.62:5000
, сервер IIS должен корректно заходить по этому адресу. В файле конфигурации системы ADVANTA client.config
необходимо указать корректный путь в параметре WebPath
. Для приведенного выше примера:
<add key="WebPath" value="https://192.168.1.62:5000" />
Для этого нужно в настройках Bindings (привязки, в настройках IIS) сайта указать тот внешний адрес системы, но без указания протокола и названия приложения.
Теги:
<!--<ldapService ldapPath="LDAP://" baseDN=""> <authenticationTypes> <add authenticationType="Secure" /> <add authenticationType="Signing" /> <add authenticationType="Sealing" /> </authenticationTypes> </ldapService> <adDomains> <domains> <add name="DOMAIN_NAME" login="login" password="password" ldappath="LDAP://DC=domain_name,DC=local"/> </domains> </adDomains>--> <unity xmlns="http://schemas.microsoft.com/practices/2010/unity"> <container> <!-- Search index on disk <register type="System.IO.DirectoryInfo, mscorlib" mapTo="System.IO.DirectoryInfo, mscorlib" name="searchIndexPath"> <constructor> <param name="path" value="d:\LuceneIndex" /> </constructor> </register> <register type="Lucene.Net.Store.Directory, Lucene.Net" mapTo="Lucene.Net.Store.SimpleFSDirectory, Lucene.Net"> <constructor> <param name="path" dependencyName="searchIndexPath" /> </constructor> </register>--> <!--<register type="SL.Storage.IFileStorageProvider, smcorelib" mapTo="SL.Storage.LocalFileStorageProvider, smcorelib"> <constructor> <param name="documentsFolder" value="[DocumentsFolder]" type="string"></param> </constructor> </register>--> <register type="SmartSuite.Data.Persistence.StorageProviderFactory, SmartSuite.Data" mapTo="SmartSuite.PostgreSQL.PgStorageProviderFactory, SL.PostgreSQL" /> <register type="SL.App.ServerObjects.IServerObjectsProvider, SL.App" mapTo="SL.App.ServerObjects.PostgreSQL.ServerObjectsProvider, SL.PostgreSQL" /> <register type="P2M.Cubes.Data.IDirectoryDataManager, smcorelib" mapTo="SL.PostgreSQL.Data.DirectoryDataManager, SL.PostgreSQL" /> <register type="P2M.Cubes.Data.IPivotDataManager, smcorelib" mapTo="SL.PostgreSQL.Data.PivotDataManager, SL.PostgreSQL" /> <!-- Вариант, когда нужно хранить файлы в Базе данных (в виде двоичных полей)--> <register type="SL.Storage.IFileStorageProvider, smcorelib" mapTo="SL.Storage.SqlFileStorageProvider, smcorelib"> <constructor> <param name="connectionStringName" value="db" type="string"> </param> </constructor> </register> <!-- Вариант, когда не нужно файлы хранить в БД, а нужно складывать в каталог на жестком диске (при этом в БД будут храниться только ссылки на них) <register type="SL.Storage.IFileStorageProvider, smcorelib" mapTo="SL.Storage.LocalFileStorageProvider, smcorelib"> <constructor> <param name="documentsFolder" type="string" value="C:\LocalFileStorage" /> </constructor> </register> <register type="Advanta.Files.IFileStorageProvider, Advanta.Infrastructure" mapTo="SL.Storage.LocalFileStorageProvider, smcorelib"> <constructor> <param name="documentsFolder" type="string" value="C:\LocalFileStorage" /> </constructor> </register> --> </container> </unity> </configuration>
3. В файле <версия приложения>/Advanta/appsettings.json
необходимо указать URL, по которому будет открываться приложение. Пример листинга конфигурационного файла appsettings.json
:
{ "ConnectionStrings": { "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=aspnet-Advanta-53bc9b9d-9d6a-45d4-8429-2a2761773502;Trusted_Connection=True;MultipleActiveResultSets=true" }, "Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning" } }, "Kestrel": { "Endpoints": { "Http": { "Url": "https://192.168.1.62:5000" }, } }, "AllowedHosts": "*", "appSettings": { "AppName": "streamline", "FirstUserMail": "support@advanta-group.ru", "support": "bug@advanta-group.ru", "statistics": "statistics@advanta-group.ru", "ConfigurationSettingsFile": "_Resources\\Config\\ConfigFiles\\ConfigurationSettings.xml", "Security_PagesConfig": "_Resources\\Config\\ConfigFiles\\SecuritySettings.xml", "PortletsConfig_File": "_Resources\\Config\\PortletEngine\\EngineConfig.xml", "Projects_StatusFile": "_Resources\\Config\\P2M\\Projects\\ProjectStatuses.xml", "Projects_PriorityFile": "_Resources\\Config\\P2M\\Projects\\ProjectPriority.xml", "errorMode": "debug", "ValidationSettings:UnobtrusiveValidationMode": "None" } }
https
, вместо http
, т.к. протокол http
считается устаревшим.
Раздел Системы с диаграммой Ганта доступен только при работе Системы через https
.
Информация о переводе Системы с протокола http
на использование протокола https
находится на отдельной странице.
Для выбора языка, отличного от русского, нужно:
globalization.config
.<globalization culture="ru-RU" uiCulture="ru-Ru" fileEncoding="windows-1251" requestEncoding="utf-8" responseEncoding="utf-8" />
uiCulture
на:uk-UA
, если нужен украинский язык интерфейса.cs-CZ
, если нужен чешский язык интерфейса.en
, если нужен английский язык интерфейса.ru-Ru
.
Необходимо получить у менеджера ADVANTA файл sl.lic
и скопировать его в <версия приложения>/Advanta/
.
(в разработке)
(в разработке)