Esup-Signature

Arborescence des pages

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

Sommaire

Lancer l'application en tant que service

Afin de gérer facilement les redémarrages de l'application, et notament le redémarage automatiques lors des reboots du serveur, il peut être nécessaire de configurer un service au niveau du systeme d'exploitation.

Voici un exemple de configuration de systemd pour chaque "mode" de démarrage d'esup-signature à mettre un fichier esup-signature.service dans /etc/systemd/system/ :

Lancement via tomcat


Bloc de code
languagebash
themeRDark
[Unit]
Description=Apache Tomcat Web Application Esup Signature
After=syslog.target network.target

[Service]
Type=forking

Environment=JAVA_HOME=/usr/lib/jvm/jdk-17.0.1
Environment=CATALINA_PID=/opt/tomcat-esup-signature/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat-esup-signature
ExecStart=/opt/tomcat-esup-signature/bin/startup.sh
ExecStop=/bin/kill -15 $MAINPID

User=tomcat
Group=tomcat

[Install]
WantedBy=multi-user.target


Lancement via maven

Bloc de code
languagebash
themeRDark
[Unit]
Description=Esup Signature

[Service]
User=esup
Group=esup
Environment=JAVA_HOME=/usr/lib/jvm/jdk-17.0.1
ExecStart=mvn spring-boot:run
WorkingDirectory=/opt/esup-signature/

[Install]
WantedBy=multi-user.target

Lancement du .war

Bloc de code
languagebash
themeRDark
[Unit]
Description=Esup Signature

[Service]
User=esup
Group=esup
Environment=JAVA_OPTS="--add-exports=java.base/sun.security.pkcs=ALL-UNNAMED -Xms2048m -Xmx4096m"
#Si votre serveur se situe derrière un proxy, il est possible de positionner la configuration dans Environnement comme suit :
#Environment=JAVA_OPTS="--add-exports=java.base/sun.security.pkcs=ALL-UNNAMED -Xms2048m -Xmx4096m -Dhttps.proxyHost=proxy.univ-ville.fr -Dhttps.proxyPort=3128 -Dhttp.proxyHost=proxy.univ-ville.fr -Dhttp.proxyPort=3128"
ExecStart=/opt/esup-signature/target/esup-signature.war --spring.config.location=/opt/esup-signature/application.yml -Dfile.encoding=UTF-8
WorkingDirectory=/opt/esup-signature/

[Install]
WantedBy=multi-user.target

...

Bloc de code
languagebash
themeRDark
systemctl start esup-signature.service
systemctl restart esup-signature.service
systemctl stop esup-signature.service

Mise en place d'un Apache en frontal

 Afin de publier esup-signature de manière securisée, il est possible de mettre un frontal Apache à l'aide du module mod_proxy.

...

Remarque

Dans le cas de l'utilisation d'un proxy (apache proxypass par exemple) il est conseillé d'utiliser le protocole AJP. Si cela n'est pas possible il faudra utiliser le module remoteip qui permet de transmettre l'adresse IP réel du client au serveur tomcat (cela n'est pas necessaire en AJP). Pour ce faire il faut activer le module coté Apache:

ajouter le fichier mod_remoteip.conf dans le dossier conf.d/ et y inscrire :


LoadModule remoteip_module modules/mod_remoteip.so
RemoteIPHeader X-Forwarded-For
RemoteIPTrustedProxy 127.0.0.1 ::1

et ajouter une valve dans la configuration du serveur tomcat (server.xml) :

<Valve className="org.apache.catalina.valves.RemoteIpValve"

 remoteIpHeader="x-forwarded-for"
proxiesHeader="x-forwarded-by"
protocolHeader="x-forwarded-proto" />


Gestion des sources avec git


Info

Pour gérer plus facilement les sources sur le serveur d'exploitation il est conseillé d'utiliser git.

Le dépôt d'origine d'esup-signature se trouve sur github https://github.com/EsupPortail/esup-signature. Le dépôt fonctionne ainsi :

  • la branche "master" contient le code de la dernière release
  • la branche "test" contient les commits compris entre la dernière et la prochaine release

Des tags sont créés pour chaque version importante du code voir : Change log , https://github.com/EsupPortail/esup-signature/tags

Clonage

Comme expliqué dans la documentation d'installation, il est préférable de cloner le dépôt git sur le serveur qui héberge esup-signature. Pour cela on commence par faire :

...

Le dépôt sera copié dans ./esup-signature, vous pouvez rester sur la branche master (branche git par défaut)

Commit de la configuration de production

Dans le cas ou vous voulez concerver le fichier de configuration dans votre dépôt local, vous devez créer un commit de production pour "sauvegarder" vos modifications. Grace à cela lorsque que vous récupérerez les prochaines versions vos modifications seront reprises (et pourront potentiellement donner lieu à des conflits)

...

Remarque

Si votre configuration est externalisée (utilisation de --spring.config.location), on conseil de créer un dépôt local contenant votre fichier. Cela pemettra de revenir sur une anciènne version si besoin.


Mise à jour d'esup-signature

Il faut tout d'abord mettre à jour votre dépôt local depuis le dépôt github

...

Remarque

Si précisé dans la page Change log , ne pas oublier de passer le script de mise à jour de base de données après avoir fait "mvn clean package"

Mise à jour de la base de données


Pour monter de version il se peut que des scripts doivent être lancer. Pour ce faire il faut d'abord compiler une première fois les sources pour que le schéma de la base soit à jour. Ensuite, il faut passer le script correspondant présent dans "src/main/resources/update_X.X.sql".

...

Bloc de code
languagebash
themeRDark
su postgres
psql -d 'nom_base_esupsignature' < 'chemin/nom_script.sql'


Sauvegarde / Restauration

Voici un exemple de tache planifiée pour une sauvegarde quotidienne :

...

Bloc de code
languagebash
themeRDark
pg_restore -d esupsignature --no-owner --role <nom_de_l_utilisateur> /backup/esup-signature/esupsignature-dump/

Contrôle / Archivage / Purge des données

Lorsqu'une adresse est configurée au niveau la propriété archive-uri du fichier de configuration application.yml le système va tenter d'y archiver les documents signés (Demandes terminées). 

...