Содержание

Установка и настройка системы под 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. Дамп БД для PostgreSQL предоставляется по запросу.

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

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

Для работы сервера приложений 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>

Значения:

Теги:

  <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 – это ссылка, которая отображается в уведомлениях из системы, рассылаемых на почтовые ящики.

Внимание!

Для системы 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": "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 находится на отдельной странице.

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

На данный момент доступно 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/.

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

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

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