Записки и мысли: Поднимаем свой сервер NuGet
Сервер 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
. Если видите список процессов - все в порядке. Если же нет - проверяем журнал и настройки.