Skip to content
Snippets Groups Projects
Commit b9210e39 authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

Doc install

parent a088f1a7
No related branches found
No related tags found
No related merge requests found
...@@ -21,24 +21,14 @@ return [ ...@@ -21,24 +21,14 @@ return [
*/ */
'module' => [ 'module' => [
'default' => [
'redirect_to' => ['PPP.NNN@XXX.fr',], 'redirect_to' => ['PPP.NNN@XXX.fr',],
'do_not_send' => false, 'do_not_send' => false,
'redirect' => true, 'redirect' => true,
'subject_prefix' => 'Mes Formations', 'subject_prefix' => 'Mes Formations',
'from_name' => 'Mes Formations | Application de gestion des formations du personnel', 'from_name' => 'Mes Formations | Application de gestion des formations du personnel',
'from_email' => 'XXXX', 'from_email' => 'XXXX',
//'reply_to' => 'XXXX',
], ],
'Formation' => [
'redirect_to' => [ 'PPP.NNN@XXX.fr', ],
'do_not_send' => false,
'redirect' => true,
'subject_prefix' => 'Mes Formations',
'from_name' => 'Mes Formations | Application de gestion des formations du personnel',
'from_email' => 'XXXX',
]
]
], ],
]; ];
\ No newline at end of file
# Documentation pour l'installation et la configuration du projet
## Clonage du projet
Clonez le projet dans le répertoire `/var/www/html/` :
```bash
git clone https://git.unicaen.fr/open-source/mes-formations.git /var/www/html/
```
**Note :** À partir de cette étape, toutes les commandes et chemins supposent que vous êtes dans le répertoire
/var/www/html/.
## Mise à jour avec Composer
Rendez-vous dans le répertoire du projet et exécutez la commande suivante pour mettre à jour les dépendances :
```bash
composer update
```
**Note :** Attention à la configuration de votre proxy
## Configuration
La configuration à la charge de l'établissement est contenue dans les fichiers `local.dist` contenu dans le répertoire
`./config/autoload`.
Ces configurations doivent être adaptées aux besoins spécifiques de l'établissement, et l'extension `.dist` doit être
retirée.
Liste des fichiers distants :
- `database.local.php.dist`
- `local.php.dist`
- `synchro.local.php`
- `unicaen-app.local.php.dist`
- `unicaen-authentification.local.php.dist`
- `unicaen-evenement.local.php.dist`
- `unicaen-fichier.local.php.dist`
- `unicaen-ldap.local.php.dist`
- `unicaen-mail.local.php.dist`
## Installation sur le serveur
Lancez la commande suivante pour exécuter le processus d'installation :
```bash
./vendor/bin/laminas bddadmin:install
```
Après l'installation, vérifiez que les données ont été correctement insérées par la mise à jour.
## Création des répertoires nécessaires
Créez les répertoires suivants si ce n'est pas déjà fait :
```bash
mkdir -p ./data/DoctrineORMModule/Proxy
mkdir -p ./upload
```
Assurez-vous que ces répertoires ont les permissions appropriées.
## Configuration des paramètres PHP
Vérifiez que les paramètres suivants dans PHP sont correctement configurés à 0 :
session.cookie_lifetime
session.gc_maxlifetime
Pour vérifier, consultez la configuration PHP :
php -i | grep session.cookie_lifetime
php -i | grep session.gc_maxlifetime
Modification des paramètres
Si les valeurs ne sont pas correctes, modifiez le fichier /etc/php/8.2/fpm/php.ini et assurez-vous que les lignes
suivantes sont définies :
session.cookie_lifetime = 0
session.gc_maxlifetime = 0
Redémarrez le service PHP-FPM pour appliquer les modifications :
systemctl restart php-fpm
## Mise en place de la synchronisation et execution de celle-ci
Configurez le fichier de synchronisation selon les besoins du projet et les fichiers de base de données sources comme
décrit dans [la documentation sur les connecteurs](connecteurs.md).
Pour lancer la synchronisation suivez les dernières étapes de la documentation associée.
Documentation pour l'installation et la configuration du projet
===
1. [Présupposition](#présupposition)
2. [Installation](#installation-de-php8-des-modulesextensions-utiles-et-autres-choses-utiles)
3. [Configuration](#configuration)
4. [Installation du modèle de données et données de base](#installation-du-modèle-de-données-et-données-de-base)
5. [Synchronisation des données du SIRH](#synchronisation-des-données-de-votre-sirh)
6. [Paramètrages](#paramètrages)
7. [Troubleshooting](#troubleshooting)
---
# Présupposition
Les présuppositions suivantes seront faites ici, mais elles peuvent être contournées.
## Système d'exploitation
**Le serveur utilise `debian` comme système d'exploitation**.
Une autre distribution linux peut-être utilisée facilement en modifiant légèrement les commandes systèmes utilisées.
Il sera en revanche surement plus complexe de réaliser l'installation sous MacOS ou Windows.
**Mes Formations** n'a pas été testée sous ces autres systèmes d'exploitations.
## Moteur web et PHP
**Nous utilisons PHP-FPM et Apache sur les instances de l'Université de Caen Normandie**.
Il est surement possible d'en utiliser ici d'autres en adaptant les configurations qui seront décrites dans la suite.
## Supposition sur le système
**Nous supposerons aussi que si le serveur est derrière un proxy alors les variables d'environnement associées sont bien positionnées**.
Notamment les variables `http_proxy` et `https_proxy`.
**Nous supposerons que Mes Formations sera installée dans le répertoire `/var/www/html` du serveur**.
Ceci est facilement contournable en modifiant les configurations du serveur web.
## Base de données interne
**La base de données de Mes Formations est une base de données `pgsql` avec l'extension `unaccent` (qu'il faut penser à installer et s'assurer que l'application/usager pourra utiliser).
---
# Installation de PHP8, des modules/extensions utiles et autres choses utiles
L'installation de PHP8 et des modules/extensions se fait directement avec le gestionnaire de paquet de la distribution utilisée ; dans le cas de `debian` il s'agit de `apt`.
```bash
user@serveur:/var/www/html$ apt install php-fpm
user@serveur:/var/www/html$ apt install php8.2-bcmath php8.2-intl php8.2-ldap php8.2-xml php8.2-mbstring php8.2-gd php8.2-curl php8.2-pgsql
```
On aura besoin de l'application **git** pour la récupération du dépôt et les futures mises à jour
```bash
user@serveur:~$ apt install git
```
On aura besoin de composer (en version 2.x) pour la récupération des bibliothèques php.
```bash
user@serveur:~$ apt install composer
```
# Récupération du dépôt et des bibliothèques associées
La prochaine étape consiste à cloner le dépôt.
```bash
user@serveur:~$ cd /var/www
user@serveur:/var/www$ git clone https://git.unicaen.fr/open-source/mes-formations.git html
```
Le fichier `composer.json` contient la liste des bibliothèques nécessaires.
Elle s'installe grâce à `composer`.
```bash
user@serveur:/var/www$ cd html
user@serveur:/var/www/html$ composer install
```
## Création des répertoires nécessaires
Créez les répertoires suivants si ce n'est pas déjà fait :
```bash
user@serveur:/var/www/html$ mkdir -p ./data/DoctrineORMModule/Proxy
user@serveur:/var/www/html$ mkdir -p ./upload
```
Assurez-vous que ces répertoires ont les permissions appropriées.
---
# Configuration
La configuration à la charge de l'établissement est contenue dans les fichiers `local.dist` contenus dans le répertoire `./config/autoload`.
Ces configurations doivent être adaptées aux besoins spécifiques de l'établissement, et l'extension `.dist` doit être retirée.
Liste des fichiers distants :
- `database-app.local.php.dist`
- `database-sirh.local.php.dist`
- `local.php.dist`
- `synchro.local.php.dist`
- `unicaen-app.local.php.dist`
- `unicaen-authentification.local.php.dist`
- `unicaen-evenement.local.php.dist`
- `unicaen-fichier.local.php.dist`
- `unicaen-ldap.local.php.dist`
- `unicaen-mail.local.php.dist`
## Configuration des BDD et de BDDADMIN
La configuration de l'envoi des courriers électroniques passe par le fichier `database-app.local.php` et `database-sirh.local.php`.
Il est nécessaire de récupérer la configuration et d'adapter celle-ci.
```bash
user@serveur:/var/www/html$ cp config/autoload/database-app.local.php.dist config/autoload/database-app.local.php
user@serveur:/var/www/html$ cp config/autoload/database-sirh.local.php.dist config/autoload/database-sirh.local.php
```
Il y a deux connexions à paramétrer :
- la connexion à la base de données de **Mes Formations** `orm_default`
- la connexion à la base de données du concentrateur de données ou SIRH `orm_sirh`
Pour la configuration, il est nécessaire de préciser le serveur, la base, l'utilisateur et le mot de passe dans les clefs correspondantes.
Pour simplifier le paramétrage, les déclarations des secrets liés aux bases de données passent par des constantes.
## Configuration de l'envoi des courriers électroniques
La configuration de l'envoi des courriers électroniques passe par le fichier unicaen-mail.local.php.
Il est nécessaire de récupérer la configuration et d'adapter celle-ci.
```bash
user@serveur:/var/www/html$ cp vendor/unicaen/mail/config/unicaen-mail.local.php.dist config/autoload/unicaen-mail.local.php
```
Dans ce fichier, on retrouve :
1. le paramètrage sur SMTP ;
2. le paramètrage du comportement de l'envoi des courriers électronique.
La configuration du SMTP passe par la clef `transport_options`
```php
'transport_options' => [
'host' => 'smtp.mon-etablissement.fr',
'port' => 25,
],
```
La configuration du comportement passe par la déclaration des clefs suivantes :
- `do_not_send` si à `true` aucun courrier n'est envoyé ;
- `redirect` si à `true` alors les courriers seront tous redirigés vers les adresses de la clef `redirect_to` ;
- `redirect_to` est un tableau d'adresse électronique vers qui les courriers seront redirigés (la virgule est le séparateur) ;
- `subject_prefix` est le préfixe des sujets des courriers (si la valeur est 'MesFormations' alors les sujets seront "[MesFormations] Mon sujet de courrier" ;
- `from_name` est le nom de l'expéditeur
- `from_email` est l'adresse électronique de l'expéditeur
- `reply_to` est l'adresse fournit pour la réponse à un courrier expédié par l'application
**N.B.** :
Attention Mes Formations peut envoyer beaucoup de mail.
Il est nécessaire de white-lister l'adresse électronique d'expédition des courriers électroniques et/ou d'utiliser une adresse `noreply` et de bien paramètrer la clef `reply_to`.
## Paramétrage de l'authentification
L'authentification est à paramétrer par le biais de deux fichiers :
1. `config/autoload/unicaen-ldap.local.php` paramètrage de l'accés au LDAP
2. `config/autoload/unicaen-authentification.local.php` paramètrage des modes d'authentification
### Tout d'abord renommé les fichiers dist
```bash
user@serveur:/var/www/html$ mv config/autoload/unicaen-ldap.local.php.dist config/autoload/unicaen-ldap.local.php
user@serveur:/var/www/html$ mv config/autoload/unicaen-authentification.local.php.dist config/autoload/unicaen-authentification.local.php
```
### Paramétrage dans le fichier `config/autoload/unicaen-ldap.local.php`
Ce paramètrage est assez immédiat ici, il s'agit de paramètrer l'accés au ldap pour la récupération d'information sur les utilisateurs connectés.
Attention en fonction des identifiants de l'établissement à décommenter la bonne ligne à propos de `accountFilterFormat`.
**N.B: **
- Pour Caen, il s'agit du `supannEmpId`
- Pour Aix-Marseille et Rouen, il s'agit de l'`uid`
### Paramétrage dans le fichier `config/autoload/unicaen-authentification.local.php`
Dans ce fichier, il est question de paramètrer le mode d'authentification parmi : CAS, LDAP (et compte local), et shibboleth (pas de test réalisé ici pour le moment).
L'activation de CAS passe par la déclaration du serveur à contact
```php
'cas' => [
// laisser vide si pas de cas
'connection' => [
'default' => [
'params' => [
'hostname' => 'cas.XXXX.fr',
'port' => XXX,
'version' => "2.0",
'uri' => "",
'debug' => false,
],
],
],
'form_skip' => true,
],
```
**N.B. :** form_skip permet d'éviter le formulaire d'identification si l'utilisateur a déjà un jeton d'identification valide
L'activation de LDAP passe par le fait de positionner la variable `enable` à true de même pour les comptes locaux `db`.
```php
'local' => [
'order' => 2,
'enabled' => true,
'description' => "Utilisez ce formulaire si vous possédez un compte LDAP établissement ou un compte local dédié à l'application.",
'db' => [
// doit être activé pour que l'usurpation fonctionne (cf. Authentication/Storage/Db::read()) :-/
'enabled' => true,
],
'ldap' => [
'enabled' => true,
'username' => XXX,
],
],
```
## Paramétrer le comportement des messages d'erreur `config/autoload/local.php`
Ce fichier permet de paramètrer l'affichage des différents messages d'erreur.
```bash
user@serveur:/var/www/html$ mv config/autoload/local.php.dist config/autoload/local.php
```
## Paramétrer les liens externes de l'application
Ce fichier permet de paramètrer les liens externes notamment du pied de page
```bash
user@serveur:/var/www/html$ mv config/autoload/unicaen-app.local.php.dist config/autoload/unicaen-app.local.php
```
---
# Installation du modèle de données et données de base
Lancez la commande suivante pour exécuter le processus d'installation :
```bash
user@serveur:/var/www/html$ ./vendor/bin/laminas bddadmin:install
```
Après l'installation, vérifiez que les données ont été correctement insérées par la mise à jour.
---
# Synchronisation des données de votre SIRH
Configurez le fichier de synchronisation selon les besoins du projet et les fichiers de base de données sources comme
décrit dans [la documentation sur les connecteurs](connecteurs.md).
Pour lancer la synchronisation, suivez lancer la commande suivante :
```bash
user@serveur:/var/www/html$ ./vendor/bin/laminas synchroniser
```
**N.B.** : Il est possible de réaliser la synchronisation d'une table individuellement via la commande
```bash
user@serveur:/var/www/html$ ./vendor/bin/laminas synchroniser SYNCHO_NAME
```
**N.B.** : Une bonne pratique est de paramètrer la synchronisation dans un cron.
Par exemple
```cron
0 7 * * 1-5 /var/www/html/vendor/bin/laminas synchroniser
```
---
# Paramètrages
## Les paramètres de l'application
Les paramètres de l'application sont déclarés et modifiable directement en back office dans la partie Administration > Paramètres
## Les templates
Les templates de l'application sont déclarés et modifiable directement en back office dans la partie Administration > Template
---
# Troubleshooting
## Aucune résolution de lien
Pensez à vérifier que dans la déclaration du VirtualHost la close suivante soit bien déclarée :
```
RewriteEngine On
```
## Configuration des paramètres PHP
Vérifiez que les paramètres suivants dans PHP sont correctement configurés à 0 :
session.cookie_lifetime
session.gc_maxlifetime
Pour vérifier, consultez la configuration PHP :
php -i | grep session.cookie_lifetime
php -i | grep session.gc_maxlifetime
Modification des paramètres
Si les valeurs ne sont pas correctes, modifiez le fichier /etc/php/8.2/fpm/php.ini et assurez-vous que les lignes
suivantes sont définies :
session.cookie_lifetime = 0
session.gc_maxlifetime = 0
Redémarrez le service PHP-FPM pour appliquer les modifications :
systemctl restart php-fpm
## 1.0.6 (09/12/2024)
* Ajout d'un privilège pour le menu Extractions
* Correction des comptages pour les inscrits au session
* Correction des tris des sessions
## 1.0.5 (06/12/2024)
* Transformation des émargements en un template
* Ajout de la notification de rappel au responsable qui n'aurait pas validé ou refusé la demande de formation
* Ajout de la possibilité de notifier les inscrit·es pour les prevenir d'un changement ou d'une demande particulière
* Poursuite des changements des tableaux de bord des gestionnaires
* Modification du comportement du bouton "changer état" des sessions pour ne pas provoquer de notification
* Ajout de rapport pour les opérations faisant évoluer les états des sessions
## 1.0.4 (29/11/2024)
* Amélioration des interfaces pour les gestionnaires de formations
* Ajout d'écrans et d'indicateurs pour la gestion des désistements
* Ajout de la possibilité de fournir un motif d'annulation d'une session (et de l'exploiter pour les notifications)
* Ajout d'export des personnes formées
* Ajout de blocage des agents déjà inscrit à des formations à la même date et du nombre d'inscrits
* Affichage du lieu (général) des formations sur les écrans listant les sessions
* Correction des problèmes de changement d'état des inscriptions à l'annulation d'une session
## 1.0.3 (18/11/2024)
* Ajout d'écran pour les référent·es de domaine de formation : insciptions et sessions
* Correction de la gestion des justifications et amélioration de leurs affichages
* Amélioration des écrans des valideur·euses et des responsables de structure
* Possibilité de révoquer les chaînes de validation remontant des SI (via les synchronisations)
## 1.0.2 (13/11/2024)
* Correction d'une mention oubliée à EMC2 dans le pied de page des documents générés
* Possibilité de contrôler du logo de l'application via un paramêtre
* Amélioration de la visibilité des inscrits à une formation et des privileges pour l'affichage des sessions
* Correction des destinataires de la notification de validation
* Ajout de filtrage sur les écrans des historiques de formations
## 1.0.1 (06/11/2024)
* Correction du bug tentant des référents mal déclarés
* Amélioration de divers affichages remontés comme non pratique par les premiers usagers
...@@ -24,6 +24,7 @@ Vous retrouverez dans le fichier [connecteurs.md](documentation/docs/connecteurs ...@@ -24,6 +24,7 @@ Vous retrouverez dans le fichier [connecteurs.md](documentation/docs/connecteurs
## Installation ## Installation
Pour installer **Mes Formations**, vous pouvez suivre la procédure d'installation décrite dans le fichier [installation.md](documentation/docs/installation.md)
# Changements # Changements
...@@ -35,56 +36,13 @@ Vous retrouverez dans le fichier [connecteurs.md](documentation/docs/connecteurs ...@@ -35,56 +36,13 @@ Vous retrouverez dans le fichier [connecteurs.md](documentation/docs/connecteurs
* Remise en place de l'import de chaine de validation via un CSV + interface associée * Remise en place de l'import de chaine de validation via un CSV + interface associée
* Ajout d'un menu de navigation rapide pour la page des plans de formation courants * Ajout d'un menu de navigation rapide pour la page des plans de formation courants
## 1.0.6 (09/12/2024)
* Ajout d'un privilège pour le menu Extractions
* Correction des comptages pour les inscrits au session
* Correction des tris des sessions
## 1.0.5 (06/12/2024)
* Transformation des émargements en un template
* Ajout de la notification de rappel au responsable qui n'aurait pas validé ou refusé la demande de formation
* Ajout de la possibilité de notifier les inscrit·es pour les prevenir d'un changement ou d'une demande particulière
* Poursuite des changements des tableaux de bord des gestionnaires
* Modification du comportement du bouton "changer état" des sessions pour ne pas provoquer de notification
* Ajout de rapport pour les opérations faisant évoluer les états des sessions
## 1.0.4 (29/11/2024)
* Amélioration des interfaces pour les gestionnaires de formations
* Ajout d'écrans et d'indicateurs pour la gestion des désistements
* Ajout de la possibilité de fournir un motif d'annulation d'une session (et de l'exploiter pour les notifications)
* Ajout d'export des personnes formées
* Ajout de blocage des agents déjà inscrit à des formations à la même date et du nombre d'inscrits
* Affichage du lieu (général) des formations sur les écrans listant les sessions
* Correction des problèmes de changement d'état des inscriptions à l'annulation d'une session
## 1.0.3 (18/11/2024)
* Ajout d'écran pour les référent·es de domaine de formation : insciptions et sessions
* Correction de la gestion des justifications et amélioration de leurs affichages
* Amélioration des écrans des valideur·euses et des responsables de structure
* Possibilité de révoquer les chaînes de validation remontant des SI (via les synchronisations)
## 1.0.2 (13/11/2024)
* Correction d'une mention oubliée à EMC2 dans le pied de page des documents générés
* Possibilité de contrôler du logo de l'application via un paramêtre
* Amélioration de la visibilité des inscrits à une formation et des privileges pour l'affichage des sessions
* Correction des destinataires de la notification de validation
* Ajout de filtrage sur les écrans des historiques de formations
## 1.0.1 (06/11/2024)
* Correction du bug tentant des référents mal déclarés
* Amélioration de divers affichages remontés comme non pratique par les premiers usagers
## 1.0.0 (30/10/2024) ## 1.0.0 (30/10/2024)
Première version livrant la partie *formation du plan de formation* Première version livrant la partie *formation du plan de formation*
# Liens utiles # Liens utiles
- [Indicateurs](documentation/docs/indicateurs.md) - [Indicateurs](documentation/docs/indicateurs.md)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment