# ISN En cours de developement, le détail du paquet n'est toujours pas fourni en API. ## Usage ````sh dotnet user-secrets set ConnectionStrings:DefaultConnection "Server=;Port=;Database=;Username=;Password=;" isnd& # get an api-key from isn push -k -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 Depuis le dossier de la solution, compiler la solution : ````bash dotnet build /restore -c Release dotnet publish -c Release ```` ### Déploiement du serveur Commençont par la livraison initiale, aujourd'hui : ````bash sudo mkdir -p /srv/www/isnd sudo cp -a src/isnd/bin/Release/net7.0/publish/* /srv/www/isnd sudo cp contrib/isnd.service /etc/systemd/system 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 : * la connextion à une base de donnée Postresgql, sous la forme : `"Server=;Port=;Database=;Username=;Password=;"` * la connection au serveur de messagerie, * l'URL du ou des sites à propulser, * 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 : ````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 Dans le détail, la séquence serait du style : ````bash # 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 : ````bash make server-update make client-update ````