Compare commits

...

3 Commits

6 changed files with 54 additions and 135 deletions

@ -18,6 +18,8 @@ wget http://localhost:5000/package/index.json?q=your&prerelease=true&semVerLevel
## Installation ## Installation
### Compilation
Depuis le dossier de la solution, compiler la solution : Depuis le dossier de la solution, compiler la solution :
````bash ````bash
@ -25,19 +27,31 @@ dotnet build /restore -c Release
dotnet publish -c Release dotnet publish -c Release
```` ````
### Déploiement ### Déploiement du serveur
Commençont par la livraison initiale, aujourd'hui :
````bash ````bash
sudo mkdir -p /srv/www/isnd sudo mkdir -p /srv/www/isnd
sudo cp -a src/isnd/bin/Release/net6.0/publish/* /srv/www/isnd sudo cp -a src/isnd/bin/Release/net7.0/publish/* /srv/www/isnd
sudo cp contrib/isnd /etc/init.d/isnd sudo cp contrib/isnd.service /etc/systemd/system
sudo chmod +x /etc/init.d/isnd
sudo chown -R www-data.www-data /srv/www/isnd
sudo systemctl daemon-reload sudo systemctl daemon-reload
```` ````
* Créer une base de donées Postgresql, Une base de donées Postgresql est requise, avec, pour faire simple,
* ajuster un fichier de configuration `/srv/www/isnd/appsettings.Production.json` 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=<pgserver>;Port=<pgport>;Database=<dbname>;Username=<dbusername>;Password=<dbpass>;"`
* 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 : * Démarrer le serveur :
````bash ````bash
@ -50,7 +64,6 @@ sudo systemctl start isnd
sudo systemctl enable isnd sudo systemctl enable isnd
```` ````
### Installation du client ### Installation du client
````bash ````bash
@ -63,7 +76,6 @@ sudo ln -s /usr/local/lib/isn/isn /usr/local/bin/isn
### Mises à jour ### Mises à jour
````bash ````bash
set -e
# compiler tout # compiler tout
dotnet build -c Release dotnet build -c Release
dotnet publish -c Release -f net7.0 src/isnd dotnet publish -c Release -f net7.0 src/isnd

@ -1,3 +0,0 @@
#!/bin/bash
/usr/bin/mono /usr/local/lib/isn/isn.exe $*

@ -1,110 +0,0 @@
#!/bin/bash
### BEGIN INIT INFO
# Provides: isnd
# Required-Start: $local_fs $network $named $time $syslog $postgresql
# Required-Stop: $local_fs $network $named $time $syslog $postgresql
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: Script to run asp.net 5 application in background
### END INIT INFO
# Author: Ivan Derevianko aka druss <drussilla7@gmail.com>
# Modified by: Paul Schneider <redienhcs.luap@gmail.com>
. /lib/init/vars.sh
. /lib/lsb/init-functions
NAME=isnd
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
TMP_SAVE_runlevel_VAR=$runlevel
unset runlevel
running() {
if [ -f $PIDFILE ]
then
PID=$(cat $PIDFILE)
if kill -0 $PID 2>/dev/null
then
return 0
fi
fi
return 1
}
export WWW_USER=www-data
export ROOT=/srv/www/${NAME}
export DESC="$NAME"
export PIDFILE=/var/run/kestrel-${NAME}.pid
export LOGDIR=/var/log
export DOTNET_CLI_HOME=$ROOT
export ASPDOTNETCORE_ENVIRONMENT=Production
export ASPDOTNETCORE_LOGLEVEL=Information
status() {
if running;
then
echo "Service running $DESC ($NAME; pid: $PID)"
else
echo "Service stopped $DESC ($NAME)"
fi
echo WWW_USER: $WWW_USER ROOT:$ROOT DESC: $DESC NAME: $NAME PIDFILE: $PIDFILE LOGDIR=$LOGDIR
}
start() {
if running; then
echo "Service already running $DESC" "$NAME"
log_end_msg 0
else
cd $ROOT
log_daemon_msg "Starting service $NAME for user $WWW_USER"
if ! start-stop-daemon -SbmCv -u $WWW_USER -p $PIDFILE -d $ROOT -g www-data -x /usr/bin/dotnet isnd.dll run > "${LOGDIR}/kestrel-${NAME}.log"
then
log_daemon_msg "Could not start $NAME : $?, see ${LOGDIR}/kestrel-${NAME}.log"
log_end_msg 2
else
log_daemon_msg "Service $DESC started ($NAME), logs: ${LOGDIR}/kestrel-${NAME}.log"
log_end_msg 0
fi
fi
}
stop() {
if running
then
log_daemon_msg "Stopping service $NAME"
start-stop-daemon -K -p "$PIDFILE"
log_daemon_msg "$DESC stopped"
log_end_msg 0
else
log_daemon_msg "$DESC Service not running"
log_end_msg 1
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
status
;;
*)
echo "Usage: $0 {start|stop|restart}"
esac
export runlevel=$TMP_SAVE_runlevel_VAR

@ -0,0 +1,28 @@
[Unit]
Description=isnd - a Nuget package repository daemon
After=syslog.target
After=network.target
Wants=postgresql.service
After=postgresql.service
[Service]
RestartSec=5s
Type=simple
User=isn
Group=isn
WorkingDirectory=/srv/www/isnd/
# If using Unix socket: tells systemd to create the /run/gitea folder, which will contain the gitea.sock file
# (manually creating /run/gitea doesn't work, because it would not persist across reboots)
#RuntimeDirectory=gitea
ExecStart=/srv/www/isnd/isnd
Restart=always
Environment=HOME=/srv/www/isnd
#CapabilityBoundingSet=CAP_NET_BIND_SERVICE
AmbientCapabilities=CAP_NET_BIND_SERVICE
[Install]
WantedBy=multi-user.target

@ -1,13 +0,0 @@
#!/bin/bash
set -e
# compiler tout
dotnet build -c Release
dotnet publish -c Release -f netcoreapp2.1 src/isnd
# MAJ du serveur
sudo systemctl stop isnd
sudo cp -a src/isnd/bin/Release/netcoreapp2.1/publish/* /srv/www/isnd
sudo systemctl start isnd
# MAJ du client
sudo cp -a src/isn/bin/Release/netcoreapp2.1/* /usr/local/lib/isn
sudo chown -R root.root /usr/local/lib/isn

@ -5,5 +5,10 @@
<div class="text-center"> <div class="text-center">
<h1 class="display-4">Bienvenue</h1> <h1 class="display-4">Bienvenue</h1>
<h1>Bienvenue dans isn</h1> <h1>Bienvenue dans isn</h1>
<p>
<strong>@Model.PkgCount identifiant(s) de paquet dans le SI</strong> <strong>@Model.PkgCount identifiant(s) de paquet dans le SI</strong>
</p>
</div>
<div style="text-align: center;">
<iframe width="560" height="315" src="https://crowdbunker.com/embed/admChkeiYFP" frameborder="0" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen scrolling="no" ></iframe>
</div> </div>
Loading…