Установка NuGet2 под Windows 2016 Server
Предварительные требования для PostgreSQL
Если используется PostgreSql необходимо установить на сервере БД расширение для PostgreSql citext (если не установлено):
sudo apt-get install postgresql-contrib-13Создаем БД ltoolsnuget в которой устанавливаем расширение citext:
sudo -i -u postgres psql -U postgres -c 'create database ltoolsnuget;'
sudo -i -u postgres psql -d ltoolsnuget -c 'CREATE EXTENSION IF NOT EXISTS citext WITH SCHEMA public;'Установка и настройка NuGet2
Разархивируем C:\Install\NuGet2.zip в C:\Primo\NuGet2
Редактируем конфиг NuGet2 (C:\Primo\NuGet2\appsettings.ProdWin.json):
Устанавливаем ApiKey (произвольная строка), предварительно зашифровав его, и ConnectionString с зашифрованным паролем:

Проверяем, что значение системной переменной окружения DOTNET_ENVIRONMENT равно ProdWin. Для этого в PoweShell выполняем команду:
[Environment]::GetEnvironmentVariable('ASPNETCORE_ENVIRONMENT', 'Machine')Создаем системную переменную окружения ASPNETCORE_ENVIRONMENT, если она не создана ранее. Для этого в PowerShell выполняем команду:
> [System.Environment]::SetEnvironmentVariable('ASPNETCORE_ENVIRONMENT', 'ProdWin', [System.EnvironmentVariableTarget]::Machine)Регистрируем BaGet.exe как службу Windows и сразу запускаем её. Служба должна работать как локальная служба. Для этого в PoweShell последовательно выполняем команды:
New-Service -Name Primo.Orchestrator.Nuget -BinaryPathName "C:\Primo\NuGet2\BaGet.exe" -Description "Primo.Orchestrator.Nuget" -DisplayName "Primo.Orchestrator.Nuget" -StartupType Automatic
$s = Get-Service "Primo.Orchestrator.Nuget "
$s.Start()После чего созданная служба Primo.Orchestrator.Nuget будет отображаться в списке всех служб как запущенная.
Настройка WebApi
В конфигурационном файле WebApi appsettings.ProdWin.json задаем параметры интеграции с NuGet-сервером:

NuGetBaseUrl – адрес NuGet-сервера. Если порт в конфигурационном файле NuGet-сервера не менялся, и он на том же сервере, что и WebApi, остается без изменения.
ApiKey – такой же, как в конфигурационном файле NuGet-сервера.
🔸 Внешнее обращение в Nuget-серверу происходит через прокси (nginx/IIS). Поэтому сертификат у nginx/IIS обязательно должен быть валидным!
Обновление с версии 1.25.11
-
Перезапись пакетов: В файл
C:\Primo\NuGet2\appsettings.ProdWin.jsonдобавлена настройкаAllowPackageOverwrites. При значенииtrue(по умолчанию) система разрешает перезаписывать существующие пакеты на сервере. При значенииfalse** запрещает перезапись существующих пакетов. -
Таймаут операций: В конфигурации WebApi (
appsettings.ProdWin.json) в секции"NuGet"можно добавить параметр"Timeout"(в секундах) для контроля времени выполнения операций с NuGet-сервером.{ "NuGet": { "TaskPeriod": 2, "Timeout": 20 } }