# Установка на сервер

Все .sh скрипты находятся в директории Scripts/

Для публикации на сервере необходимо выполнить следующие действия:

  • Запустить скрипт build.sh.
  • Подготовить параметры скрипта publi.sh переименовав PUBLISH.template в PUBLISH и отредактировать настройки в файле.
  • Запустить скрипт publi.sh.

# Создание сборки

# Скрипт build.sh

Скрипт работает из коробки.

После запуска весь проект собирается в директорию build.

Клиентская часть кладётся в build/wwwroot.

Для настройки по умолчанию используется файл BUILD, либо укажите файл с настройками первым аргументом

"build.sh /path/to/BUILD_VARS"

# Настройки скрипта BUILD

  • PROJECT_NAME="SunEngine" - имя проекта, используется для вывода в консоли
  • PROJECT_ROOT="auto" - путь к корневой директории проекта. Значение auto: текущая директория или директория выше определяется содержанием в директории файла .SunEngineRoot.
  • SERVER_PATH="${PROJECT_ROOT}/Server" - путь к серверной части проекта (DotNet solution)
  • CLIENT_PATH="${PROJECT_ROOT}/Client" - путь к клиентской части проекта (Quasar project)
  • CONFIG_PATH="${PROJECT_ROOT}/Config" - путь к директории с конфигурацией проекта
  • BUILD_PATH="${PROJECT_ROOT}/build" - путь куда будет помещена результирующая сборка проекта
  • NPM_UTIL="yarn" - установщик npm пакетов (yarn или npm)

# Установка на сервер

# Скрипт publi.sh

Перед запуском необходимо отредактировать параметры в PUBLISH" файле настроек скрипта.

Скрипт publi.sh записывает директорию build на сервер, перезаписывая все файлы, а директорию Config записывает только если её ещё нет на сервере.

Для настройки по умолчанию используется файл PUBLISH, либо укажите файл с настройками первым аргументом

"publi.sh /path/to/PUBLISH_VARS"

Для того что бы скрипт смог полностью отработать пользователю username на сервере (под которым работает скрипт) надо добавить в группы www-data, systemd-journal, systemd-network, systemd-network, systemd-resolve. Это можно сделать отредактировав файл /etc/group.

# Настройки скрипта PUBLISH

  • PROJECT_NAME="SunEngine Demo" - имя проекта, используется для вывода в консоли
  • LOCAL_BUILD_PATH="/path/to/local/build" - путь к директории build проекта, должен соответствовать BUILD_PATH из файла BUILD
  • REMOTE_USER="username" - имя пользователя под которым будет производиться коннект к серверу
  • REMOTE_HOST="111.111.111.111" - IP или домен хоста сервера
  • REMOTE_DIRECTORY="/remote/dir/path" - путь к директории на сервере куда будет осуществляться загрузка
  • REMOTE_DIRECTORY_OWNER="www-data" - пользователь которому принадлежит REMOTE_DIRECTORY на сервере
  • REMOTE_DIRECTORY_GROUP="www-data" - группа которой принадлежит REMOTE_DIRECTORY на сервере
  • REMOTE_SYSTEMD_SERVICE_NAME="demo.sunengine.site" - имя сервиса systemd для перезапуска после загрузки

# Запись файлов конфигурации

После построение build.sh и публикации publi.sh, необходимо настроить конфигурацию на сервере отредактировать файлы в директории Config на сервере, это делается один раз. Необходимо прописать правильные настройки базы данных в DataBaseConnection.json

Остальные настройки по необходимости.

Директория Config/Init служит для стартовой инициализации базы данных сайта - команда dotnet SunEngine.dll init migrate.

# Обновление SunEngine на сервере до последней версии с репозитория GitHub

# Скрипт: update.sh

Скрипт работает из коробки при условии настроенного publi.sh скрипта.

Скрипт берёт последнюю версию из мастер ветки репозитория, перезатирая всё что было раньше кроме Config

И последовательно запускает build.sh и publi.sh скрипты.

# Настройки скрипта UPDATE

  • PROJECT_NAME="SunEngine Demo" - имя проекта, используется для вывода в консоли
  • PROJECT_ROOT="auto" - путь к корневой директории проекта.
    Значение auto: текущая директория или директория выше определяется содержанием в директории файла .SunEngineRoot.
  • BUILD_SCRIPT_PATH="./build.sh" - путь к скрипту сборки
  • PUBLISH_SCRIPT_PATH="./publi.sh" - путь к скрипту публикации