détail ssur install ScoDoc 9

This commit is contained in:
Emmanuel Viennet 2021-09-24 20:31:25 +02:00
parent e713143096
commit 503bfca6e2
11 changed files with 163 additions and 103 deletions

View File

@ -121,23 +121,22 @@ d'une UE de type "Sport&Culture". Cette UE et modules associés doivent donc êt
prévu dans le programme pédagogique. prévu dans le programme pédagogique.
La règle par défaut, en vigueur à l'IUT de Villetaneuse, est la suivante: La règle par défaut, en vigueur à l'IUT de Villetaneuse, est la suivante:
*Les étudiants de l'IUT peuvent suivre des enseignements optionnels > Les étudiants de l'IUT peuvent suivre des enseignements optionnels
de l'Université Paris 13 (sports, musique, deuxième langue, > de l'Université Paris 13 (sports, musique, deuxième langue,
culture, etc) non rattachés à une unité d'enseignement. Les points > culture, etc) non rattachés à une unité d'enseignement. Les points
au-dessus de 10 sur 20 obtenus dans chacune des matières > au-dessus de 10 sur 20 obtenus dans chacune des matières
optionnelles sont cumulés et 5% de ces points cumulés s'ajoutent à > optionnelles sont cumulés et 5% de ces points cumulés s'ajoutent à
la moyenne générale du semestre déjà obtenue par l'étudiant. > la moyenne générale du semestre déjà obtenue par l'étudiant.
*
Mais la règle à appliquer dépend de l'établissement. Ainsi, l'Université de Mais la règle à appliquer dépend de l'établissement. Par exemple, l'Université de
Haute Alsace applique le règlement suivant: *Les étudiants de l'IUT peuvent Haute Alsace appliquait le règlement suivant: *Les étudiants de l'IUT peuvent
suivre des enseignements optionnels de l'U.H.A. (sports, musique, deuxième suivre des enseignements optionnels de l'U.H.A. (sports, musique, deuxième
langue, culture, etc) non rattachés à une unité d'enseignement. Les points langue, culture, etc) non rattachés à une unité d'enseignement. Les points
au-dessus de 10 sur 20 obtenus dans chacune des matières optionnelles sont au-dessus de 10 sur 20 obtenus dans chacune des matières optionnelles sont
cumulés dans la limite de 10 points. 5% de ces points cumulés s'ajoutent à la cumulés dans la limite de 10 points. 5% de ces points cumulés s'ajoutent à la
moyenne générale du semestre déjà obtenue par l'étudiant.* moyenne générale du semestre déjà obtenue par l'étudiant.*
L'administrateur peut changer la fonction de clacul du bonus sport via le L'administrateur peut changer la fonction de calcul du bonus sport via le
formulaire de configuration accessible (aux admin) depuis la page d'accueil. formulaire de configuration accessible (aux admin) depuis la page d'accueil.
Si vous souhaitez implémenter une nouvelle règle, il faut la coder en Python Si vous souhaitez implémenter une nouvelle règle, il faut la coder en Python
et modifier un fichier de configuration (non documenté, contacter la liste et modifier un fichier de configuration (non documenté, contacter la liste

View File

@ -49,11 +49,12 @@ passer par la page "Saisie des notes" et suivre le lien "Effacer toutes les note
### Configuration ### Configuration
#### Comment changer les logos sur les documents PDF (PV...) #### Comment changer les logos sur les documents PDF (PV...)
XXX à ré-écrire pour ScoDoc9
Ce n'est malheureusement pas encore simple. Il faut (pour l'instant) être administrateur sur le serveur ScoDoc, et passer
Il faut (pour l'instant) être administrateur sur le serveur ScoDoc. par l'onglet "configuration" accessible aux admins sur la page d'accueil.
Les logos sont stockés dans le répertoire `/opt/scodoc/var/scodoc/config/logos/` (anciennement dans `/opt/scodoc/Products/ScoDoc`) et doivent être des images JPEG (extension `.jpg`).
Les logos sont stockés dans le répertoire `/opt/scodoc-data/config/logos/` et
doivent être des images JPEG (extension `.jpg`).
Il faut aussi indiquer les tailles des images dans le fichier de configuration `config/scodoc_config.py`, variable `CONFIG.LOGO_FOOTER_HEIGHT` etc. Il faut aussi indiquer les tailles des images dans le fichier de configuration `config/scodoc_config.py`, variable `CONFIG.LOGO_FOOTER_HEIGHT` etc.
* Sur les PV, `logo_header.jpg` est affiché en haut, et `logo_header.jpg` en bas de la page. * Sur les PV, `logo_header.jpg` est affiché en haut, et `logo_header.jpg` en bas de la page.
@ -65,12 +66,19 @@ Il faut aussi indiquer les tailles des images dans le fichier de configuration `
#### Quel système d'exploitation ? #### Quel système d'exploitation ?
ScoDoc est accessible depuis n'importe quel navigateur Web (Firefox, Chrome, ...). ScoDoc est accessible depuis n'importe quel navigateur Web (Firefox, Chrome, ...).
Le serveur ScoDoc fonctionne sous linux. Il n'est testé qu'avec Debian (stable). Le script d'installation ( [GuideInstallDebianDix](GuideInstallDebianDix.md) ) assure l'installation de tout les éléments nécessaires au bon fonctionnement de ScoDoc. Une distribution sous forme de container Docker est prévue prochainement. Le serveur ScoDoc fonctionne sous linux. Il n'est testé qu'avec Debian (stable).
Le script d'installation ( [GuideInstallDebian11](GuideInstallDebian11.md) )
assure l'installation de tout les éléments nécessaires au bon fonctionnement de
ScoDoc. Une distribution sous forme de container Docker est envisagée.
#### Quand et comment mettre à jour le logiciel ? #### Quand et comment mettre à jour le logiciel ?
Des améliorations et corrections sont fréquemment introduites. Les plus importantes sont annoncées sur la liste de diffusion "[scodoc-annonces](https://listes.univ-paris13.fr/mailman/listinfo/scodoc-annonces)". Appliquer les mises à jour assez souvent, en suivant les instructions données sur [MisesAJour](MisesAJour.md). Des améliorations et corrections sont fréquemment introduites. Les plus
importantes sont annoncées sur la liste de diffusion
"[scodoc-annonces](https://listes.univ-paris13.fr/mailman/listinfo/scodoc-annonces)".
Les mises à jour sont normalement automatiquement appliquées chaque semaine.
Voir aussi la page [MisesAJour](MisesAJour.md).
@ -81,29 +89,30 @@ Voir [SauvegardesBases](SauvegardesBases.md).
#### Où sont les journaux (logs) ? #### Où sont les journaux (logs) ?
En cas de problème (bug, erreur de manipulation, suspicion de piratage), différents journaux peuvent être consultés. En cas de problème (bug, erreur de manipulation, suspicion de piratage), différents journaux peuvent être consultés.
* Le journal du serveur Web Apache * Le journal du serveur Web nginx
``` ```
/var/log/apache2/scodoc_access.log /var/log/nginx/scodoc*.log
``` ```
* les opérations effectuées sur un étudiant sont accessibles via le menu "Etudiant" / "Voir le journal..." en haut de la fiche individuelle de l'étudiant. * les opérations effectuées sur un étudiant sont accessibles via le menu "Etudiant" / "Voir le journal..." en haut de la fiche individuelle de l'étudiant.
* le fichier `/opt/scodoc/log/notes.log` reçoit des messages de déboggage de ScoDoc. (c'est là que sont écrits les messages envoyés par la fonction `log()` dans le code de ScoDoc). * le fichier `/opt/scodoc-data/log/scodoc.log` reçoit des messages de déboggage de ScoDoc. (c'est là que sont écrits les messages envoyés par la fonction `log()` dans le code de ScoDoc).
* le fichier `/opt/scodoc/log/events.log` reçoit des messages de déboggage du serveur Zope (démarrages/arrêts, erreurs d'authentification, bugs liés à des problèmes d'installation, etc.)
#### Je n'ai pas de certificat SSL ! #### Je n'ai pas de certificat SSL !
Il est de plus en plus important d'installer un certificat SSL; les navigateurs Web sont de plus en plus méfiants et vos utilisateurs seront très gênés si votre ScoDoc n'a pas de certificat valide. Il est de plus en plus important d'installer un certificat SSL; les navigateurs Web sont de plus en plus méfiants et vos utilisateurs seront très gênés si votre ScoDoc n'a pas de certificat valide.
Si votre établissement (par exemple via RENATER) ne vous fournit pas de de certificat, je conseille de passer par <a href="https://letsencrypt.org/fr/">Let's Encrypt</a> dont l'utilisation est très simple et rapide. Si votre établissement (par exemple via RENATER) ne vous fournit pas de de certificat, je conseille de passer par <a href="https://letsencrypt.org/fr/">Let's Encrypt</a> dont l'utilisation est très simple et rapide.
Pour vos tests en local, avec Chrome, modifier le paramétrage en réglant: `chrome://flags/#allow-insecure-localhost`. Pour vos tests en local, avec Chrome, modifier le paramétrage en réglant:
`chrome://flags/#allow-insecure-localhost` (et/ou taper "thisisunsafe" sur la
page bloquée).
#### Comment supprimer un département ? #### Comment supprimer un département ?
La suppression d'un département efface toutes les données: étudiants, notes, etc. Se connecter sur ScoDoc (Web) comme administrateur, suivre le lien `Administration de scodoc` sur la page d'accueil, et supprimer le département. Cette opération retire le département de l'application Web, mais ne supprime pas la base de données du serveur. Pour cela, se connecter (en ssh) en tant que `root` sur le serveur, aller dans le répertoire `/opt/scodoc/Products/ScoDoc/config` et lancer le script `./delete_dept.sh`. Voir les commandes d'administration dans [GuideConfig](GuideConfig.md)
#### Comment contribuer au projet ? #### Comment contribuer au projet ?
[Voir la page](Contribuer.md). [Voir la page](Contribuer.md).

View File

@ -32,19 +32,19 @@ Exemples:
* Le max de deux évaluations: `max( notes[0], notes[1] )` (*voir une meilleure approche plus bas*) * Le max de deux évaluations: `max( notes[0], notes[1] )` (*voir une meilleure approche plus bas*)
* La moyenne classique: `dot( notes, coefs ) / sum(coefs)` (la fonction dot est le produit scalaire habituel) * La moyenne classique: `dot( notes, coefs ) / sum(coefs)` (la fonction dot est le produit scalaire habituel)
* Ajouter 1 à la moyenne: `ifelse(moy_valid, min(moy_val + 1, 20), moy)` * Ajouter 1 à la moyenne: `ifelse(moy_is_valid, min(moy_val + 1, 20), moy)`
* `ifelse(condition, valeur_si_vrai, valeur_si_faux)` * `ifelse(condition, valeur_si_vrai, valeur_si_faux)`
* on utilise `min` car le résultat ne doit en aucun cas dépasser 20 * on utilise `min` car le résultat ne doit en aucun cas dépasser 20
* pour le calcul, on utilise la variable `moy_val` (un nombre) * pour le calcul, on utilise la variable `moy_val` (un nombre)
* si la moyenne n'est pas valide, on renvoie la valeur `moy` (ce qui permet de garder le bon code) * si la moyenne n'est pas valide, on renvoie la valeur `moy` (ce qui permet de garder le bon code)
* Le max de deux évaluations, en résistant aux notes manquantes: `ifelse(moy_valid, max(notes[0], notes[1]), moy)` * Le max de deux évaluations, en résistant aux notes manquantes: `ifelse(moy_is_valid, max(notes[0], notes[1]), moy)`
Autres variables définies dans les formules: Autres variables définies dans les formules:
* moy : la valeur de la moyenne calculée classiquement (somme pondérée) <img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;" alt="/!\" /> *attention, ce n'est pas forcément un nombre !* * moy : la valeur de la moyenne calculée classiquement (somme pondérée) <img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;" alt="/!\" /> *attention, ce n'est pas forcément un nombre !*
* moy_val: la valeur de la moyenne (moy) (toujours un nombre, valant 0 si moyenne invalide) * moy_val: la valeur de la moyenne (moy) (toujours un nombre, valant 0 si moyenne invalide)
* moy_valid: vrai si la moyenne (moy) est valide (numérique). Par exemple, si absence EXCusée, la moyenne n'est pas valide. * moy_is_valid: vrai si la moyenne (moy) est valide (numérique). Par exemple, si absence EXCusée, la moyenne n'est pas valide.
* cmask : un vecteur de 0/1, 0 si l'évaluation correspondante n'a pas de note, 1 sinon. * cmask : un vecteur de 0/1, 0 si l'évaluation correspondante n'a pas de note, 1 sinon.
* nbabs : nombre d'absences de l'étudiant dans le semestre (en demi-journées) * nbabs : nombre d'absences de l'étudiant dans le semestre (en demi-journées)
* nbabs_just: nombre d'absences *justifiées* de l'étudiant dans le semestre (en demi-journées) * nbabs_just: nombre d'absences *justifiées* de l'étudiant dans le semestre (en demi-journées)
@ -62,7 +62,7 @@ Ainsi, la moyenne du module `BD1` serait aussi accessible comme la variable `not
Exemple: dans une UE, on veut ajouter la note du module SPORT (qui aurait été défini avec un coefficient nul dans le programme), on écrira: Exemple: dans une UE, on veut ajouter la note du module SPORT (qui aurait été défini avec un coefficient nul dans le programme), on écrira:
``` ```
ifelse(moy_valid, min(moy_val+notes['SPORT'], 20), moy) ifelse(moy_is_valid, min(moy_val+notes['SPORT'], 20), moy)
``` ```

View File

@ -1,27 +1,22 @@
# Guide pour les administrateurs système de ScoDoc # Guide pour les administrateurs système de ScoDoc
ScoDoc est prévu pour fonctionner sur un serveur **Linux Debian 10 (Buster) ou 9 (Stretch)**. ScoDoc 9 est prévu pour fonctionner sur un serveur **Linux Debian 11 (Bullseye)**.
L'installation sur tout autre système est peut-être possible avec (beaucoup de) travail et n'est **pas supportée**. L'installation sur tout autre système n'est **pas supportée**.
Utilisez un **serveur virtuel** ou un container Docker si vous n'avez pas de machine Debian dédiée. Utilisez un **serveur virtuel** ou un container Docker si vous n'avez pas de machine Debian dédiée.
## Installation ## Installation
* Installation de ScoDoc: [GuideInstallDebianDix](GuideInstallDebianDix.md) (ou [GuideInstallDebianNeuf](GuideInstallDebianNeuf.md)) * Installation de ScoDoc: [GuideInstallDebian11](GuideInstallDebian11.md)
(Les personnes ayant besoin d'installer l'ancienne version ScoDoc 7 peuvent se
référer à [GuideInstallDebianDix](GuideInstallDebianDix.md) ou
[GuideInstallDebianNeuf](GuideInstallDebianNeuf.md).)
## Mises à jour et sauvegardes ## Mises à jour et sauvegardes
* [Mettre à jour du logiciel (nouvelles versions)](MisesAJour.md) * [Mettre à jour du logiciel (nouvelles versions)](MisesAJour.md)
* [Mise en place de sauvegardes des bases de données](SauvegardesBases.md) * [Mise en place de sauvegardes des bases de données](SauvegardesBases.md)
### Pour les anciennes installations
ScoDoc 7 est une version adaptée aux systèmes Debian 9 ou 10 (il est possible que les version plus anciennes de Linux Debian fonctionnent encore, mais une mise à jour est fortement recommandée).
Linux Debian 10 est la version recommandée en production.
* Migration installations Debian anciennes vers Debian 10: [MigrationDonneesScoDoc](MigrationDonneesScoDoc.md)
## Configuration et préférences ## Configuration et préférences

View File

@ -42,6 +42,13 @@ messagerie, ...).
## 1) Préalable: configurer un serveur linux ## 1) Préalable: configurer un serveur linux
Le serveur devrait être accessible depuis Internet. Le serveur devrait être accessible depuis Internet.
### Configuration matérielle
- taille disque: prévoir au moins 20Go sur la partition où sera scodoc (en
général `/`).
- mémoire: prévoir au moins 8Go de RAM, et plutôt 12 ou 16.
### Informations sur les flux réseau ### Informations sur les flux réseau
Le serveur est fréquemment installé sur un réseau protégé ou sur un VPN. Le serveur est fréquemment installé sur un réseau protégé ou sur un VPN.
@ -73,21 +80,29 @@ Checklist minimale de votre système Linux Debian:
1. Connexion à Internet: le réseau doit être accessible. En effet, le script d'installation va installer des paquetages du système Debian puis télécharger la dernière mise à jour du logiciel ScoDoc (à partir du serveur Subversion). 1. Connexion à Internet: le réseau doit être accessible. En effet, le script d'installation va installer des paquetages du système Debian puis télécharger la dernière mise à jour du logiciel ScoDoc (à partir du serveur Subversion).
1. Vérifiez la connectivité, par exemple: 1. Vérifiez la connectivité, par exemple:
``` ```
ping www.univ-paris13.fr ping www.univ-paris13.fr
(quitter avec ctrl-c) (quitter avec ctrl-c)
cd /tmp cd /tmp
wget --no-check-certificate https://www-lipn.univ-paris13.fr/projects/scodoc wget --no-check-certificate https://www-lipn.univ-paris13.fr/projects/scodoc
# doit créer un fichier nomme "scodoc" contenant du code HTML # doit créer un fichier nomme "scodoc" contenant du code HTML
``` ```
3. Nom DNS: le serveur doit avoir un nom ("serveur.exemple.fr") connu dans le 3. Nom DNS: le serveur doit avoir un nom ("serveur.exemple.fr") connu dans le
DNS (local ou public). Pour des tests, vous pouvez vous passer de DNS, mais DNS (local ou public). Pour des tests, vous pouvez vous passer de DNS, mais
dans ce cas le nom de votre serveur sera son adresse IP (eg 192.168.0.10) et dans ce cas le nom de votre serveur sera son adresse IP (eg 192.168.0.10) et
il ne sera peut être pas accessible de l'extérieur. il ne sera peut être pas accessible de l'extérieur.
4. Mail: vérifiez que le serveur peut envoyer des e-mail:
`mail votre@adresse.fr`, puis entrer un message terminé par `ctrl-d`: si vous ne
recevez pas le message après quelques minutes, vérifiez votre configuration
(et le log `/var/log/mail.log`). Un serveur ScoDoc qui n'envoie pas de mail
ne peut pas vérifier ceux des utilisateurs, qui à leur tour ne pourront pas
changer leurs mots de passe (bien d'autres fonctions dépendent des mails).
Au besoin, revoir la configuration avec `dpkg-reconfigure postfix`.
1. Vérifiez que votre serveur est accessible depuis une autre machine de votre 1. Vérifiez que votre serveur est accessible depuis une autre machine de votre
réseau (voire d'Internet): par exemple "ping serveur.exemple.fr". réseau (voire d'Internet): par exemple `ping serveur.exemple.fr`.
1. Date et heure: vérifier que les dates et heure sont correctes, même après 1. Date et heure: vérifier que les dates et heure sont correctes, même après
reboot. L'utilisation d'un serveur de temps (ntp) est recommandée (`apt-get reboot. L'utilisation d'un serveur de temps (ntp) est recommandée (
install ntp`), et éventuellement `dpkg-reconfigure tzdata`). `apt-get install ntp`), et éventuellement `dpkg-reconfigure tzdata`).
1. Cette liste est incomplète... et n'oubliez pas: avant de passer en 1. Cette liste est incomplète... et n'oubliez pas: avant de passer en
production, mettez en place des sauvegardes sérieuses ! production, mettez en place des sauvegardes sérieuses !
@ -95,9 +110,24 @@ wget --no-check-certificate https://www-lipn.univ-paris13.fr/projects/scodoc
Si votre accès à Internet passe par un proxy, l'indiquer au moment de Si votre accès à Internet passe par un proxy, l'indiquer au moment de
l'installation Debian. Il est possible qu'il vous faille configurer d'autres l'installation Debian. Il est possible qu'il vous faille configurer d'autres
éléments, voir par exemple éléments, voir par exemple
https://stackoverflow.com/questions/9445489/performing-http-requests-with-curl-using-proxy [ce post sur Stack Overflow](
https://stackoverflow.com/questions/9445489/performing-http-requests-with-curl-using-proxy).
#### Note sur l'install dans un container LXC
Si vous installez dans un container LXC, attention: la config par défaut de
Redis (un gestionnaire de cache utilisé par ScoDoc) n'est pas compatible, en
raison d'un problème de système de fichier en lecture seule. Ilnstakler redis
avant ScoDoc, comme suit:
apt-get install redis
Puis commentez la ligne `ReadOnlyDirectories=/` du fichier de config
`/etc/systemd/system/redis.service`. Ensuite
systemctl daemon-reload
systemctl start redis
... et poursuivez l'installation comme ci-dessous.
## 2) Installation de ScoDoc sur Debian ## 2) Installation de ScoDoc sur Debian
@ -129,17 +159,17 @@ ou le créer contenant juste cette ligne:
apt-get update apt-get update
apt-get install nginx apt-get install nginx
S'assurer que le logiciel `nginx`s'est bien installé. En cas de problème se S'assurer que le logiciel `nginx`s'est bien installé. En cas de problème se
référer à sa doc (par exemple, si référer à sa doc (par exemple, si
[votre serveur ne supporte pas [votre serveur ne supporte pas
IPv6](https://techglimpse.com/nginx-error-address-family-solution/)). IPv6](https://techglimpse.com/nginx-error-address-family-solution/)).
Ensuite: Ensuite:
apt-get install scodoc9 apt-get install scodoc9
Notez que l'installation du paquet `scodoc9` va créer automatiquement un Notez que l'installation du paquet `scodoc9` va créer automatiquement un
utilisateur `scodoc` qui sera utilisé par le serveur. utilisateur `scodoc` qui sera utilisé par le serveur.
- Attribuer un mot de passe à l'utilisateur `scodoc`: - Attribuer un mot de passe à l'utilisateur `scodoc`:
@ -170,7 +200,8 @@ utiliser le logiciel: voir la page [GuideConfig](GuideConfig.md).
## Importation des données ScoDoc 7 ## Importation des données ScoDoc 7
Après installation, vous pouvez migrer toutes vos données depuis une Après installation, vous pouvez migrer toutes vos données (comptes utilisateurs,
étudiants, formations, notes, photos et fichiers divers) depuis une
installation ScoDoc 7, ou même en place. installation ScoDoc 7, ou même en place.
Voir [la procédure de migration](MigrationScoDoc7a9.md). Voir [la procédure de migration](MigrationScoDoc7a9.md).

View File

@ -1,16 +1,15 @@
# Migration des données ScoDoc 7 vers ScoDoc 9 # Migration des données ScoDoc 7 vers ScoDoc 9
*XXX tests en cours XX* On peut installer à partir de zéro (cas 1), ou sur une machine ayant déjà un ScoDoc 7
et migrer les données (cas 2).
On peut installer à partir de zéro, ou sur une machine ayant déjà un ScoDoc 7
et migrer les données.
## Cas 1: Migration d'une installation ScoDoc 7 sur un nouveau serveur ## Cas 1: Migration d'une installation ScoDoc 7 sur un nouveau serveur
C'est le cas recommandé car il minimise la coupure et permet de tester avant de C'est la voie recommandée, notamment si vous avez un parc de machines
virtuelles, car elle minimise la durée de coupure et permet de tester avant de
basculer d'une version à l'autre. basculer d'une version à l'autre.
Dans ce cas, la migration va se faire en suivant les étapes: Dans ce cas, la migration va se faire en suivant les étapes, détaillées plus loin:
1. installer le nouveau serveur Linux Debian 11 et ScoDoc 9; 1. installer le nouveau serveur Linux Debian 11 et ScoDoc 9;
@ -20,6 +19,8 @@ Dans ce cas, la migration va se faire en suivant les étapes:
4. importer ces données dans ScoDoc 9. 4. importer ces données dans ScoDoc 9.
Si vous venez d'installer ScoDoc 9, passez directement à l'**étape 3**.
### Étape 1: Installer le nouveau serveur ### Étape 1: Installer le nouveau serveur
Installer le nouveau serveur avec Debian 11 et ScoDoc 9. Installer le nouveau serveur avec Debian 11 et ScoDoc 9.
@ -53,7 +54,8 @@ Copier ce fichier sur le nouveau serveur (scp, ...).
### Étape 3: Charger les données ScoDoc 7 ### Étape 3: Charger les données ScoDoc 7
Récupérez l'archive transférée sur le nouveau serveur ou ouvrez-la: Récupérez l'archive transférée sur le nouveau serveur et ouvrez-la (vous êtes
toujours `root`):
cd /tmp cd /tmp
tar xfz sauvegarde-scodoc7.tgz tar xfz sauvegarde-scodoc7.tgz
@ -61,8 +63,9 @@ Récupérez l'archive transférée sur le nouveau serveur ou ouvrez-la:
commande qui va créer `/tmp/sauvegarde-scodoc7`. commande qui va créer `/tmp/sauvegarde-scodoc7`.
En tant qu'utilisateur "`scodoc`": Chargement des bases SQL ScoDoc 7: en tant qu'utilisateur "`scodoc`":
su scodoc
/opt/scodoc/tools/restore_scodoc7_data.sh /tmp/sauvegarde-scodoc7 /opt/scodoc/tools/restore_scodoc7_data.sh /tmp/sauvegarde-scodoc7
(adaptez l'argument si les données ont été copiées ailleurs) (adaptez l'argument si les données ont été copiées ailleurs)
@ -91,22 +94,21 @@ que `root` **.
## Cas 2: Migration "en place" sur la même machine ## Cas 2: Migration "en place" sur la même machine
*XXX tests en cours XXX*
Si vous n'avez pas la possibilité de changer de serveur (par exemple, vous ne Si vous n'avez pas la possibilité de changer de serveur (par exemple, vous ne
travaillez pas dans des machines virtuelles, ou qu'il est compliqué de créer une travaillez pas dans des machines virtuelles, ou qu'il est compliqué de créer une
nouvelle VM). Vous pouvez partir de ScoDoc 7 / Debian 10, faire l'upgrade Debian nouvelle VM). Vous pouvez partir de ScoDoc 7 / Debian 10, faire l'upgrade Debian
en place, puis migrer ScoDoc 9. en place, puis migrer ScoDoc 9.
Avant tout, sauvegardez évidemment votre serveur complet, vérifiez que la Avant tout, sauvegardez évidemment votre serveur complet, vérifiez que la
sauvegarde est bonne et que plusieurs exemplaires sont stockés en lieux sûrs, sauvegarde est bonne et que plusieurs exemplaires sont stockés en lieux sûrs,
comme d'habitude. comme d'habitude.
Toutes les étapes sont importantes, prenez votre temps, lisez bien cette page. Toutes les étapes sont importantes, prenez votre temps, lisez bien cette page.
Si vous venez d'installer ScoDoc 9, passez directement à l'**étape 4**.
### 1. Préparation et arrêt de ScoDoc 7 ### 1. Préparation et arrêt de ScoDoc 7
1. S'assurer que l'installation ScoDoc 7 est à jour 1. **S'assurer que l'installation ScoDoc 7 est à jour**
sudo su sudo su
cd /opt/scodoc/Products/ScoDoc/config cd /opt/scodoc/Products/ScoDoc/config
@ -116,13 +118,13 @@ Toutes les étapes sont importantes, prenez votre temps, lisez bien cette page.
de ScoDoc 7. Si vous avez une version plus ancienne, mettez-la d'abord à de ScoDoc 7. Si vous avez une version plus ancienne, mettez-la d'abord à
jour. jour.
2. Arrêter le service ScoDoc 7 2. **Arrêter le service ScoDoc 7**
systemctl stop scodoc systemctl stop scodoc
S'assurer qu'il est bien stoppé (`ps auxw`, ...), sans quoi la migration va échouer. S'assurer qu'il est bien stoppé (`ps auxw`, ...), sans quoi la migration va échouer.
3. Renommer le répertoire de ScoDoc 7: 3. **Renommer le répertoire de ScoDoc 7**
sudo su sudo su
mv /opt/scodoc /opt/scodoc7 mv /opt/scodoc /opt/scodoc7
@ -135,11 +137,10 @@ de renommer le répertoire en `scodoc7`.
Suivre la procédure standard. La [doc Suivre la procédure standard. La [doc
officielle](https://www.debian.org/releases/bullseye/mips64el/release-notes/ch-upgrading.fr.html) officielle](https://www.debian.org/releases/bullseye/mips64el/release-notes/ch-upgrading.fr.html)
est longue, mais en réalité c'est très simple sauf si vous avez configuré votre est longue, mais en réalité c'est très simple et prends moins de 10 minutes,
système de façon exotique, ce qui est peu probable pour un serveur ScoDoc. sauf si vous avez configuré votre système de façon exotique.
Nombreux tutos disponibles, voir [par exemple Nombreux tutos disponibles, voir [par exemple
celui-ci](https://doc.akito.ooo/books/essentials/page/manually-upgrade-debian-from-buster-to-bullseye) celui-ci](https://www.cyberciti.biz/faq/update-upgrade-debian-10-to-debian-11-bullseye/).
(non testé).
Attention, il faut désinstaller Apache (avant ou après upgrade Linux), car Attention, il faut désinstaller Apache (avant ou après upgrade Linux), car
ScoDoc 9 utilise un autre serveur web (nginx) qui serait en conflit: ScoDoc 9 utilise un autre serveur web (nginx) qui serait en conflit:
@ -150,8 +151,7 @@ ScoDoc 9 utilise un autre serveur web (nginx) qui serait en conflit:
### 3. Installer ScoDoc 9 ### 3. Installer ScoDoc 9
Voir [la section 2 du guide d'installation](GuideInstallDebian11.md#2-installation-de-scodoc-sur-debian).
Voir [le guide d'installation](GuideInstallDebian11.md), section 2.
Vérifier que tout fonctionne avant d'aller plus loin. Vérifier que tout fonctionne avant d'aller plus loin.
@ -182,6 +182,9 @@ L'utilisateur `admin` créé à l'installation de ScoDoc 9 doit avoir accès à
Vérifiez que les semestres, étudiants, photos, archives et comptes utilisateurs Vérifiez que les semestres, étudiants, photos, archives et comptes utilisateurs
sont bien là. sont bien là.
Au besoin, réglez la fonction de calcul du **bonus sport&culture** via la page
"configuration" accessible depuis la page d'accueil en tant qu'admin uniquement.
Célébrez ! Célébrez !

View File

@ -1,12 +1,17 @@
# Mise à jour de ScoDoc Il est nécessaire de mettre à jour très fréquemment votre installation ScoDoc.
**Les instructions ci-dessous concernent ScoDoc 7. A partir de ScoDoc 9,
les mises à jour sont automatiques, et on peut en lancer une avec
la commande `apt update && apt-get upgrade`.
**
Il est recommandé de mettre à jour très régulièrement votre installation ScoDoc. # Mise à jour de ScoDoc 9
À partir de ScoDoc 9, les mises à jour sont automatiques. Au besoin, on peut en
lancer une à tout moment avec la commande
apt update && apt-get upgrade
# Mises à jour de ScoDoc 7
**Les instructions ci-dessous concernent ScoDoc 7 uniquement.**
Le système Linux doit être correctement maintenu (en particulier, les mises à Le système Linux doit être correctement maintenu (en particulier, les mises à
jour de sécurité de Debian doivent être appliquées quotidiennement). jour de sécurité de Debian doivent être appliquées quotidiennement).

View File

@ -1,22 +1,21 @@
# XXX page à mettre à jour pour ScoDoc 9
# Mise en place de sauvegardes des bases de données ScoDoc 7 # Mise en place de sauvegardes des bases de données ScoDoc 9
Il est ***vivement recommandé*** de mettre en place une stratégie de sauvegarde permettant de rétablir le service en minimisant les pertes de données à la suite d'un accident majeur mais probable comme: crash de disque dur, bug, vol du serveur, incendie... Il est ***vivement recommandé*** de mettre en place une stratégie de sauvegarde permettant de rétablir le service en minimisant les pertes de données à la suite d'un accident majeur mais probable comme: crash de disque dur, bug, vol du serveur, incendie...
Nous recommandons d'agir à deux niveaux: Nous recommandons d'agir à deux niveaux:
* sauvegarde des bases de données postgresql: dump des bases dans des fichiers. Le script donné ci-dessous peut se charger de gérer cela. * sauvegarde des bases de données postgresql: dump des bases dans des fichiers. Le script donné ci-dessous peut se charger de gérer cela.
* sauvegarde du système complet (et de ses disques durs): la forme dépend de l'environnement (machine virtuelle ou non...). Dans tous les cas, les données doivent être sauvegardées dans une salle (voire un bâtiment) différente de celle abritant le serveur ScoDoc (vols ou incendies). Typiquement, une sauvegarde quotidienne (nocturne) est suffisante. Le script `/opt/scodoc/instance/Products/ScoDoc/misc/backup_to_remote_server.sh` peut être utilisé pour cela. * sauvegarde du système complet (et de ses disques durs): la forme dépend de l'environnement (machine virtuelle ou non...). Dans tous les cas, les données doivent être sauvegardées dans une salle (voire un bâtiment) différente de celle abritant le serveur ScoDoc (vols ou incendies). Typiquement, une sauvegarde quotidienne (nocturne) est suffisante.
Notons que ScoDoc sauvegarde certaines informations sous le répertoire `/opt/scodoc` (en particulier les photos, les documents archivés et divers réglages): *il est absolument nécessaire de sauvegarder aussi ce répertoire*, en plus des bases de données SQL. Notons que ScoDoc sauvegarde de nombreuses informations sous le répertoire `/opt/scodoc-data` (en particulier les photos, les documents archivés et divers réglages): *il est absolument nécessaire de sauvegarder aussi ce répertoire*, en plus des bases de données SQL.
### Dump des bases de données ### Dump des bases de données
Le script `backup_db` (ou bien `backup_db2`, fournis dans le répertoire `.../ScoDoc/misc`) peut être utilisé pour effectuer des sauvegardes automatisées des bases de données SQL. Les données sont extraites de la base et écrites sur le disque local du serveur, qui doit bien entendu être sauvegardé par d'autres moyens, comme indiqué ci-dessus. Le script `backup_db9` (fourni dans le répertoire `/opt/scodoc/tools/backups`) peut être utilisé pour effectuer des sauvegardes automatisées des bases de données SQL. Les données sont extraites de la base et écrites sur le disque local du serveur, qui doit bien entendu être sauvegardé par d'autres moyens, comme indiqué ci-dessus.
Le nouveau (mars 2014) script `backup_db2` permet de conserver des sauvegardes de chaque heure durant les 48 (par défaut) dernières heures, des sauvegardes quotidiennes des 40 derniers jours, hebdomadaires des 30 dernières semaines, et mensuelles des 200 derniers mois (tout ceci est paramétrable dans le script `.../ScoDoc/backup_rotation.sh`). Le script `backup_db9` permet de conserver des sauvegardes de chaque heure durant les 48 (par défaut) dernières heures, des sauvegardes quotidiennes des 40 derniers jours, hebdomadaires des 30 dernières semaines, et mensuelles des 200 derniers mois (tout ceci est paramétrable dans le script `/opt/scodoc/tools/backups/backup_rotation.sh`).
Par défaut, les fichiers de sauvegardes sont créés dans le répertoire de l'utilisateur `postgres` (actuellement `/var/lib/postgresql/`). Par défaut, les fichiers de sauvegardes sont créés dans le répertoire de l'utilisateur `postgres` (actuellement `/var/lib/postgresql/`).
@ -29,38 +28,47 @@ En tant que `root` sur le serveur, faire:
``` ```
et ajouter: et ajouter:
``` ```
10 * * * * /opt/scodoc/Products/ScoDoc/misc/backup_db2 SCOUSERS 15 * * * * /opt/scodoc/tools/backups/backup_db9 SCODOC
15 * * * * /opt/scodoc/Products/ScoDoc/misc/backup_db2 SCOXXXX
20 * * * * /opt/scodoc/Products/ScoDoc/misc/backup_db2 SCOYYYY
...
``` ```
Remplacer `SCOXXXX` et `SCOYYYY` par les noms des bases de vos départements (la commande `psql -l` permet de lister toutes les bases). (ScoDoc9 utilise par défaut la base nommée `SCODOC`, adaptez si vous l'avez configuré sur une autre base).
### En cas de problème: restaurer la base à partir d'une sauvegarde ### En cas de problème: restaurer la base à partir d'une sauvegarde
<img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;" alt="/!\" /> Attention, certaines informations sont stockées dans des fichiers et non dans la base de données: configuration du logiciel, photos des étudiants. Ce paragraphe ne traite que de la restauration à de la base de données. <img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;" alt="/!\" /> Attention, certaines informations sont stockées dans des fichiers et non dans la base de données: configuration du logiciel, photos des étudiants. Ce paragraphe ne traite que de la restauration à de la base de données.
1. Choisir la sauvegarde à utiliser, en fonction de la date à partir de laquelle on a fait une erreur (eg suppression non intentionnelle d'un semestre...). Le fichier se trouve sous `/var/lib/postgresql/SCOXXX-BACKUPS`où `XXX` est le département concerné. Utiliser par exemple `ls -lrt` pour visualiser les sauvegardes triées par date. (Note: la version précédente du script écrivait dans `/var/lib/postgresql/BACKUP-SCOXXX`). 1. Choisir la sauvegarde à utiliser, en fonction de la date à partir de laquelle on a fait une erreur (eg suppression non intentionnelle d'un semestre...). Le fichier se trouve sous `/var/lib/postgresql/SCODOC-BACKUPS`où `XXX` est concerné. Utiliser par exemple `ls -lrt` pour visualiser les sauvegardes triées par date.
1. Copier le fichier de sauvegarde choisi et le décomprimer; par exemple: 1. Copier le fichier de sauvegarde choisi et le décomprimer; par exemple:
``` ```
cp /var/lib/postgresql/SCOGEII-BACKUPS/backup.hourly/2014-03-04T05\:35/SCOGEII_pgdump.gz /tmp cp /var/lib/postgresql/SCODOC-BACKUPS/backup.hourly/2021-09-17T19\:15/SCODOC_pgdump.gz /tmp
gunzip /tmp/SCOGEII_pgdump.gz gunzip /tmp/SCODOC_pgdump.gz
``` ```
3. Recharger la base complète pour le département concerné. <img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;" alt="/!\" /> Attention, cette opération effacera et remplacera) le contenu de la base de données actuelle... 3. Recharger la base complète. <img src="/img/alert.png" style="vertical-align:
bottom; margin:0 0 0 0;" alt="/!\" /> Attention, cette opération effacera et
remplacera) le contenu de la base de données actuelle...
``` ```
# en tant que root... # en tant que root...
/etc/init.d/scodoc stop # arret du serveur systemctl stop scodoc9 # arret du serveur
su postgres su postgres
dropdb SCOXXX # <<< par exemple SCOGEII dropdb SCODOC # <<< votre base production
pg_restore -C -d postgres /tmp/SCOXXX_pgdump # <<< changer le nom du fichier pg_restore -C -d scodoc /tmp/SCODOC_pgdump # <<<
exit # retour a l'utilisateur root exit # retour a l'utilisateur root
/etc/init.d/scodoc start # relance ScoDoc systemctl start scodoc # relance ScoDoc
``` ```
Attention: s'il y a eu des mise à jour du logiciel entre temps, il peut arriver
que la base sauvegardée nécessite une migration. Arrêtez le sservice scodoc9,
puis, en tant qu'utilisateur `scodoc`, lancer les commandes suivantes:
cd /opt/scodoc
source venv/bin/activate
flask db upgrade
puis relancer le service (`systemctl start scodoc` comme root).

View File

@ -2,7 +2,7 @@
# Établissements utilisant ScoDoc # Établissements utilisant ScoDoc
Cette page tente de lister les utilisateurs connus de ScoDoc. Le logiciel étant libre, nous ne sommes pas en mesure de dresser une liste exhaustive. Si vous utilisez le logiciel, merci d'envoyer un mail à <emmanuel.viennet@gmail.com>. Cette page tente de lister les utilisateurs connus de ScoDoc. Le logiciel étant libre, nous ne sommes pas en mesure de dresser une liste exhaustive. Si vous utilisez le logiciel, merci d'envoyer un mail à <emmanuel.viennet@gmail.com>.
## Établissements membres de l'association (2020-2021) ## Établissements membres de l'association (2020-2021) [liste non à jour]
* [IUT d'Annecy](https://www.iut-acy.univ-smb.fr); * [IUT d'Annecy](https://www.iut-acy.univ-smb.fr);

View File

@ -14,7 +14,10 @@ ScoDoc est un logiciel libre créé par Emmanuel Viennet pour suivre la scolarit
ScoDoc est un *logiciel libre*: vous pouvez [participer à son développement](Contribuer.md). ScoDoc est un *logiciel libre*: vous pouvez [participer à son développement](Contribuer.md).
ScoDoc s'utilise sur un navigateur web standard, avec connexions sécurisées; pour obtenir un accès sur un *serveur de démo* (réservé aux IUT), contacter: <notes@listes.univ-paris13.fr> . Pour installer le logiciel sur votre serveur, voir le [guide d'installation sur Debian 10](GuideInstallDebianDix.md). La version ScoDoc 9 est actuellement en test et devrait sortir fin août 2021. Elle fonctionne sur Debian 11. ScoDoc s'utilise sur un navigateur web standard: les utilisateurs n'ont rien à
installer. Les établissements ou écoles doivent configurer un serveur: voir le [guide
d'installation sur Debian 11](GuideInstallDebian11.md). La version ScoDoc 9 est
parue le 19 septembre 2021.
ScoDoc est utilisé dans de nombreux établissement français et étrangers, **dont au moins 58 IUT**: [liste des utilisateurs connus de ScoDoc](UtilisateursScoDoc.md). ScoDoc est utilisé dans de nombreux établissement français et étrangers, **dont au moins 58 IUT**: [liste des utilisateurs connus de ScoDoc](UtilisateursScoDoc.md).
@ -32,6 +35,7 @@ Depuis 2020, ScoDoc est soutenu par une [association à but non lucratif (1901)]
## Communauté d'utilisateurs ## Communauté d'utilisateurs
- Le discord des utilisateurs: assistance chat ou audio [rejoindre le salon](https://discord.gg/ybw6ugtFsZ)
- [Listes de diffusion e-mail](ListesDeDiffusion.md) - [Listes de diffusion e-mail](ListesDeDiffusion.md)
- Vous pouvez signaler ici des bugs ou déposer des suggestions d'amélioration via les "tickets": - Vous pouvez signaler ici des bugs ou déposer des suggestions d'amélioration via les "tickets":
* [Liste des tickets en cours](https://scodoc.org/git/viennet/ScoDoc/issues) * [Liste des tickets en cours](https://scodoc.org/git/viennet/ScoDoc/issues)
@ -39,6 +43,12 @@ Depuis 2020, ScoDoc est soutenu par une [association à but non lucratif (1901)]
- [Contribuer à ScoDoc](Contribuer.md) - [Contribuer à ScoDoc](Contribuer.md)
## Actualités ## Actualités
### Parution de ScoDoc 9.0
Version majeure, avec une architecture logicielle complètement remaniée.
Dans un premier temps, ScoDoc 9 n'offre presque pas de nouvelles fonctions par
rapport à l'ancien ScoDoc 7, mais son code permet des évolutions plus aisées.
### Quatre stagiaires (printemps 2021) ### Quatre stagiaires (printemps 2021)
- version spéciale pour mobiles, développée par un stagiaire de l'association; - version spéciale pour mobiles, développée par un stagiaire de l'association;

View File

@ -7,7 +7,7 @@ nav:
- 'FAQ': FAQ.md - 'FAQ': FAQ.md
- Installation: - Installation:
- 'Guide administration': GuideAdminSys.md - 'Guide administration': GuideAdminSys.md
- 'Installation': GuideInstallDebianDix.md - 'Installation': GuideInstallDebian11.md
- 'Mises à jour': MisesAJour.md - 'Mises à jour': MisesAJour.md
- 'Interfaces SI': InterrogationPortail.md - 'Interfaces SI': InterrogationPortail.md
- 'Publication des notes': PublicationEtudiants.md - 'Publication des notes': PublicationEtudiants.md