Перейти к содержанию

Локальная установка без настройки IIS

Для проверки работы системы или для разработки расширений можно не прибегать к настройке IIS, и вместо этого настроить временную инсталляцию сервера приложений. Такая установка возможна на любой системе, которая удовлетворяет следующим требованиям:

  1. ОС Windows x64: Windows 7 SP1 или старше, в т.ч. редакция Home.

  2. Установка .NET не требуется, версия .NET Framework не является важной.

  3. Локально установлены PostgreSQL или SQL Server (подойдёт редакция Express Edition), или обеспечен сетевой доступ к серверу СУБД (настройки в строке подключения в конфигурационных файлах, см. ниже).

Warning

Рекомендации, приведённые в этом разделе, подходят только для тестовой (временной) установки системы или для локальной установки для разработки расширений. Не используйте эти рекомендации, чтобы настроить тестовый или продуктовый серверы.

Установка системы

Установка выполняется следующим образом:

  1. В файле Services\app.json в папке со сборкой укажите пустую строку в настройке "GuyFawkesAuth": "".

  2. В этом же файле укажите адрес для подключения с именем создаваемой базы данных в настройке ConnectionStrings -> default, подробности по настройкам указаны в следующем разделе.

  3. В файлах Chronos\app.json и Tools\app.json укажите такую же строку подключения, как в Services\app.json в п.2.

  4. Разместите файл лицензии в папках сборки Chronos и Services, укажите имя этого файла в конфигурационных файлах app.json в соответствующих папках (настройка LicenseFile).

  5. Создайте сертификат HTTPS.

    1. Для этого откройте 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")

    1. Если требуется подробная инструкция по созданию сертификатов, то обратитесь к блогу MSDN.
  6. Запустите приложение веб-сервисов Services\web\Tessa.Web.Server.exe.

    1. По умолчанию приложение запустится и будет слушать локальный порт 5000 по протоколу HTTP и локальный порт 5001 по протоколу HTTPS, если найден подходящий сертификат. Настройки сертификата перечислены в разделе Настройки веб-сервера Kestrel в группе WebServer.

      1. Если вы корректно создали сертификат HTTPS по инструкции выше, то с настройками по умолчанию будет использован этот сертификат из хранилища сертификатов текущего пользователя.

      2. Если сертификат не найден, то порт 5001 не прослушивается и в консоли выводится предупреждение, при этом порт 5000 по-прежнему прослушивается по протоколу HTTP.

      3. Если прослушивается порт по протоколу HTTPS , то выполняется автоматическое перенаправление запросов с протокола HTTP на порт по протоколу HTTPS.

    2. Если окно консоли откроется и тут же закроется, то возникла ошибка.

      1. Откройте командную строку cmd: сочетание клавиш [Win]+[R], введите cmd.exe, нажмите [Enter].

      2. Перейдите в папку cd полный_путь_до_папки_со_сборкой\Services\web.

      3. Запустите Tessa.Web.Server.exe.

    3. Если в сообщении об ошибке будет информация о недоступности портов 5000 или 5001 вида Failed to bind to address [http://127.0.0.1:5000:](http://127.0.0.1:5000:) address already in use (обычно, если порт уже занят), то укажите адрес с другими заданными портами, например, запустив Tessa.Web.Server.exe 5002 [https://5003](https://5003`).

  7. Запустите скрипт Setup.bat для установки системы.

    1. Введите адрес https://localhost:5001 и нажмите [Enter] (укажите другой порт, если его изменяли при запуске Tessa.Web.Server.exe). Убедитесь, что вы ввели именно https://, а не http://. В случае ошибки ввода закройте окно консоли и заново запустите скрипт Setup.bat.

    2. Введите имя создаваемой базы данных и нажмите [Enter], например: tessa.

    3. Введите путь к папке с файлами, которая доступна на чтение и запись для текущего пользователя, и нажмите [Enter], например: C:\Tessa\Files.

    4. Нажмите любую клавишу и дождитесь окончания установки. Закройте окно консоли.

  8. Запустите сервис фоновых процессов Chronos, для этого запустите приложение Chronos\Chronos.exe.

  9. Запустите приложение TessaClient, чтобы проверить работоспособность инсталляции. Для этого в файле Applications\TessaClient\app.json настройте базовый адрес BaseAddress, указав https://localhost:5001 (укажите другой порт, если его изменяли при запуске Tessa.Web.Server.exe).

    1. В появившемся окне введите логин admin и пароль admin для пользователя системы, созданного по умолчанию.

    2. В дальнейшем стандартным образом можно создать других сотрудников с типом “Пользователь TESSA” и любыми логинами/паролями.

  10. Web-клиент доступен в браузере по адресам https://localhost:5001 и http://localhost:5000 (укажите другой порт, если его изменяли при запуске Tessa.Web.Server.exe).

  11. Помимо запуска приложений TessaClient и TessaAdmin вручную, также их можно опубликовать и использовать для запуска менеджера приложений Tessa Applications.

    1. Отредактируйте файлы Applications\publish_client_demo.bat и Applications\publish_admin_demo.bat, указав адрес подключения: вместо /a:https://localhost/tessa пропишите /a:https://localhost:5001 (порт может отличаться), после чего сохраните и запустите файлы. Дождитесь окончания публикации.
  12. Установите Tessa Applications, выполнив Setup\ru-RU\x64\TessaApplications.msi.

    1. Для этого потребуются права локального администратора Windows на вашем компьютере.

    2. При установке укажите адрес https://localhost:5001 вместо адреса по умолчанию (укажите другой порт, если его изменяли при запуске Tessa.Web.Server.exe).

    3. После запуска Tessa Applications введите логин admin и пароль admin для пользователя системы по умолчанию.

    4. Чтобы не вводить логин/пароль каждый раз, его можно указать в настройках сервера. Для этого перейдите на вкладку “Серверы”, дважды кликните по строке с сервером, задайте логин и пароль, и нажмите кнопку “Сохранить” внизу окна.

  13. Чтобы завершить работу сервера приложений TESSA, нажмите [Ctrl]+[C] в окнах консоли с запущенными Tessa.Web.Server.exe и Chronos.exe, и дождитесь окончания их работы.

  14. Когда снова потребуется использовать эту локальную инсталляцию, запустите окна приложений Tessa.Web.Server.exe и Chronos.exe, как это описано выше.

  15. После установки, при необходимости, вы можете скопировать папки, используемые системой, в произвольные места на вашем компьютере, к которым у текущего пользователя есть доступ на чтение и запись. Запуск Chronos.exe и Tessa.Web.Server.exe можно настроить по ярлыкам. Скопируйте папки:

    1. Chronos,

    2. Services,

    3. Applications\TessaClient и Applications\TessaAdmin (не требуется, если выполнялась публикация приложений с их последующим запуском посредством Tessa Applications).

Ограничения локальной установки

Локальная установка имеет следующие ограничения:

  1. В desktop-клиенте и в web-клиенте не работают автоматическая Windows аутентификация или аутентификация ADFS.

  2. Для функционирования веб-сервисов должно быть запущено окно консоли Tessa.Web.Server.exe. Консоль можно в любой момент закрыть, нажав [Ctrl]+[C], или снова открыть, запустив соответствующий .exe-файл.

  3. Для функционирования фоновых сервисов Chronos должно быть запущено окно консоли Chronos.exe. Консоль можно в любой момент закрыть, нажав [Ctrl]+[C], или снова открыть, запустив соответствующий .exe-файл.

  4. Веб-сервисы доступны только на том же компьютере по адресу localhost независимо от того, какие порты открыты и какие сетевые настройки выполнены на вашем компьютере.

    1. Вы можете запустить веб-сервер командой Tessa.Web.Server.exe http://*:5000 https://*:5001, чтобы прослушивались все сетевые адреса (включая localhost), в т.ч. чтобы обрабатывались внешние запросы к вашему компьютеру по этим адресам. При первом запуске потребуется подтверждение UAC на доступ веб-приложения к сетевым интерфейсам.
  5. Запуск любых приложений должен выполняться с указанием адреса и порта https://localhost:5001 одним из следующих способов:

    1. Запуском .exe-файла с адресом подключения, который предварительно настроен, это настройка BaseAddress в файле app.json.

    2. Из командной строки, например: TessaClient.exe /a:https://localhost:5001 /u:admin /p:admin.

    3. Посредством установленного на том же компьютере приложения 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.

  1. Если вы корректно создали сертификат HTTPS по инструкции выше, то с настройками по умолчанию будет использован этот сертификат из хранилища сертификатов текущего пользователя.

  2. Если сертификат не найден, то порт 5001 не прослушивается и в консоли выводится предупреждение, при этом порт 5000 по-прежнему прослушивается по протоколу HTTP.

  3. Если прослушивается порт по протоколу HTTPS , то выполняется автоматическое перенаправление запросов с протокола HTTP на порт по протоколу HTTPS.

Каждый параметр командной строки соответствует конечной точке, т.е. сочетанию адрес + порт + протокол, прослушивание которой будет выполнено. Например, запуск без параметров аналогичен команде Tessa.Web.Server.exe http://localhost:5000 https://localhost:5001.

Tip

Если указан хотя бы один параметр, то прослушивание выполняется в соответствии с тем, что указано в параметрах, т.е. адреса и порты, используемые при запуске без параметров, прослушиваться не будут, если они явно не перечислены.

Tip

При прослушивании адресов, отличных от loopback-интерфейса localhost, может потребоваться подтверждение UAC на доступ к сетевым интерфейсам.

Ниже перечислены способы указания параметров:

  1. протокол://адрес:порт

    1. Например, http://localhost:5000 или https://127.0.0.1:5001.

    2. В качестве протокола могут использоваться http (протокол HTTP без шифрования) и https (протокол HTTPS с шифрованием, требует наличия сертификата).

    3. Адрес может быть localhost, это loopback-интерфейс для обращения к текущему компьютеру, доступ по соответствующему порту будет только у пользователей на этом же компьютере.

      1. Если указан localhost, то прослушивается и IPv4 адрес (127.0.0.1), и IPv6 адрес ([::1/128] или сокращённо [::1]).

      2. При указании IPv6-адреса в параметрах командной строки, заключайте его в квадратные скобки.

      3. В адресной строке браузера и в параметрах подключения приложений можно указывать как строку localhost (чтобы прослушивать оба адреса IPv4 и IPv6), так и любой из перечисленных loopback-адресов, если требуется прослушивание только его (например, если надо прослушивать только IPv4 адрес, но не прослушивать IPv6 адрес).

    4. Адрес может быть IP-адресом (IPv4 или IPv6). Только при обращении по указанному здесь IP-адресу будет доступно веб-приложение.

      1. При указании адреса loopback-интерфейса приложение также доступно по имени localhost.

      2. При задании адреса, отличного от loopback-интерфейса, при первом запуске может потребоваться подтверждение UAC для доступа к сетевым интерфейсам.

      3. Указание DNS-имени (например, имени компьютера) не поддерживается.

    5. Порт - это номер порта, по которому веб-приложение TESSA будет доступно для указанного адреса и протокола. Порт должен быть свободен, т.е. на компьютере не должно быть других запущенных приложений, прослушивающих тот же порт, в т.ч. других веб-приложений TESSA. Если порт занят, то на консоли будет выведена ошибка вида Failed to bind to address ...: address already in use, и веб-приложение закрывается.

  2. протокол://адрес - аналогично, но порт выбирается, в зависимости от протокола: для протокола http:// указывается порт 80, а для протокола https:// - порт 443.

    1. Обычно эти порты уже могут прослушиваться веб-сервером IIS или другим приложением. Если при запуске выводится ошибка Failed to bind to address ...: address already in use о том, что порт занят, то явно укажите другой порт, или закройте приложение, занимающее порт.
  3. протокол://*:порт - прослушивать все адреса по указанному порту, как localhost, так и любые внешние IP-адреса, по которым клиенты обращаются к этому компьютеру.

    1. При первом запуске может потребоваться подтверждение UAC для доступа к сетевым интерфейсам.
  4. протокол://* - аналогично, но порт выбирается, в зависимости от протокола: для протокола http:// указывается порт 80, а для протокола https:// - порт 443.

  5. протокол://localhost:0 или протокол://127.0.0.1:0 - всегда выбирается свободный порт (обычно с номером > 50000) и прослушивается IPv4 адрес loopback-интерфейса. Независимо от того, какой вариант вы указали в параметре, приложение будет доступно и по адресу localhost, и по адресу 127.0.0.1.

    1. Порт будет выведен в окно консоли.

    2. Прослушивание с автоматическим выбором свободного порта (т.е. с указанием номера порта 0) возможно только для loopback-интерфейсов, но невозможно для IP-адресов или для всех адресов с указанием +*+.

    3. При указании адреса вида протокол://localhost:0 будет прослушиваться только IPv4 адрес 127.0.0.1, но не будет прослушиваться loopback-интерфейс для адреса IPv6, в отличие от указания localhost для явно заданного номера порта.

  6. протокол://[::1]:0 - аналогично, но прослушивается IPv6 адрес loopback-интерфейса, при этом IPv4 не прослушивается, т.е. приложение не будет доступно по адресу 127.0.0.1.

    1. Для loopback-адресов IPv4 и IPv6 при автоматическом выборе свободного порта нельзя указать один и тот же номер порта для обоих интерфейсов, в отличие от указания localhost с явно заданным номером порта.
  7. порт - если указать только числовой номер порта, то это аналогично прослушиванию localhost по протоколу HTTP и указанному номеру порта.

    1. Например: 5000 аналогично http://localhost:5000.
  8. протокол://порт - выполняется прослушивание localhost по указанному протоколу и номеру порта.

    1. Например: https://5001 аналогично https://localhost:5001.
  9. путь-к-файлу.sock - на Linux можно указать имя файла Unix-сокета для взаимодействия с внешним веб-сервером (обычно, с Nginx или Apache). Имя файла должно иметь расширение .sock.

Note

Если в качестве конечных точек (адресов и портов) для прослушивания были указаны только адреса с протоколом HTTPS, но подходящий сертификат не был найден, то помимо предупреждений о ненайденном сертификате на консоль и в файл лога log.txt будет выведена ошибка, а приложение завершит свою работу.

Back to top