Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Установка необходимых пакетов ПО из репозиториев:

    Code Block
    languagebash
    sudo apt-get update && sudo apt-get upgrade
    sudo apt-get install unzip curl postgresql postgresql-client postgresql-contrib


    Warning
    Без libgdiplus не будут работать почтовые уведомления
    Warning
    titleВажно!

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


  2. Отредактировать конфигурационные файлы postgresql:

    Проверяем версию postgresql

    Code Block
    languagebash
    psql --version

    Открываем конфигурационный файл postgresql.conf с учетом установленной версии

    Code Block
    languagebash
    nano /etc/postgresql/14/main/postgresql.conf

    Изменить в секции # - Connection Settings - значение параметра listen_addresses с localhost  на *
    должно получиться:

    Code Block
    languagebash
    listen_addresses = '*' 

    Открываем конфигурационный файл pg_hba.conf с учетом установленной версии

    Code Block
    languagebash
    nano /etc/postgresql/14/main/pg_hba.conf

    Изменить в секции # IPv4 Local connections:  значение параметра ADDRESS с 127.0.0.1/32  на 0.0.0.0/0

    Code Block
    languagebash
    # IPv4 local connections:
     
    host      all      all      0.0.0.0/0      scram-sha-256
  3. Перезапустить службу:

    Code Block
    languagebash
    sudo systemctl restart postgresql
  4. Проверить выполняется ли прослушивание на порту 5432 для всех активных адресов:

    Code Block
    languagebash
    netstat -ltnp
     
    tcp      0      0 0.0.0.0:5432      0.0.0.0:*      LISTEN      14569/postgres
  5. Добавить пользователя postgres в группу владельца директории, из которой выполняются действия:

    Проверка владельца текущей папки (обозначена ".")

    Code Block
    languagebash
    ls –la

    Добавление пользователя postgres в группу владельца

    Code Block
    languagebash
    sudo usermod -aG dir_owner_group postgres
  6. Изменить права группе владельца директории (дать права на изменение). В данном случае путь до директории - . (текущая директория):

    Code Block
    languagebash
    chmod -R 775 .
  7. Войти в cli postgresql от имени пользователя postgres:

    Code Block
    languagebash
    sudo -u postgres psql
  8. Создать пользователя с ролью суперпользователя:

    Code Block
    languagebash
    postgres-#CREATE USER vitrodbuser WITH PASSWORD '@pwd4vitro!' SUPERUSER;
  9. Создать новую базу данных с именем vitrodb:

    Code Block
    languagebash
    postgres-#CREATE DATABASE vitrodb with owner = vitrodbuser encoding = 'UTF8' connection limit = -1;
  10. Создать новую базу данных с именем workflow:

    Code Block
    languagebash
    postgres-#CREATE DATABASE workflow with owner = vitrodbuser encoding = 'UTF8' connection limit = -1;
  11. Отключиться от cli postgresql:

    Code Block
    languagebash
    postgres-# \q
  12. Скачать и распаковать дистрибутив:

    Code Block
    languagebash
    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
  13. Инициализация базы данных
    1. Версия дистрибутива 24.1.38 или выше:

      Скопировать в доступное для пользователей расположение (к примеру tmp) файлы инициализации базы данных:

      Code Block
      languagebash
      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
      languagebash
      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
    2. Версия дистрибутива ниже 24.1.38:

      Скопировать в доступное для пользователей расположение (к примеру tmp) файл резервной копии базы данных:

      Code Block
      languagebash
      sudo cp ~/Vitro.Server.MultiPlatform.Linux-xx.x.xx.xx/DB/vitro.bak /tmp

      Запустить восстановление БД из бэкапа:

      Code Block
      languagebash
      sudo -u postgres pg_restore -v -U vitrodbuser -h localhost -d vitrodb /tmp/vitro.bak

      Запустить восстановление БД из бекапа (для файлов с расширением sql):

      Code Block
      languagebash
      sudo -u postgres psql -U vitrodbuser -h localhost -d vitrodb < /tmp/vitro.bak.sql

...

  1. Установка необходимых пакетов ПО из репозиториев:

    Code Block
    languagebash
    sudo apt-get update && sudo apt-get upgrade
    sudo apt-get install unzip curl nginx nginx-extras libgdiplus

    Warning
    Без libgdiplus не будут работать почтовые уведомления
  2. Скачать и распаковать дистрибутив:

    Code Block
    languagebash
    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
  3. Скопировать папку файлового хранилища в расположение, в которое смонтирован раздел для хранения:

    Code Block
    languagebash
    sudo cp -r ~/Vitro.Server.MultiPlatform.Linux-xx.x.xx.xx/DB/VitroFileStorage /mnt/storage
  4. Сменить владельца для папки файлового хранилища:

    Code Block
    languagebash
    sudo chown -R www-data:www-data /mnt/storage/VitroFileStorage
  5. Скопировать папку Vitro в расположение /etc/:

    Code Block
    languagebash
    sudo cp -r ~/Vitro.Server.MultiPlatform.Linux-xx.x.xx.xx/Vitro/ /etc/
  6. Настроить уровень доступа на папке:

    Code Block
    languagebash
    sudo chmod 500 /etc/Vitro/
  7. Сменить владельца для папки:
    Code Block
    sudo chown -R www-data:www-data /etc/Vitro
  8. Внести изменения в конфигурационные файлы:
    1. Файл db.json:

      Code Block
      languagebash
      sudo nano /etc/Vitro/Server/Conf/db.json

      Изменить строку соединения, указав в качестве значения для атрибута "server" имя или IP сервера БД, а в качестве значения для атрибута "database" название созданной в п.9 базы данных:

      Code Block
      languagebash
      "ConnectionString": "server=vitrodbserver;database=vitrodb;user id=vitrodbuser;password=@pwd4vitro!",

      Изменить параметр "FileStoragePath", указав корректный путь к папке файлового хранилища:

      Code Block
      languagebash
      "FileStoragePath": "/mnt/storage/VitroFileStorage",

      изменить параметр "TempPath", указав корректный путь к папке временных файлов:

      Code Block
      languagebash
      "TempPath": "/tmp",
    2. Файл workflow.json:

      Code Block
      languagebash
      sudo nano /etc/Vitro/Server/Conf/workflow.json

      Изменить строку соединения, указав в качестве значения для атрибута "server" имя или IP сервера БД, а в качестве значения для атрибута "database" название созданной в п.10 базы данных:

      Code Block
      languagebash
      "ConnectionString": "server=vitrodbserver;database=workflow;user id=vitrodbuser;password=@pwd4vitro!;Include Error Detail=true",
    3. Файл mail.json:
      Указать адрес и порт SMTP сервера:

      Code Block
      languagebash
      "Host": "smtp.example.ru",
      "Port": 587,

      Указать данные УЗ для подключения к SMTP серверу:

      Code Block
      languagebash
      "Login": "mail@example.ru",
      "Password": "123456",

      Указать адрес отправителя:

      Code Block
      languagebash
      "FromAddress": "mail@example.ru",
      "FromName": "mail@example.ru",

      Указать используется ли SSL для подключения к SMTP серверу:

      Code Block
      languagebash
      "EnableSsl": true,

      Убедиться, что в файле есть параметр SecureSocketOptions:

      Code Block
      languagebash
      "SecureSocketOptions": "StartTls"

      Остальные параметры оставить по умолчанию.

  9. Скопировать папку приложения Vitro.Server.Core.Web в желаемое расположение:

    Code Block
    languagebash
    sudo cp -r ~/Vitro.Server.MultiPlatform.Linux-xx.x.xx.xx/Vitro.Server.Core.Web /usr/local
  10. Сменить владельца для папки приложения:

    Code Block
    languagebash
    sudo chown -R www-data:www-data /usr/local/Vitro.Server.Core.Web
  11. Установить атрибут "Исполняемый" для файла Vitro.Server.Core.Web:

    Code Block
    languagebash
    sudo chmod +x /usr/local/Vitro.Server.Core.Web/Vitro.Server.Core.Web
  12. Создать и отредактировать файл модуля systemd для запуска службы:

    Code Block
    languagebash
    sudo nano /lib/systemd/system/vitro-server.service

    Содержимое файла модуля:

    Code Block
    languagebash
    [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
  13. Применить изменения и запустить службу:

    Code Block
    languagebash
    sudo systemctl enable vitro-server
     
    sudo systemctl start vitro-server
  14. Проверить выполняется ли прослушивание на порту, заданном в файле модуля (здесь 4615) для адреса Lo интерфейса:

    Code Block
    languagebash
    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   -
     
    ...
  15. Скопировать папку приложения в желаемое расположение:

    Code Block
    languagebash
    sudo cp -r ~/Vitro.Server.MultiPlatform.Linux-xx.x.xx.xx/Vitro.Server.Workflow.Manager.Web /usr/local
  16. Сменить владельца для папки приложения:

    Code Block
    languagebash
    sudo chown -R www-data:www-data /usr/local/Vitro.Server.Workflow.Manager.Web
  17. Установить атрибут "Исполняемый" для файла Workflow.Manager.Web:

    Code Block
    languagebash
    sudo chmod +x /usr/local/Vitro.Server.Workflow.Manager.Web/Vitro.Server.Workflow.Manager.Web
  18. Создать и отредактировать файл модуля systemd для запуска службы:

    Code Block
    languagebash
    sudo nano /lib/systemd/system/vitro-workflow.service

    Содержимое файла модуля:

    Code Block
    languagebash
    [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
  19. Применить изменения и запустить службу:

    Code Block
    languagebash
    sudo systemctl enable vitro-workflow
      
    sudo systemctl start vitro-workflow
  20. Проверить выполняется ли прослушивание на порту, заданном в файле модуля (здесь 4616) для адреса Lo интерфейса:

    Code Block
    languagebash
    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   -
      
    ...

...