Локальная установка без настройки IIS¶
Для проверки работы системы или для разработки расширений можно не прибегать к настройке IIS, и вместо этого настроить временную инсталляцию сервера приложений. Такая установка возможна на любой системе, которая удовлетворяет следующим требованиям:
-
ОС Windows x64: Windows 7 SP1 или старше (для Windows 10 должен быть минимум номер версии 1809, это номер сборки 10.0.17763), или любая версия старше, в т.ч. редакция Home.
-
Установка .NET не требуется, версия .NET Framework не является важной.
-
Локально установлены PostgreSQL или SQL Server (подойдёт редакция Express Edition), или обеспечен сетевой доступ к серверу СУБД (настройки в строке подключения в конфигурационных файлах, см. ниже).
Warning
Рекомендации, приведённые в этом разделе, подходят только для тестовой (временной) установки системы или для локальной установки для разработки расширений. Не используйте эти рекомендации, чтобы настроить тестовый или продуктовый серверы.
Установка системы¶
Установка выполняется следующим образом:
-
В файле
Services\app.json
в папке со сборкой укажите пустую строку в настройке"GuyFawkesAuth": ""
. -
В файле
Services\app-db.json
укажите адрес для подключения с именем создаваемой базы данных в настройкеConnectionStrings -> default
, подробности по настройкам указаны в следующем разделе. -
В файлах
Chronos\app-db.json
иTools\app-db.json
укажите такую же строку подключения, как вServices\app-db.json
в п.2. -
Разместите файл лицензии в папках сборки
Chronos
иServices
, укажите имя этого файла в конфигурационных файлахapp.json
в соответствующих папках (настройкаLicenseFile
). Имя можно не указывать, если файл лицензии единственный в этой папке с расширением.jlic
или.tlic
. -
Создайте сертификат HTTPS.
- Для этого откройте PowerShell для текущего пользователя (не от имени администратора) и выполните команду, которая создаст самоподписанный сертификат со сроком жизни в 1 год:
New-SelfSignedCertificate -NotBefore (Get-Date) -NotAfter (Get-Date).AddYears(1) -Subject "localhost" -KeyAlgorithm "RSA" -KeyLength 2048 -HashAlgorithm "SHA256" -CertStoreLocation "Cert:\CurrentUser\My" -KeyUsage KeyEncipherment -FriendlyName "HTTPS development certificate" -TextExtension @("2.5.29.19={critical}{text}","2.5.29.37={critical}{text}1.3.6.1.5.5.7.3.1","2.5.29.17={critical}{text}DNS=localhost")
- Если требуется подробная инструкция по созданию сертификатов, обратитесь к блогу MSDN.
-
Запустите приложение веб-сервисов
Services\web\Tessa.Web.Server.exe
.-
По умолчанию приложение запустится и будет слушать локальный порт 5000 по протоколу HTTP и локальный порт 5001 по протоколу HTTPS, если найден подходящий сертификат. Настройки сертификата перечислены в разделе Настройки веб-сервера Kestrel в группе WebServer.
-
Если вы корректно создали сертификат HTTPS по инструкции выше, то с настройками по умолчанию будет использован этот сертификат из хранилища сертификатов текущего пользователя.
-
Если сертификат не найден, то порт 5001 не прослушивается и в консоли выводится предупреждение, при этом порт 5000 по-прежнему прослушивается по протоколу HTTP.
-
Если прослушивается порт по протоколу HTTPS , то выполняется автоматическое перенаправление запросов с протокола HTTP на порт по протоколу HTTPS.
-
-
Если окно консоли откроется и тут же закроется, то возникла ошибка.
-
Откройте командную строку
cmd
: сочетание клавиш [Win]+[R], введитеcmd.exe
, нажмите [Enter]. -
Перейдите в папку
cd полный_путь_до_папки_со_сборкой\Services\web
. -
Запустите
Tessa.Web.Server.exe
.
-
-
Если в сообщении об ошибке будет информация о недоступности портов 5000 или 5001 вида
Failed to bind to address http://127.0.0.1:5000: address already in use
(обычно, если порт уже занят), то укажите адрес с другими заданными портами, например, запустивTessa.Web.Server.exe 5002 https://5003
.
-
-
Запустите скрипт
Setup.bat
для установки системы.-
Введите адрес
https://localhost:5001
и нажмите [Enter] (укажите другой порт, если его изменяли при запускеTessa.Web.Server.exe
). Убедитесь, что вы ввели именноhttps://
, а неhttp://
. В случае ошибки ввода закройте окно консоли и заново запустите скриптSetup.bat
. -
Введите имя создаваемой базы данных и нажмите [Enter], например:
tessa
. -
Введите путь к папке с файлами, которая доступна на чтение и запись для текущего пользователя, и нажмите [Enter], например:
C:\Tessa\Files
. -
Нажмите любую клавишу и дождитесь окончания установки. Закройте окно консоли.
-
-
Запустите сервис фоновых процессов
Chronos
, для этого запустите приложениеChronos\Chronos.exe
. -
Запустите приложение TessaClient, чтобы проверить работоспособность инсталляции. Для этого в файле
Applications\TessaClient\app.json
настройте базовый адресBaseAddress
, указавhttps://localhost:5001
(укажите другой порт, если его изменяли при запускеTessa.Web.Server.exe
).-
В появившемся окне введите логин
admin
и парольadmin
для пользователя системы, созданного по умолчанию. -
В дальнейшем стандартным образом можно создать других сотрудников с типом “Пользователь Tessa” и любыми логинами/паролями.
-
-
Web-клиент доступен в браузере по адресам
https://localhost:5001
иhttp://localhost:5000
(укажите другой порт, если его изменяли при запускеTessa.Web.Server.exe
). -
Помимо запуска приложений TessaClient и TessaAdmin вручную, также их можно опубликовать и использовать для запуска менеджера приложений
Tessa Applications
.- Отредактируйте файлы
Applications\publish_client_demo.bat
иApplications\publish_admin_demo.bat
, указав адрес подключения: вместо/a:https://localhost/tessa
пропишите/a:https://localhost:5001
(порт может отличаться), после чего сохраните и запустите файлы. Дождитесь окончания публикации.
- Отредактируйте файлы
-
Установите
Tessa Applications
, выполнивSetup\ru-RU\x64\TessaApplications.msi
.-
Для этого потребуются права локального администратора Windows на вашем компьютере.
-
При установке укажите адрес
https://localhost:5001
вместо адреса по умолчанию (укажите другой порт, если его изменяли при запускеTessa.Web.Server.exe
). -
После запуска
Tessa Applications
введите логинadmin
и парольadmin
для пользователя системы по умолчанию. -
Чтобы не вводить логин/пароль каждый раз, его можно указать в настройках сервера. Для этого перейдите на вкладку “Серверы”, дважды кликните по строке с сервером, задайте логин и пароль и нажмите кнопку “Сохранить” внизу окна.
-
-
Чтобы завершить работу сервера приложений TESSA, нажмите [Ctrl]+[C] в окнах консоли с запущенными
Tessa.Web.Server.exe
иChronos.exe
и дождитесь окончания их работы. -
Когда снова потребуется использовать эту локальную инсталляцию, запустите окна приложений
Tessa.Web.Server.exe
иChronos.exe
, как это описано выше. -
После установки, при необходимости, вы можете скопировать папки, используемые системой, в произвольные места на вашем компьютере, к которым у текущего пользователя есть доступ на чтение и запись. Запуск
Chronos.exe
иTessa.Web.Server.exe
можно настроить по ярлыкам. Скопируйте папки:-
Chronos
, -
Services
, -
Applications\TessaClient
иApplications\TessaAdmin
(не требуется, если выполнялась публикация приложений с их последующим запуском посредствомTessa Applications
).
-
Ограничения локальной установки¶
Локальная установка имеет следующие ограничения:
-
В desktop-клиенте и в web-клиенте не работают автоматическая Windows аутентификация или аутентификация ADFS.
-
Для функционирования веб-сервисов должно быть запущено окно консоли
Tessa.Web.Server.exe
. Консоль можно в любой момент закрыть, нажав [Ctrl]+[C], или снова открыть, запустив соответствующий .exe-файл. -
Для функционирования фоновых сервисов Chronos должно быть запущено окно консоли
Chronos.exe
. Консоль можно в любой момент закрыть, нажав [Ctrl]+[C], или снова открыть, запустив соответствующий .exe-файл. -
Веб-сервисы доступны только на том же компьютере по адресу
localhost
независимо от того, какие порты открыты и какие сетевые настройки выполнены на вашем компьютере.- Вы можете запустить веб-сервер командой
Tessa.Web.Server.exe http://*:5000 https://*:5001
, чтобы прослушивались все сетевые адреса (включаяlocalhost
), в т.ч. чтобы обрабатывались внешние запросы к вашему компьютеру по этим адресам. При первом запуске потребуется подтверждение UAC на доступ веб-приложения к сетевым интерфейсам.
- Вы можете запустить веб-сервер командой
-
Запуск любых приложений должен выполняться с указанием адреса и порта
https://localhost:5001
одним из следующих способов:-
Запуском .exe-файла с предварительно настроенным адресом подключения - это настройка
BaseAddress
в файлеapp.json
. -
Из командной строки, например:
TessaClient.exe /a:https://localhost:5001 /u:admin /p:admin
. -
Посредством установленного на том же компьютере приложения
Tessa Applications
при условии, что TessaClient и/или TessaAdmin опубликованы по адресу веб-сервисов для этой инсталляции. Такая публикация описана выше.
-
Параметры командной строки Tessa.Web.Server¶
Веб-приложение TESSA может быть запущено из консоли вызовом команды Tessa.Web.Server.exe
с параметрами, определяющими, какие адреса и порты и по каким протоколам (HTTP, HTTPS) прослушиваются.
Tip
Для Linux параметром также можно указать имя файла с Unix-сокетом, для этого обратитесь к Руководству по установке на Linux. При этом в консоли вместо Tessa.Web.Server.exe
указывается имя Linux-приложения ./Tessa.Web.Server
, в остальном представленное здесь описание параметров актуально и для запуска на Linux.
По умолчанию, если параметры не указаны, прослушивание выполняется для localhost
: для порта 5000 - по протоколу HTTP, и для порта 5001 - по протоколу HTTPS, если найден подходящий сертификат. Настройки сертификата перечислены в разделе Настройки веб-сервера Kestrel в группе WebServer.
-
Если вы корректно создали сертификат HTTPS по инструкции выше, то с настройками по умолчанию будет использован этот сертификат из хранилища сертификатов текущего пользователя.
-
Если сертификат не найден, то порт 5001 не прослушивается и в консоли выводится предупреждение, при этом порт 5000 по-прежнему прослушивается по протоколу HTTP.
-
Если прослушивается порт по протоколу HTTPS , то выполняется автоматическое перенаправление запросов с протокола HTTP на порт по протоколу HTTPS.
Каждый параметр командной строки соответствует конечной точке, т.е. сочетанию адрес + порт + протокол, прослушивание которой будет выполнено. Например, запуск без параметров аналогичен команде Tessa.Web.Server.exe http://localhost:5000 https://localhost:5001
.
Tip
Если указан хотя бы один параметр, то прослушивание выполняется в соответствии с тем, что указано в параметрах, т.е. адреса и порты, используемые при запуске без параметров, прослушиваться не будут, если они явно не перечислены.
Tip
При прослушивании адресов, отличных от loopback-интерфейса localhost
, может потребоваться подтверждение UAC на доступ к сетевым интерфейсам.
Ниже перечислены способы указания параметров:
-
протокол://адрес:порт
-
Например,
http://localhost:5000
илиhttps://127.0.0.1:5001
. -
В качестве протокола могут использоваться
http
(протокол HTTP без шифрования) иhttps
(протокол HTTPS с шифрованием, требует наличия сертификата). -
Адрес может быть
localhost
, это loopback-интерфейс для обращения к текущему компьютеру, доступ по соответствующему порту будет только у пользователей на этом же компьютере.-
Если указан
localhost
, то прослушивается и IPv4 адрес (127.0.0.1
), и IPv6 адрес ([::1/128]
или сокращённо[::1]
). -
При указании IPv6-адреса в параметрах командной строки, заключайте его в квадратные скобки.
-
В адресной строке браузера и в параметрах подключения приложений можно указывать как строку
localhost
(чтобы прослушивать оба адреса IPv4 и IPv6), так и любой из перечисленных loopback-адресов, если требуется прослушивание только его (например, если надо прослушивать только IPv4 адрес, но не прослушивать IPv6 адрес).
-
-
Адрес может быть IP-адресом (IPv4 или IPv6). Только при обращении по указанному здесь IP-адресу будет доступно веб-приложение.
-
При указании адреса loopback-интерфейса приложение также доступно по имени
localhost
. -
При задании адреса, отличного от loopback-интерфейса, при первом запуске может потребоваться подтверждение UAC для доступа к сетевым интерфейсам.
-
Указание DNS-имени (например, имени компьютера) не поддерживается.
-
-
Порт - это номер порта, по которому веб-приложение TESSA будет доступно для указанного адреса и протокола. Порт должен быть свободен, т.е. на компьютере не должно быть других запущенных приложений, прослушивающих тот же порт, в т.ч. других веб-приложений TESSA. Если порт занят, то на консоли будет выведена ошибка вида
Failed to bind to address ...: address already in use
, и веб-приложение закроется.
-
-
протокол://адрес
- аналогично, но порт выбирается в зависимости от протокола: для протоколаhttp://
указывается порт 80, а для протоколаhttps://
- порт 443.- Обычно эти порты уже могут прослушиваться веб-сервером IIS или другим приложением. Если при запуске выводится ошибка
Failed to bind to address ...: address already in use
о том, что порт занят, то явно укажите другой порт или закройте приложение, занимающее порт.
- Обычно эти порты уже могут прослушиваться веб-сервером IIS или другим приложением. Если при запуске выводится ошибка
-
протокол://*:порт
- прослушивать все адреса по указанному порту: какlocalhost
, так и любые внешние IP-адреса, по которым клиенты обращаются к этому компьютеру.- При первом запуске может потребоваться подтверждение UAC для доступа к сетевым интерфейсам.
-
протокол://*
- аналогично, но порт выбирается в зависимости от протокола: для протоколаhttp://
указывается порт 80, а для протоколаhttps://
- порт 443. -
протокол://localhost:0
илипротокол://127.0.0.1:0
- всегда выбирается свободный порт (обычно с номером > 50000) и прослушивается IPv4 адрес loopback-интерфейса. Независимо от того, какой вариант вы указали в параметре, приложение будет доступно и по адресуlocalhost
, и по адресу127.0.0.1
.-
Порт будет выведен в окно консоли.
-
Прослушивание с автоматическим выбором свободного порта (т.е. с указанием номера порта
0
) возможно только для loopback-интерфейсов, но невозможно для IP-адресов или для всех адресов с указанием*
. -
При указании адреса вида
протокол://localhost:0
будет прослушиваться только IPv4 адрес127.0.0.1
, но не будет прослушиваться loopback-интерфейс для адреса IPv6, в отличие от указанияlocalhost
для явно заданного номера порта.
-
-
протокол://[::1]:0
- аналогично, но прослушивается IPv6 адрес loopback-интерфейса, при этом IPv4 не прослушивается, т.е. приложение не будет доступно по адресу127.0.0.1
.- Для loopback-адресов IPv4 и IPv6 при автоматическом выборе свободного порта нельзя указать один и тот же номер порта для обоих интерфейсов, в отличие от указания
localhost
с явно заданным номером порта.
- Для loopback-адресов IPv4 и IPv6 при автоматическом выборе свободного порта нельзя указать один и тот же номер порта для обоих интерфейсов, в отличие от указания
-
порт
- если указать только числовой номер порта, то это аналогично прослушиваниюlocalhost
по протоколу HTTP и указанному номеру порта.- Например:
5000
аналогичноhttp://localhost:5000
.
- Например:
-
протокол://порт
- выполняется прослушиваниеlocalhost
по указанному протоколу и номеру порта.- Например:
https://5001
аналогичноhttps://localhost:5001
.
- Например:
-
путь-к-файлу.sock
- на Linux можно указать имя файла Unix-сокета для взаимодействия с внешним веб-сервером (обычно с Nginx или Apache). Имя файла должно иметь расширение.sock
.
Note
Если в качестве конечных точек (адресов и портов) для прослушивания были указаны только адреса с протоколом HTTPS, но подходящий сертификат не был найден, то помимо предупреждений о ненайденном сертификате на консоль и в файл лога log.txt
будет выведена ошибка, а приложение завершит свою работу.