BaGet (prononcé « baguette ») est un serveur NuGet et de un serveur de symboles léger. Il est open source, multiplateforme et prêt pour le cloud!
Vous trouverez la documentation complète de BaGet depuis cette url : https://loic-sharma.github.io/BaGet/.

Etape 1 – Installer Dotnet Sdk 3.1
Voici la procédure pour installer le Dotnet SDK 3.1
wget https://download.visualstudio.microsoft.com/download/pr/ec187f12-929e-4aa7-8abc-2f52e147af1d/56b0dbb5da1c191bff2c271fcd6e6394/dotnet-sdk-3.1.404-linux-x64.tar.gz sudo mkdir -p "/usr/bin/dotnet-3.1" && sudo tar zxf dotnet-sdk-3.1.404-linux-x64.tar.gz -C "/usr/bin/dotnet-3.1" sudo nano ~/.bashrc export DOTNET_ROOT=/usr/bin/dotnet-3.1 export PATH=$PATH:/usr/bin/dotnet-3.1 source ~/.bashrc
Etape 2 – Installer Baget
cd /var/www mkdir BagetServer cd BagetServer wget https://github.com/loic-sharma/BaGet/releases/download/v0.3.0-preview4/BaGet.zip unzip BaGet.zip rm BaGet.zip
Etape 3 – Editer le fichier appsettings.json
sudo nano appsettings.json
{ "ApiKey": "hpumRCstvPUann5F", "Urls": "http://*:5002", "PackageDeletionBehavior": "HardDelete", "AllowPackageOverwrites": true, "Database": { "Type": "Sqlite", "ConnectionString": "Data Source=baget.db" }, "Storage": { "Type": "FileSystem", "Path": "" }, "Search": { "Type": "Database" }, "Mirror": { "Enabled": false, "PackageSource": "https://api.nuget.org/v3/index.json" }, "Logging": { "IncludeScopes": false, "Debug": { "LogLevel": { "Default": "Warning" } }, "Console": { "LogLevel": { "Microsoft.Hosting.Lifetime": "Information", "Default": "Warning" } } } }
Etape 4 – Installer le serveur web Nginx
sudo apt install nginx
Etape 5- Paramétrer le serveur web Nginx comme serveur proxy de Badget
sudo nano /etc/nginx/sites-enabled/default
server { listen 51.255.165.236:80; server_name mynuget.local; location / { proxy_pass http://localhost:5002; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection keep-alive; proxy_set_header Host $http_host; proxy_cache_bypass $http_upgrade; } }
Etape 6 -Créer un utilisateur baget
sudo adduser bagetuser --system --no-create-home
Attribuer des droits utilisateur badget au dossier /var/www/BagetServer :
sudo chown -R bagetuser:$USER /var/www/BagetServer/
Etape 7 – Créer le service badget
sudo nano /etc/systemd/system/baget.service sudo chown -R badgetuser:$USER /var/www/BagetServer/
[Unit] Description=Baget service [Service] WorkingDirectory=/var/www/BagetServer ExecStart=/usr/bin/dotnet-3.1/dotnet /home/christophe/Bureau/BagetServer/BaGet.dll Restart=always # Restart service after 10 seconds if the dotnet service crashes: RestartSec=10 KillSignal=SIGINT SyslogIdentifier=dotnet-baget User=bagetuser Environment=ASPNETCORE_ENVIRONMENT=Production Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false [Install] WantedBy=multi-user.target
Enregistrez le fichier et activez le service :
sudo systemctl enable baget.service
Démarrer le service :
sudo service baget restart
Etape 8-Redémarrer le serveur Nginx
sudo service nginx restart
Baget est dés lors accessible depuis l’url : http://mynuget.local/

Etape 9 – Ajouter un nouveau package
dotnet nuget push myLib.1.0.nupkg -s http://mynuget.local/v3/index.json -k hpumRCstvPUann5F
Dans cet exemple la clé d’API est : hpumRCstvPUann5F

Si vous voulez supprimer le package, il suffit de taper la commande suivante:
dotnet nuget delete myLib 1.0.0 -s http://mynuget.local/v3/index.json -k hpumRCstvPUann5F --non-interactive
Dans cet exemple la clé d’API est : hpumRCstvPUann5F
Vous trouverez un exemple d’utilisation du package myLib dans un projet console. Ce dernier est disponible sur mon dépôt Gitea :
https://gitea.brachet-christophe.fr/christophe/projet-utilisant-baget