# Установка на сервер
Все .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из файлаBUILDREMOTE_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"- путь к скрипту публикации