diff --git a/docs/CalculNotes.md b/docs/CalculNotes.md index 7d297cab6..90d1ef997 100644 --- a/docs/CalculNotes.md +++ b/docs/CalculNotes.md @@ -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. 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 -de l'Université Paris 13 (sports, musique, deuxième 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 cumulés et 5% de ces points cumulés s'ajoutent à -la moyenne générale du semestre déjà obtenue par l'étudiant. -* +> Les étudiants de l'IUT peuvent suivre des enseignements optionnels +> de l'Université Paris 13 (sports, musique, deuxième 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 cumulés et 5% de ces points cumulés s'ajoutent à +> 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 -Haute Alsace applique le règlement suivant: *Les étudiants de l'IUT peuvent +Mais la règle à appliquer dépend de l'établissement. Par exemple, l'Université de +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 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 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.* -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. 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 diff --git a/docs/FAQ.md b/docs/FAQ.md index 8952f4a0f..eef0d38f3 100644 --- a/docs/FAQ.md +++ b/docs/FAQ.md @@ -49,11 +49,12 @@ passer par la page "Saisie des notes" et suivre le lien "Effacer toutes les note ### Configuration #### 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. -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`). +Il faut (pour l'instant) être administrateur sur le serveur ScoDoc, et passer +par l'onglet "configuration" accessible aux admins sur la page d'accueil. + +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. * 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 ? 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 ? -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) ? 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. - * 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 ! 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 Let's Encrypt 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 ? -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 ? [Voir la page](Contribuer.md). diff --git a/docs/FormulesCalculUtilisateur.md b/docs/FormulesCalculUtilisateur.md index cb336c764..4181bc5ff 100644 --- a/docs/FormulesCalculUtilisateur.md +++ b/docs/FormulesCalculUtilisateur.md @@ -32,19 +32,19 @@ Exemples: * 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) - * 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)` * 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) * 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: * moy : la valeur de la moyenne calculée classiquement (somme pondérée) /!\ *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_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. * 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) @@ -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: ``` -ifelse(moy_valid, min(moy_val+notes['SPORT'], 20), moy) +ifelse(moy_is_valid, min(moy_val+notes['SPORT'], 20), moy) ``` diff --git a/docs/GuideAdminSys.md b/docs/GuideAdminSys.md index 9939c0aef..e704630d1 100644 --- a/docs/GuideAdminSys.md +++ b/docs/GuideAdminSys.md @@ -1,27 +1,22 @@ # Guide pour les administrateurs système de ScoDoc -ScoDoc est prévu pour fonctionner sur un serveur **Linux Debian 10 (Buster) ou 9 (Stretch)**. -L'installation sur tout autre système est peut-être possible avec (beaucoup de) travail et n'est **pas supportée**. +ScoDoc 9 est prévu pour fonctionner sur un serveur **Linux Debian 11 (Bullseye)**. +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. ## 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 * [Mettre à jour du logiciel (nouvelles versions)](MisesAJour.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 diff --git a/docs/GuideInstallDebian11.md b/docs/GuideInstallDebian11.md index 67ec3ef6e..cd6ea9ced 100644 --- a/docs/GuideInstallDebian11.md +++ b/docs/GuideInstallDebian11.md @@ -42,6 +42,13 @@ messagerie, ...). ## 1) Préalable: configurer un serveur linux 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 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. Vérifiez la connectivité, par exemple: ``` -ping www.univ-paris13.fr -(quitter avec ctrl-c) -cd /tmp -wget --no-check-certificate https://www-lipn.univ-paris13.fr/projects/scodoc -# doit créer un fichier nomme "scodoc" contenant du code HTML + ping www.univ-paris13.fr + (quitter avec ctrl-c) + cd /tmp + wget --no-check-certificate https://www-lipn.univ-paris13.fr/projects/scodoc + # 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 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 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 - 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 - reboot. L'utilisation d'un serveur de temps (ntp) est recommandée (`apt-get - install ntp`), et éventuellement `dpkg-reconfigure tzdata`). + reboot. L'utilisation d'un serveur de temps (ntp) est recommandée ( + `apt-get install ntp`), et éventuellement `dpkg-reconfigure tzdata`). 1. Cette liste est incomplète... et n'oubliez pas: avant de passer en 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 l'installation Debian. Il est possible qu'il vous faille configurer d'autres é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 @@ -129,17 +159,17 @@ ou le créer contenant juste cette ligne: apt-get update apt-get install nginx - S'assurer que le logiciel `nginx`s'est bien installé. En cas de problème se - référer à sa doc (par exemple, si - [votre serveur ne supporte pas - IPv6](https://techglimpse.com/nginx-error-address-family-solution/)). + S'assurer que le logiciel `nginx`s'est bien installé. En cas de problème se + référer à sa doc (par exemple, si + [votre serveur ne supporte pas + IPv6](https://techglimpse.com/nginx-error-address-family-solution/)). - Ensuite: + Ensuite: apt-get install scodoc9 -Notez que l'installation du paquet `scodoc9` va créer automatiquement un -utilisateur `scodoc` qui sera utilisé par le serveur. + Notez que l'installation du paquet `scodoc9` va créer automatiquement un + utilisateur `scodoc` qui sera utilisé par le serveur. - 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 -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. Voir [la procédure de migration](MigrationScoDoc7a9.md). diff --git a/docs/MigrationScoDoc7a9.md b/docs/MigrationScoDoc7a9.md index a1bf667ad..4022b1a72 100644 --- a/docs/MigrationScoDoc7a9.md +++ b/docs/MigrationScoDoc7a9.md @@ -1,16 +1,15 @@ # Migration des données ScoDoc 7 vers ScoDoc 9 -*XXX tests en cours XX* - -On peut installer à partir de zéro, ou sur une machine ayant déjà un ScoDoc 7 -et migrer les données. +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). ## 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. -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; @@ -20,6 +19,8 @@ Dans ce cas, la migration va se faire en suivant les étapes: 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 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 -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 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`. -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 (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 -*XXX tests en cours XXX* - 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 nouvelle VM). Vous pouvez partir de ScoDoc 7 / Debian 10, faire l'upgrade Debian en place, puis migrer ScoDoc 9. 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. 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. S'assurer que l'installation ScoDoc 7 est à jour + 1. **S'assurer que l'installation ScoDoc 7 est à jour** sudo su 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 à jour. - 2. Arrêter le service ScoDoc 7 + 2. **Arrêter le service ScoDoc 7** systemctl stop scodoc 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 mv /opt/scodoc /opt/scodoc7 @@ -135,11 +137,10 @@ de renommer le répertoire en `scodoc7`. Suivre la procédure standard. La [doc 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 -système de façon exotique, ce qui est peu probable pour un serveur ScoDoc. +est longue, mais en réalité c'est très simple et prends moins de 10 minutes, +sauf si vous avez configuré votre système de façon exotique. Nombreux tutos disponibles, voir [par exemple -celui-ci](https://doc.akito.ooo/books/essentials/page/manually-upgrade-debian-from-buster-to-bullseye) -(non testé). +celui-ci](https://www.cyberciti.biz/faq/update-upgrade-debian-10-to-debian-11-bullseye/). 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: @@ -150,8 +151,7 @@ ScoDoc 9 utilise un autre serveur web (nginx) qui serait en conflit: ### 3. Installer ScoDoc 9 - -Voir [le guide d'installation](GuideInstallDebian11.md), section 2. +Voir [la section 2 du guide d'installation](GuideInstallDebian11.md#2-installation-de-scodoc-sur-debian). 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 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 ! diff --git a/docs/MisesAJour.md b/docs/MisesAJour.md index f2c03422a..8781dfdc4 100644 --- a/docs/MisesAJour.md +++ b/docs/MisesAJour.md @@ -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 à jour de sécurité de Debian doivent être appliquées quotidiennement). diff --git a/docs/SauvegardesBases.md b/docs/SauvegardesBases.md index e1768c151..744924212 100644 --- a/docs/SauvegardesBases.md +++ b/docs/SauvegardesBases.md @@ -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... 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 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 -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/`). @@ -29,38 +28,47 @@ En tant que `root` sur le serveur, faire: ``` et ajouter: ``` -10 * * * * /opt/scodoc/Products/ScoDoc/misc/backup_db2 SCOUSERS -15 * * * * /opt/scodoc/Products/ScoDoc/misc/backup_db2 SCOXXXX -20 * * * * /opt/scodoc/Products/ScoDoc/misc/backup_db2 SCOYYYY -... +15 * * * * /opt/scodoc/tools/backups/backup_db9 SCODOC ``` -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 /!\ 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: ``` - cp /var/lib/postgresql/SCOGEII-BACKUPS/backup.hourly/2014-03-04T05\:35/SCOGEII_pgdump.gz /tmp - gunzip /tmp/SCOGEII_pgdump.gz + cp /var/lib/postgresql/SCODOC-BACKUPS/backup.hourly/2021-09-17T19\:15/SCODOC_pgdump.gz /tmp + gunzip /tmp/SCODOC_pgdump.gz ``` - 3. Recharger la base complète pour le département concerné. /!\ Attention, cette opération effacera et remplacera) le contenu de la base de données actuelle... + 3. Recharger la base complète. /!\ Attention, cette opération effacera et + remplacera) le contenu de la base de données actuelle... ``` # en tant que root... -/etc/init.d/scodoc stop # arret du serveur +systemctl stop scodoc9 # arret du serveur su postgres -dropdb SCOXXX # <<< par exemple SCOGEII -pg_restore -C -d postgres /tmp/SCOXXX_pgdump # <<< changer le nom du fichier +dropdb SCODOC # <<< votre base production +pg_restore -C -d scodoc /tmp/SCODOC_pgdump # <<< 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). + diff --git a/docs/UtilisateursScoDoc.md b/docs/UtilisateursScoDoc.md index 729171982..20718ba35 100644 --- a/docs/UtilisateursScoDoc.md +++ b/docs/UtilisateursScoDoc.md @@ -2,7 +2,7 @@ # É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 à . -## É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); diff --git a/docs/index.md b/docs/index.md index b75b0918d..315d8b63b 100644 --- a/docs/index.md +++ b/docs/index.md @@ -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 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: . 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). @@ -32,6 +35,7 @@ Depuis 2020, ScoDoc est soutenu par une [association à but non lucratif (1901)] ## 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) - 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) @@ -39,6 +43,12 @@ Depuis 2020, ScoDoc est soutenu par une [association à but non lucratif (1901)] - [Contribuer à ScoDoc](Contribuer.md) ## 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) - version spéciale pour mobiles, développée par un stagiaire de l'association; diff --git a/mkdocs.yml b/mkdocs.yml index 2d64100c1..fedd51de3 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -7,7 +7,7 @@ nav: - 'FAQ': FAQ.md - Installation: - 'Guide administration': GuideAdminSys.md - - 'Installation': GuideInstallDebianDix.md + - 'Installation': GuideInstallDebian11.md - 'Mises à jour': MisesAJour.md - 'Interfaces SI': InterrogationPortail.md - 'Publication des notes': PublicationEtudiants.md