Go to file
Paul Schneider 913f2ae5dd Layout 1 year ago
.vscode dotnet package resolution 1 year ago
src Layout 1 year ago
test dotnet package resolution 1 year ago
.build No release yet 3 years ago
.gitignore REORG 2 years ago
.gitlab-ci.yml No release yet 3 years ago
LICENSE No release yet 3 years ago
Makefile registration and detail url's 2 years ago
README.md uodated : usefull 1 year ago
dotnet-tools.json WIP package resolution 1 year ago
gitversion.json unit testing 1 year ago
isn.sln No release yet 3 years ago
omnisharp.json REORG 2 years ago

README.md

ISN

Hébergement de paquets logiciels Nuget, fournissant une implémentation minimale de l'API Nuget V3

Usage


dotnet user-secrets set ConnectionStrings:DefaultConnection "Server=<lame-pgserver>;Port=<lame-pgport>;Database=<lame-dbname>;Username=<lame-dbusername>;Password=<lame-dbpass>;"

isnd&

# get an api-key from <http://localhost:5000/ApkKeys>

isn push -k <lame-api-key> -s http://localhost:5000/index.json your-lame-versionned.nupkg
wget http://localhost:5000/package/index.json?q=your&prerelease=true&semVerLevel=2.0.0

Installation

Compilation

Dans le dossier de la solution, compiler la solution :

dotnet build /restore -c Release
dotnet publish -c Release src/isnd

Déploiement du serveur

La livraison initiale, aujourd'hui :

sudo mkdir -p /srv/www/isnd
sudo cp -a src/isnd/bin/Release/net8.0/publish/* /srv/www/isnd
sudo cp contrib/isnd.service /etc/systemd/system
chown -R isn:isn /srv/www/isnd/
sudo systemctl daemon-reload

Une base de donées Postgresql est requise, avec, pour faire simple, son utilisateur, et le droit de créer des tables (ce dernier droit pourrait expirer, mais gare aux mises à jour).

Il faudra éditer la configuration pour indiquer :

  • dans /etc/systemd/system/isnd.service , la connextion à une base de donnée Postresgql, sous la forme : "Server=<pgserver>;Port=<pgport>;Database=<dbname>;Username=<dbusername>;Password=<dbpass>;"
  • dans /srv/www/isnd/appsettings.Production.json, la connection au serveur de messagerie,
  • l'URL externe du ou des sites à propulser, et à utiliser dans la description de service,
  • et les autres détails.

Pour faire ceci, vous pourrez éditer une copie du fichier appsettings.json vers appsettings.Production.json, pour renseigner toutes les valeurs spécifiées.

  • Démarrer le serveur :
sudo systemctl start isnd
  • Activation du serveur :
sudo systemctl enable isnd

Installation du client

sudo mkdir /usr/local/lib/isn
sudo cp -a src/isn/bin/Release/net6.0/* /usr/local/lib/isn
sudo chown -R root.root /usr/local/lib/isn
sudo ln -s /usr/local/lib/isn/isn /usr/local/bin/isn

Mises à jour

Dans le détail, la séquence serait du style :

# compiler tout
dotnet build -c Release
dotnet publish -c Release -f net8.0 src/isnd
# MAJ du serveur
sudo systemctl stop isnd
sudo cp -a src/isnd/bin/Release/net8.0/publish/* /srv/www/isnd
sudo systemctl start isnd
# MAJ du client
sudo cp -a src/isn/bin/Release/net8.0/* /usr/local/lib/isn
sudo chown -R root:root /usr/local/lib/isn

On pourra cibler "client-update" ou "server-update", à la construction :

make server-update
make client-update