База знаний The Hostels
Установка и настройка решения
Введение
Платформу можно ставить на Windows Server (например, 1Cloud.ru), либо Windows хостинг (например, reg.ru Win-1).
Есть 2 модификации платформы:
- MVC - на базе ASP.NET MVC 5
- Core - на базе ASP.NET Core (в корне проекта есть appsettings.json).
Модификации отличаются структурой каталогов.
Для установки на Windows Server минимальные требования:
- 2 ГБ RAM
- 30Гб HDD
- 2 ядра CPU
Требуемый софт на сервере
- MS SQL Server 2016+ (подойдет бесплатная версия SQL Server Express Edition).
- IIS Manager 8+
- .NET 4.6
Порядок установки приложения Falcon Space
Создать базу путем Restore backup из образа чистовой базы blank2, либо из другой базы.
Создать пользователя SQL и дать права на созданную базу данных (схема db_owner).
Скопировать файлы веб-приложения Falcon Space в папку на сервере (например, C:\sites\projectName)
Прописать в файле appsettings.json (или в web.config для MVC версии) подключение к БД (в Connection Strings), имя куки, ключ лицензии(в разделе appSettings), прописанный в лицензионном договоре.
Создать сайт в IIS:
- привязка (binging) к домену (4 привязки - www и без www, https и без).
- путь к папке с веб-приложением
- создать и привязать пул к приложению. для Core приложения лучше создавать отдельный пул с типом No Managed Code (в настройках пула Advanced Settings также указать LoadUserProfile = true). Для MVC - обычный пул типа .NET 4.0
Дать права на запись в папку /uploads (для Core - /wwwroot/uploads) для IIS_IUSRS через File Explorer (Мой компьютер).
Проверяем, что все работает - запускаем домен и входим под админом (пароль админа будет получен при передачи бекапа БД).
Примечание: Ваш домен должен указывать на IP адрес сервера. Для этого необходимо прописать DNS зону для домена (2 записи типа A с IP сервера приложения - @ и www). Чтобы уменьшить время обновления установить TTL домена в минимальное значение (3600).
Проверить связку домен - IP можно через команду ping: Win +R > cmd > ping mydomain.ru
Установка через панель Plesk на хостинге (например, reg.ru)
- Создаем домен в разделе Сайты
- В настройках ASP.NET указываем версию 4.7
- В разделе Базы данных создаем базу данных MS SQL
- Создаем пользователя FTP и подклчаемся через FTP клиент.
- Копируем через FTP бекап базы данных и выполняем операцию Восставление БД из бекапа
- По FTP копируем все файлы приложения в папку сайта.
- Прописываем в файле web.config (для Core версии - appsettings.json) подключение к БД, имя куки, ключ лицензии, прописанный в лицензионном договоре
- В Файлы даем права редактирования на папку /uploads для пользователя Пользователь пула
- После создания вы можете также сделать Lets Encrypt для https версии сайта (беслпатный SSL для домена).
- В DNS прописываем IP адрес, соответствующий сайту
Примечание: для хранения сессий пользователей на диске, необходимо создать папку DataProtectionStorage (дать доступ процессу пула на запись), а также файлы certificate.json и pfx сертификат. Как создать сертификат (Create self signed sertificate)
Обновление экземпляра Falcon Space
Перед обновлением создаем бекап существующего сайта - копируем папку сайта.
Переименовываем файл /app_offline1.html в app_offline.html - это поставит заглушку на сайт и позволит заменять файлы проекта (операционная система не будет занимать файлы).
Обновляем все файлы из свежей версии, кроме:
- папки uploads - в ней лежат рабочие файлы проекта (картинки, документы и т.д.)
- web.config (или appsettings.json), urlrewrite.config - здесь хранятся настройки приложения
- manifest.json, webmanifest - файлы манифеста PWA приложения
- папка /app_data - системная папка с данными
Переименовываем файл /app_offline.html в /app_offline.html обратно
База данных при обновлении ядра платформы не меняеются (могут быть только точечные изменения, но они делаются вне процесса обновления ядра платформы).
Настройка системы
В системе есть различный уровень настроек:
- Системный SQL (/syssp) задает ключевые настройки, работающие через SQL ( в первую очередь это каркас страницы GetLayout)
- Статичные настройки (/settings) - раздел неизменяемых опций, которые используются в системе
- Системные настройки (файл web.config)
- Настройки frontend (/uplaods/as.systemOptions.js) - для стилизации и работы в JS
Раздел Системный SQL (/sysSP)
- Процедура поиска (falcon_search) - процедура глобального поиска (в шапке сайта)
- Процедура GetLayout (falcon_getLayoutInfo) - процедура извлечения для построения страницы (язык, настройки макета и т.д.). Выполняется при загрузке каждой страницы
- Периодический запуск (falcon_sync) - хранимки, которые запускаются по периоду. Чтобы они корректно работали, необходимо настроить ежеминутный вызов адреса из внешнего сервиса (см. соответствующий раздел)
- Генерация sitemap.xml (falcon_sitemap) - создание карты сайта в виде файла sitemap.xml
Раздел Настройки /settings
- mail…. - Настройки отправки почты
- commonScripts - разметка перед закрывающим тегом (счетчики, скрипты, глобальные кнопки и т.д.)
- commonStyles - добавление стилей, подключение шрифтов
- apiType - тип вывода АПИ. Либо XML либо JSON
- brand - Что выводится наверху слева (название сайта)
- logChanges - логировать или нет изменения сущностей (если не используется, то лучше не логировать, чтобы не разрасталась база)
- robots.txt - редактирование файла индексации robots (для поисковиков)
- sitemap.xml - редактирование sitemap.xml файла (для поисковиков). Настройка НЕАКТУАЛЬНА (данные теперь берутся из процедуры falcon_sitemap).
- globalJS - JS, который будет доступен каждой странице
- globalCSS - стили, которые применятся к каждой странице
- logoIcon - FontAwesome иконка для логотипа вверху слева
- ShowDebugInfo - если 1, то для компонентов Форма, Таблица, Дашборд и др будут выводиться JSON объекты в консоль браузера (независимо от роли)
- logoffURL - если указан URL, то после выхода пользователь будет переходить на этот адрес, а не на главную
- enableLogErrorForBot - если "1", то для ботов будут фиксироваться JS ошибки в trace (по умолчанию логирование ошибок для ботов отключено)
- disableMailLog - если 1, то будет отключено логирование отправки писем в trace с кодом email
Подробную информацию можно найти в официальной документации