Проект

Общее

Профиль

Поднимаем свой сервер NuGet

Добавил(а) Михаил Губин 3 месяца назад

Сервер NuGet — это инструмент для управления пакетами .NET, который позволяет разработчикам легко устанавливать, обновлять и удалять пакеты в своих проектах. Однако, вместо того чтобы использовать общедоступный сервер NuGet, многие предпочитают поднимать свой собственный сервер для повышения безопасности и контроля над своими пакетами.

В этой статье мы рассмотрим, как поднять свой сервер NuGet с помощью инструмента BaGet. BaGet — это open source-проект, который предоставляет сервер NuGet, совместимый с .NET Core и .NET 5+. Github-репозиторий: https://github.com/bagetter/BaGetter.

Вам может потребоваться sudo, так как нужны права администратора.

1. Создание каталога для сервера NuGet

Первым шагом является создание каталога для нашего сервера NuGet. Мы будем использовать команду sudo mkdir /opt/nuget для создания каталога /opt/nuget. В этот каталог мы установим программу.

2. Загрузка файла BaGet

Далее нам нужно загрузить файл BaGet. Для этого мы используем команду sudo wget https://github.com/bagetter/BaGetter/releases/download/v1.4.8/bagetter-1.4.8.zip. Эта команда загрузит файл BaGet в текущую директорию.

3. Распаковка файла BaGet

После загрузки файла BaGet, мы должны его распаковать. Используем команду sudo unzip bagetter-1.4.8.zip для распаковки файла.

4. Удаление файла BaGet

Теперь, когда файл BaGet распакован, мы можем удалить исходный файл BaGet. Используем команду sudo rm -rf bagetter-1.4.8.zip, чтобы удалить файл.

5. Установка .NET Core

Для работы с BaGet нам потребуется .NET Core. Мы можем установить его с помощью команды sudo snap install dotnet-runtime-80. Это установит последнюю версию .NET Core.

6. Создание символьной ссылки на .NET Core

Теперь нам нужно создать символьную ссылку на .NET Core, чтобы мы могли использовать его из командной строки. Используем команду sudo ln -s /snap/dotnet-runtime-80/current/dotnet /usr/bin/dotnet.

7. Настройка переменных окружения

Нам также нужно настроить переменные окружения для использования .NET Core. Откройте файл .bash_profile с помощью команды nano ~/.bash_profile и добавьте следующую строку: export DOTNET_ROOT="/snap/dotnet-runtime-80/current".

8. Перезапуск оболочки

После внесения изменений в .bash_profile, перезапустите оболочку, чтобы изменения вступили в силу. Это можно сделать командой source ~/.bash_profile.

9. Проверка установки

Чтобы проверить, что все установлено правильно, откройте новую командную строку и выполните команду dotnet --version. Вы должны увидеть версию .NET Core, которую вы установили.

10. Создание сервиса

Для постоянной работы NuGet нам потребуется создать сервис. Чтобы создать его, выполните следующую команду:

sudo tee /etc/systemd/system/baget.service <<EOF
[Unit]
Description=BaGet - the NuGet server
After=network.target

[Service]
WorkingDirectory=/opt/nuget/
ExecStart=/usr/bin/dotnet /opt/nuget/BaGetter.dll
Restart=always
RestartSec=10
SyslogIdentifier=BaGet-nuget-server
User=root
Environment=ASPNETCORE_URLS=http://0.0.0.0:9002/
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false

[Install]
WantedBy=multi-user.target
EOF

Вместо 9002 можно написать свой порт.

11. Запуск сервиса

Чтобы включить сервис и сразу его запустить, выполните следующую команду:

sudo systemctl enable baget --now

12. Завершение установки

Теперь вы можете проверить работу системы через команду sudo systemctl status baget. Если видите список процессов - все в порядке. Если же нет - проверяем журнал и настройки.


Комментарии