Содержание

Установка и настройка системы под Linux

Инструкция для размещения ADVANTA на сервере с ОС Linux и СУБД PostgreSQL

Перед началом настройки системы ознакомьтесь с актуальными требованиями к программному обеспечению.

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

Данная инструкция предполагает установку на OC Astra Linux.

Подготовка сервера базы данных

Если у вас для системы 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.

В данный момент дамп БД предоставляется только для MS SQL.

Подготовка сервера приложения

Необходимые пакеты ОС

Для работы сервера приложений 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 dotnet-sdk-7.0 dotnet-runtime-7.0 aspnetcore-runtime-7.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
apt install apt-transport-https
apt install nginx

Настройка системных файлов

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>

Значения:

Теги:

  <appSettings>
    <add key="WebPath" value="http://192.168.1.62:5000" />
    <add key="TimeZone" value="+5" />
    <add key="autologin" value="false" />
    <add key="FilesRootPath" value="C:\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 – это ссылка, которая отображается в уведомлениях из системы, рассылаемых на почтовые ящики.

Внимание!

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

Пример: внешний адрес сервера 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": "http://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"
  }
}

Выбор языка интерфейса системы

На данный момент доступно 4 языка на выбор:
  • русский (по-умолчанию);
  • английский;
  • чешский;
  • украинский.

Для выбора языка, отличного от русского, нужно:

  1. Открыть на редактирование файл globalization.config.
  2. Найти строку:
    <globalization culture="ru-RU" uiCulture="ru-Ru" fileEncoding="windows-1251" requestEncoding="utf-8" responseEncoding="utf-8" />
  3. Изменить в ней значение параметра uiCulture на:
    • uk-UA , если нужен украинский язык интерфейса.
    • cs-CZ , если нужен чешский язык интерфейса.
    • en , если нужен английский язык интерфейса.
Для возврата к русскому языку нужно установить значение ru-Ru.

Получение лицензии

Необходимо получить у менеджера ADVANTA файл sl.lic и скопировать его в <версия приложения>/Advanta/.

(в разработке)

Сервис для обеспечения работы таймера

(в разработке)