2023-04-16 23:47:55 +01:00
# ISN
2024-11-03 11:12:48 +00:00
Hébergement de paquets logiciels Nuget, fournissant une implémentation minimale de l'API Nuget V3
2023-04-16 23:47:55 +01:00
## Usage
2021-04-08 02:03:17 +01:00
````sh
2023-04-16 23:47:55 +01:00
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
2024-04-22 21:51:06 +01:00
Dans le dossier de la solution, compiler la solution :
2023-04-16 23:47:55 +01:00
````bash
dotnet build /restore -c Release
2024-04-22 21:51:06 +01:00
dotnet publish -c Release src/isnd
2023-04-16 23:47:55 +01:00
````
### Déploiement du serveur
2024-04-22 21:51:06 +01:00
La livraison initiale, aujourd'hui :
2023-04-16 23:47:55 +01:00
````bash
sudo mkdir -p /srv/www/isnd
2025-07-07 14:16:48 +01:00
sudo cp -a src/isnd/bin/Release/net9.0/publish/* /srv/www/isnd
2023-04-16 23:47:55 +01:00
sudo cp contrib/isnd.service /etc/systemd/system
2024-04-22 21:51:06 +01:00
chown -R isn:isn /srv/www/isnd/
2023-04-16 23:47:55 +01:00
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 :
2024-04-22 21:51:06 +01:00
* dans /etc/systemd/system/isnd.service , la connextion à une base de donnée Postresgql, sous la forme :
2023-04-16 23:47:55 +01:00
`"Server=<pgserver>;Port=<pgport>;Database=<dbname>;Username=<dbusername>;Password=<dbpass>;"`
2024-04-22 21:51:06 +01:00
* 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.
2023-04-16 23:47:55 +01:00
2024-04-22 21:51:06 +01:00
Pour faire ceci, vous pourrez éditer une copie du fichier `appsettings.json` vers `appsettings.Production.json` ,
2023-04-16 23:47:55 +01:00
pour renseigner toutes les valeurs spécifiées.
* Démarrer le serveur :
````bash
sudo systemctl start isnd
````
* Activation du serveur :
````bash
sudo systemctl enable isnd
````
### Installation du client
````bash
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
2021-04-08 02:03:17 +01:00
2024-03-24 16:53:12 +00:00
Dans le détail, la séquence serait du style :
2023-04-16 23:47:55 +01:00
````bash
# compiler tout
dotnet build -c Release
2025-07-07 14:16:48 +01:00
dotnet publish -c Release -f net9.0 src/isnd
2023-04-16 23:47:55 +01:00
# MAJ du serveur
sudo systemctl stop isnd
2025-07-07 14:16:48 +01:00
sudo cp -a src/isnd/bin/Release/net9.0/publish/* /srv/www/isnd
2023-04-16 23:47:55 +01:00
sudo systemctl start isnd
# MAJ du client
2025-07-07 14:16:48 +01:00
sudo cp -a src/isn/bin/Release/net9.0/* /usr/local/lib/isn
2024-02-12 02:21:50 +00:00
sudo chown -R root:root /usr/local/lib/isn
2021-04-08 02:03:17 +01:00
````
2024-03-24 16:53:12 +00:00
On pourra cibler "client-update" ou "server-update", à la construction :
````bash
make server-update
make client-update
````