...
Установка необходимых пакетов ПО из репозиториев:
Code Block language bash sudo apt-get update && sudo apt-get upgrade sudo apt-get install unzip curl postgresql postgresql-client postgresql-contrib
Warning Без libgdiplus не будут работать почтовые уведомления Warning title Важно! Нужно учесть, что по умолчанию файлы баз данных размещаются на системном разделе. Для переноса хранилища на другой раздел следуйте инструкции.
Warning title Важно! Настройки логирования по умолчанию не являются оптимальными и могут очень быстро заполнить диск логами. Нужно выполнить настройку по инструкции.
- Отредактировать конфигурационные файлы postgresql:
Проверяем версию postgresql
Code Block language bash psql --version
Открываем конфигурационный файл postgresql.conf с учетом установленной версии
Code Block language bash nano /etc/postgresql/14/main/postgresql.conf
Изменить в секции # - Connection Settings - значение параметра listen_addresses с localhost на *
должно получиться:Code Block language bash listen_addresses = '*'
Открываем конфигурационный файл pg_hba.conf с учетом установленной версии
Code Block language bash nano /etc/postgresql/14/main/pg_hba.conf
Изменить в секции # IPv4 Local connections: значение параметра ADDRESS с 127.0.0.1/32 на 0.0.0.0/0
Code Block language bash # IPv4 local connections: host all all 0.0.0.0/0 scram-sha-256
Перезапустить службу:
Code Block language bash sudo systemctl restart postgresql
Проверить выполняется ли прослушивание на порту 5432 для всех активных адресов:
Code Block language bash netstat -ltnp tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 14569/postgres
Добавить пользователя postgres в группу владельца директории, из которой выполняются действия:
Проверка владельца текущей папки (обозначена ".")
Code Block language bash ls –la
Добавление пользователя postgres в группу владельца
Code Block language bash sudo usermod -aG dir_owner_group postgres
Изменить права группе владельца директории (дать права на изменение). В данном случае путь до директории - . (текущая директория):
Code Block language bash chmod -R 775 .
Войти в cli postgresql от имени пользователя postgres:
Code Block language bash sudo -u postgres psql
Создать пользователя с ролью суперпользователя:
Code Block language bash postgres-#CREATE USER vitrodbuser WITH PASSWORD '@pwd4vitro!' SUPERUSER;
Создать новую базу данных с именем vitrodb:
Code Block language bash postgres-#CREATE DATABASE vitrodb withWITH ownerOWNER = vitrodbuser encodingENCODING = 'UTF8' connection limit' LOCALE_PROVIDER = 'icu' ICU_LOCALE = 'ru-u-kn-true' TEMPLATE = template0 CONNECTION_LIMIT = -1;
Создать новую базу данных с именем workflow:
Code Block language bash postgres-#CREATE DATABASE workflow withWITH ownerOWNER = vitrodbuser encodingENCODING = 'UTF8' connection limitLOCALE_PROVIDER = 'icu' ICU_LOCALE = 'ru-u-kn-true' TEMPLATE = template0 CONNECTION_LIMIT = -1;
Отключиться от cli postgresql:
Code Block language bash postgres-# \q
Скачать и распаковать дистрибутив:
Code Block language bash curl "https://linkTo/Vitro.Server.MultiPlatform.Linux-xx.x.xx.xx.zip" --output 'Vitro.Server.MultiPlatform.Linux-xx.x.xx.xx.zip' sudo unzip Vitro.Server.MultiPlatform.Linux-xx.x.xx.xx.zip
- Инициализация базы данных
- Версия дистрибутива 24.1.38 или выше:
Скопировать в доступное для пользователей расположение (к примеру tmp) файлы инициализации базы данных:
Code Block language bash sudo cp ~/Vitro.Server.MultiPlatform.Linux-xx.x.xx.xx/DB/Install/db_func_create.sql /tmp sudo cp ~/Vitro.Server.MultiPlatform.Linux-xx.x.xx.xx/DB/Install/db_table_create.sql /tmp sudo cp ~/Vitro.Server.MultiPlatform.Linux-xx.x.xx.xx/DB/Install/db_data_init.sql /tmp
Запустить инициализацию базы из скриптов:
Code Block language bash sudo -u postgres psql -U postgres -d vitrodb -f /tmp/db_func_create.sql -f /tmp/db_table_create.sql -f /tmp/db_data_init.sql
- Версия дистрибутива ниже 24.1.38:
Скопировать в доступное для пользователей расположение (к примеру tmp) файл резервной копии базы данных:
Code Block language bash sudo cp ~/Vitro.Server.MultiPlatform.Linux-xx.x.xx.xx/DB/vitro.bak /tmp
Запустить восстановление БД из бэкапа:
Code Block language bash sudo -u postgres pg_restore -v -U vitrodbuser -h localhost -d vitrodb /tmp/vitro.bak
Запустить восстановление БД из бекапа (для файлов с расширением sql):
Code Block language bash sudo -u postgres psql -U vitrodbuser -h localhost -d vitrodb < /tmp/vitro.bak.sql
- Версия дистрибутива 24.1.38 или выше:
...
Установка необходимых пакетов ПО из репозиториев:
Code Block language bash sudo apt-get update && sudo apt-get upgrade sudo apt-get install unzip curl nginx nginx-extras libgdiplus
Warning Без libgdiplus не будут работать почтовые уведомления Скачать и распаковать дистрибутив:
Code Block language bash curl "https://linkTo/Vitro.Server.MultiPlatform.Linux-xx.x.xx.xx.zip" --output 'Vitro.Server.MultiPlatform.Linux-xx.x.xx.xx.zip' sudo unzip Vitro.Server.MultiPlatform.Linux-xx.x.xx.xx.zip
Скопировать папку файлового хранилища в расположение, в которое смонтирован раздел для хранения:
Code Block language bash sudo cp -r ~/Vitro.Server.MultiPlatform.Linux-xx.x.xx.xx/DB/VitroFileStorage /mnt/storage
Сменить владельца для папки файлового хранилища:
Code Block language bash sudo chown -R www-data:www-data /mnt/storage/VitroFileStorage
Скопировать папку Vitro в расположение /etc/:
Code Block language bash sudo cp -r ~/Vitro.Server.MultiPlatform.Linux-xx.x.xx.xx/Vitro/ /etc/
Настроить уровень доступа на папке:
Code Block language bash sudo chmod 500 /etc/Vitro/
- Сменить владельца для папки:
Code Block sudo chown -R www-data:www-data /etc/Vitro
- Внести изменения в конфигурационные файлы:
Файл db.json:
Code Block language bash sudo nano /etc/Vitro/Server/Conf/db.json
Изменить строку соединения, указав в качестве значения для атрибута "server" имя или IP сервера БД, а в качестве значения для атрибута "database" название созданной в п.9 базы данных:
Code Block language bash "ConnectionString": "server=vitrodbserver;database=vitrodb;user id=vitrodbuser;password=@pwd4vitro!",
Изменить параметр "FileStoragePath", указав корректный путь к папке файлового хранилища:
Code Block language bash "FileStoragePath": "/mnt/storage/VitroFileStorage",
изменить параметр "TempPath", указав корректный путь к папке временных файлов:
Code Block language bash "TempPath": "/tmp",
Файл workflow.json:
Code Block language bash sudo nano /etc/Vitro/Server/Conf/workflow.json
Изменить строку соединения, указав в качестве значения для атрибута "server" имя или IP сервера БД, а в качестве значения для атрибута "database" название созданной в п.10 базы данных:
Code Block language bash "ConnectionString": "server=vitrodbserver;database=workflow;user id=vitrodbuser;password=@pwd4vitro!;Include Error Detail=true",
Файл mail.json:
Указать адрес и порт SMTP сервера:Code Block language bash "Host": "smtp.example.ru", "Port": 587,
Указать данные УЗ для подключения к SMTP серверу:
Code Block language bash "Login": "mail@example.ru", "Password": "123456",
Указать адрес отправителя:
Code Block language bash "FromAddress": "mail@example.ru", "FromName": "mail@example.ru",
Указать используется ли SSL для подключения к SMTP серверу:
Code Block language bash "EnableSsl": true,
Убедиться, что в файле есть параметр SecureSocketOptions:
Code Block language bash "SecureSocketOptions": "StartTls"
Остальные параметры оставить по умолчанию.
Скопировать папку приложения Vitro.Server.Core.Web в желаемое расположение:
Code Block language bash sudo cp -r ~/Vitro.Server.MultiPlatform.Linux-xx.x.xx.xx/Vitro.Server.Core.Web /usr/local
Сменить владельца для папки приложения:
Code Block language bash sudo chown -R www-data:www-data /usr/local/Vitro.Server.Core.Web
Установить атрибут "Исполняемый" для файла Vitro.Server.Core.Web:
Code Block language bash sudo chmod +x /usr/local/Vitro.Server.Core.Web/Vitro.Server.Core.Web
Создать и отредактировать файл модуля systemd для запуска службы:
Code Block language bash sudo nano /lib/systemd/system/vitro-server.service
Содержимое файла модуля:
Code Block language bash [Unit] Description=Vitro .NET Web Application [Service] WorkingDirectory=/usr/local/Vitro.Server.Core.Web ExecStart=/usr/local/Vitro.Server.Core.Web/Vitro.Server.Core.Web --urls http://localhost:4615 Restart=always # Restart service after 10 seconds if the dotnet service crashes: RestartSec=10 KillSignal=SIGINT SyslogIdentifier=dotnet-example User=www-data SyslogIdentifier=Vitro-server [Install] WantedBy=multi-user.target
Применить изменения и запустить службу:
Code Block language bash sudo systemctl enable vitro-server sudo systemctl start vitro-server
Проверить выполняется ли прослушивание на порту, заданном в файле модуля (здесь 4615) для адреса Lo интерфейса:
Code Block language bash netstat -ltnp Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name ... tcp 0 0 127.0.0.1:4615 0.0.0.0:* LISTEN - ...
Скопировать папку приложения в желаемое расположение:
Code Block language bash sudo cp -r ~/Vitro.Server.MultiPlatform.Linux-xx.x.xx.xx/Vitro.Server.Workflow.Manager.Web /usr/local
Сменить владельца для папки приложения:
Code Block language bash sudo chown -R www-data:www-data /usr/local/Vitro.Server.Workflow.Manager.Web
Установить атрибут "Исполняемый" для файла Workflow.Manager.Web:
Code Block language bash sudo chmod +x /usr/local/Vitro.Server.Workflow.Manager.Web/Vitro.Server.Workflow.Manager.Web
Создать и отредактировать файл модуля systemd для запуска службы:
Code Block language bash sudo nano /lib/systemd/system/vitro-workflow.service
Содержимое файла модуля:
Code Block language bash [Unit] Description=Vitro Workflow Manager .NET Web Application [Service] WorkingDirectory=/usr/local/Vitro.Server.Workflow.Manager.Web ExecStart=/usr/local/Vitro.Server.Workflow.Manager.Web/Vitro.Server.Workflow.Manager.Web --urls http://localhost:4616 Restart=always # Restart service after 10 seconds if the dotnet service crashes: RestartSec=10 KillSignal=SIGINT SyslogIdentifier=dotnet-example User=www-data SyslogIdentifier=Vitro-workflow [Install] WantedBy=multi-user.target
Применить изменения и запустить службу:
Code Block language bash sudo systemctl enable vitro-workflow sudo systemctl start vitro-workflow
Проверить выполняется ли прослушивание на порту, заданном в файле модуля (здесь 4616) для адреса Lo интерфейса:
Code Block language bash netstat -ltnp Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name ... tcp 0 0 127.0.0.1:4616 0.0.0.0:* LISTEN - ...
...
Лицензионный ключ предоставляется по запросу в техническую поддержку к менеджеру и должен быть запрошен повторно перед обновлением системы.
...