Перейти к содержимому

Быстрый старт: Native Windows

Эта инструкция рассчитана на администратора, который хочет поставить Portal на Windows Server без Docker: службы Windows и (по желанию) IIS.

Читайте сверху вниз. На каждом шаге есть команда «что ввести» и способ проверить, что шаг удался.
Если ещё не выбрали способ установки — сначала выберите канал.


После всех шагов:

  1. Работают службы Windows PortalApi и PortalWorker.
  2. API отвечает на порту 3001 (и при IIS — сайт на http://localhost/).
  3. Можно войти как admin и активировать LICENSE.key.

Используйте готовый bundle из дистрибутива. .NET на сервере не нужен — бинарники self-contained.


ЧтоПростыми словамиМинимум
ОСWindows Server или ПК для пилотаServer 2019+ или Windows 11
PostgreSQLБаза данныхверсия 16 (локально или удалённо)
Redis / ValkeyКэшпорт 6379
S3Файлы библиотекMinIO и т.п.
ПраваУстановка службPowerShell от администратора
BundleZIP поставщикаportal-*-native-windows-amd64.zip

Опционально для удобного UI:

  • IIS (роль Web Server)
  • модуль URL Rewrite
  • Application Request Routing (ARR) — включите proxy в ARR

Без IIS API доступен напрямую на порту 3001.

Опционально: Portal Office (на Windows — через Docker Desktop или отдельный Linux-хост).


До установки Portal должны быть доступны:

  1. PostgreSQL 16 — база и пользователь (например portal / portal).
  2. Redis или Valkey на порту 6379.
  3. S3-совместимое хранилище и bucket (например portal-files).

Запишите хост, порт, логин, пароль и параметры S3 — они понадобятся в portal.config.yaml.

Подробнее: Внешние сервисы.


Откройте PowerShell от имени администратора.

Окно терминала
Expand-Archive portal-1.0.0-native-windows-amd64.zip -DestinationPath C:\Portal
cd C:\Portal\portal-1.0.0-native-windows-amd64
Get-Location
Get-ChildItem portal-cli, config

Подставьте свою версию в имени ZIP.

Скопируйте пример конфига (имя файла в бандле может быть portal.config.native.example.yaml или рядом в config\) и отредактируйте:

  • PostgreSQL, Redis, S3;
  • portal.timezone — IANA (Europe/Moscow) или имя зоны Windows (Russian Standard Time).

Сохраните как portal.config.yaml в корне распакованного bundle.


Окно терминала
.\portal-cli\portal-cli.ps1 install -Mode native

Установщик по шагам:

  1. Копирует файлы в C:\Program Files\Portal.
  2. Создаёт C:\ProgramData\Portal\portal.env.
  3. Запускает миграции (Portal.DbInit).
  4. Регистрирует службы PortalApi и PortalWorker.
  5. Создаёт сайт IIS Portal (если IIS уже установлен).

Проверка:

Окно терминала
Get-Service PortalApi, PortalWorker

Статус должен быть Running.


Окно терминала
Get-Service PortalApi, PortalWorker
Invoke-RestMethod http://127.0.0.1:3001/health
Invoke-RestMethod http://127.0.0.1:3001/api/v1/system/version

Ожидается: health отвечает, в version есть номер сборки.

С IIS откройте в браузере: http://localhost/ (статика + прокси /api/ через web.config).

Без IIS: http://127.0.0.1:3001/


6. IIS и прокси API (если нужен сайт на 80 порту)

Заголовок раздела «6. IIS и прокси API (если нужен сайт на 80 порту)»

web.config в каталоге frontend переписывает /api/127.0.0.1:3001.

  1. Роль IIS (Web Server).
  2. URL Rewrite Module.
  3. Application Request Routing (ARR) — в настройках ARR включите Enable proxy.
Окно терминала
Get-Service PortalApi
Invoke-RestMethod http://localhost/api/v1/system/version

Если 502 — служба API не запущена или ARR proxy выключен.


Без активированного LICENSE.key запись в Portal недоступна.

  1. Войдите как администратор.
  2. Админка → Настройки → Продукт и лицензия.
  3. Скопируйте Привязку для заказа ключа.
  4. Загрузите LICENSE.key или вставьте ключ → активируйте.
Окно терминала
.\portal-cli\portal-cli.ps1 license activate -File LICENSE.key

В portal.config.yaml задайте portal.timezone. Значение записывается в C:\ProgramData\Portal\portal.env как TZ.

После смены:

Окно терминала
Restart-Service PortalApi, PortalWorker
Get-Service PortalApi, PortalWorker

Редактор не входит в native-бандл Windows. Скачайте на korport.ru/portal-office (LICENSE.key + привязка):

  1. Docker Desktop на Windows — пакет Docker (инструкция).
  2. Или отдельный Linux-хост — пакет Linux systemd или Docker.

В env Portal:

PORTAL_OFFICE_ENABLED=true
PORTAL_OFFICE_PUBLIC_URL=https://office.company.ru

Без редактора: PORTAL_OFFICE_ENABLED=false. Подробнее: Portal Office.


Окно терминала
Expand-Archive portal-1.1.0-native-windows-amd64.zip -DestinationPath C:\Portal
cd C:\Portal\portal-1.1.0-native-windows-amd64
.\portal-cli\portal-cli.ps1 upgrade -Mode native
Restart-Service PortalApi, PortalWorker

Проверка:

Окно терминала
Get-Content "C:\Program Files\Portal\bin\RELEASE"
Invoke-RestMethod http://127.0.0.1:3001/api/v1/system/version

Онлайн из админки: в отдельном процессе оставьте .\portal-cli.ps1 update-runner, затем Настройки → Продукт и лицензия → Обновить. Полная инструкция: Обновление Portal.


ПутьНазначение
C:\Program Files\Portal\bin\Api, Worker, DbInit
C:\Program Files\Portal\frontend\Статика SPA
C:\ProgramData\Portal\portal.envКонфигурация
C:\ProgramData\Portal\data\Данные лицензии

Окно терминала
Get-Service PortalApi, PortalWorker
sc.exe query PortalApi
Get-EventLog -LogName Application -Source PortalApi -Newest 20
Invoke-RestMethod http://127.0.0.1:3001/health

Если служба не стартует — смотрите Event Log и параметры Postgres/Redis/S3 в C:\ProgramData\Portal\portal.env.

Подробнее: Устранение неполадок.