forked from ScoDoc/ScoDoc
doc README et essai 9.0.1
This commit is contained in:
parent
f363e8b926
commit
104b79cce4
218
README.md
218
README.md
@ -5,208 +5,47 @@
|
|||||||
|
|
||||||
VERSION EXPERIMENTALE - NE PAS DEPLOYER - TESTS EN COURS
|
VERSION EXPERIMENTALE - NE PAS DEPLOYER - TESTS EN COURS
|
||||||
|
|
||||||
Installation: voir instructions à jour sur <https://scodoc.org>
|
Installation: voir instructions à jour sur <https://scodoc.org/GuideInstallDebian11>
|
||||||
|
|
||||||
Documentation utilisateur: <https://scodoc.org>
|
Documentation utilisateur: <https://scodoc.org>
|
||||||
|
|
||||||
## Branche ScoDoc 9 expérimentale
|
## Version ScoDoc 9
|
||||||
|
|
||||||
N'utiliser que pour les développements et tests.
|
N'utiliser que pour les développements et tests.
|
||||||
|
|
||||||
La version ScoDoc 9 est basée sur Flask (au lieu de Zope) et sur **python 3.9+**.
|
La version ScoDoc 9 est basée sur Flask (au lieu de Zope) et sur
|
||||||
|
**python 3.9+**.
|
||||||
|
|
||||||
La version 9.0 s'efforce de reproduire presque à l'identique le fonctionnement
|
La version 9.0 s'efforce de reproduire presque à l'identique le fonctionnement
|
||||||
de ScoDoc7, avec des composants logiciels différents (Debian 11, Python 3,
|
de ScoDoc7, avec des composants logiciels différents (Debian 11, Python 3,
|
||||||
Flask, SQLAlchemy, au lien de Python2/Zope dans les versions précédentes).
|
Flask, SQLAlchemy, au lien de Python2/Zope dans les versions précédentes).
|
||||||
|
|
||||||
**Version 9.0.0-alpha**: développement en cours, certaines pages fonctionnent,
|
|
||||||
d'autres pas: merci de signaler les erreurs.
|
|
||||||
|
|
||||||
### État actuel (24 août 21)
|
|
||||||
|
### État actuel (25 août 21)
|
||||||
|
|
||||||
- Tests en cours, notamment système d'installation et de migration.
|
- Tests en cours, notamment système d'installation et de migration.
|
||||||
|
|
||||||
**Non intégré**
|
**Fonctionnalités non intégrées:**
|
||||||
|
|
||||||
|
- fonctions d'envoi de mail (en cours)
|
||||||
|
|
||||||
- feuille "placement" (en cours)
|
- feuille "placement" (en cours)
|
||||||
|
|
||||||
- ancien module "Entreprises" (obsolete)
|
- ancien module "Entreprises" (obsolete)
|
||||||
|
|
||||||
|
|
||||||
## Installation (sur Debian 11 / python 3.9.2)
|
### Lignes de commandes
|
||||||
|
|
||||||
Expérimental:
|
Voir [https://scodoc.org/GuideConfig](le guide de configuration).
|
||||||
|
|
||||||
- installer Debian 11
|
|
||||||
|
|
||||||
- installer la clé:
|
|
||||||
en root sur le serveur, lancer
|
|
||||||
|
|
||||||
apt-get install gnupg
|
|
||||||
wget -O - https://scodoc.org/misc/scodoc-repo.gpg.key | apt-key add -
|
|
||||||
|
|
||||||
- apt-get update && apt-get install scodoc9
|
|
||||||
|
|
||||||
|
|
||||||
Voir https://scodoc.org/GuideInstallDebian11
|
|
||||||
|
|
||||||
## Notes à reporter dans la doc:
|
|
||||||
On peut installer à partir de zéro, ou sur une machine ayant déjà un ScoDoc 7
|
|
||||||
et migrer les données.
|
|
||||||
|
|
||||||
### Arrêter et renommer ScoDoc7
|
|
||||||
**Important**: si vous avez un ScoDoc7 installé sur ce serveur, le mettre à jour, l'arrêter et renommer son répertoire avant de commencer l'installation de ScoDoc 8:
|
|
||||||
|
|
||||||
1. S'assurer que l'installation ScoDoc 7 est à jour
|
|
||||||
|
|
||||||
sudo su
|
|
||||||
cd /opt/scodoc/Products/ScoDoc/config
|
|
||||||
./upgrade.sh
|
|
||||||
|
|
||||||
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:
|
|
||||||
|
|
||||||
sudo su
|
|
||||||
mv /opt/scodoc /opt/scodoc7
|
|
||||||
|
|
||||||
Les données pourront être migrées après installation la nouvelle version, voir plus loin. **XXX TODO: script de migration "en place"** (actuellement, seule la migration depuis une _autre_ machine scodoc7 est prévue.)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Initialisation de la base utilisateur par Flask
|
|
||||||
|
|
||||||
En tant qu'utilisateur `scodoc`:
|
|
||||||
|
|
||||||
su scodoc # si besoin
|
|
||||||
cd /opt/scodoc
|
|
||||||
source venv/bin/activate
|
|
||||||
|
|
||||||
Puis initialisation de l'appli:
|
|
||||||
|
|
||||||
flask db-init
|
|
||||||
|
|
||||||
Et saisie du mot de passe `admin`:
|
|
||||||
|
|
||||||
flask user-password admin
|
|
||||||
|
|
||||||
On peut ensuite créer des utilisateurs tests avec:
|
|
||||||
|
|
||||||
flask user-create toto Ens RT
|
|
||||||
flask user-create tata Ens Info
|
|
||||||
|
|
||||||
Pour créer un utilisateur "super admin", c'est à dire admin dans tous les départements:
|
|
||||||
|
|
||||||
flask user-create admin1 SuperAdmin @all
|
|
||||||
|
|
||||||
## Migration d'une installation ScoDoc 7 sur un nouveau serveur
|
|
||||||
|
|
||||||
C'est le cas recommandé car il minimise la coupure
|
|
||||||
Dans ce cas, la migration va se faire en suivant les étapes:
|
|
||||||
|
|
||||||
1. installer le nouveau serveur Linux et ScoDoc 9;
|
|
||||||
|
|
||||||
2. sauvegarder les données de ScoDoc7 depuis le serveur de production et l'arrêter;
|
|
||||||
|
|
||||||
3. y charger les données ScoDoc 7;
|
|
||||||
|
|
||||||
4. importer ces données dans ScoDoc 9.
|
|
||||||
|
|
||||||
### Étape 1
|
|
||||||
|
|
||||||
Installer le nouveau serveur avec Debian 11 et ScoDoc 9.
|
|
||||||
|
|
||||||
Voir https://scodoc.org/GuideInstallDebian11
|
|
||||||
|
|
||||||
### Étape 2: sauvegarde des données du serveur ScoDoc 7
|
|
||||||
|
|
||||||
Se connecter en tant que `root`sur le serveur ScoDoc 7.
|
|
||||||
|
|
||||||
cd /opt/scodoc/Products/ScoDoc/config
|
|
||||||
# Mise à jour indispensable pour avoir le script de migration
|
|
||||||
./upgrade.sh
|
|
||||||
# Arrêt du service en production
|
|
||||||
systemctl stop scodoc
|
|
||||||
# Export des données
|
|
||||||
./save_scodoc7_data.sh /tmp/sauvegarde-scodoc7
|
|
||||||
|
|
||||||
Attention à l'espace disque: au besoin, faire le ménage ou montez un disque supplémentaire.
|
|
||||||
|
|
||||||
Le script indique le nom du fichier à transférer, qui sera dans cet
|
|
||||||
exemple `/tmp/sauvegarde-scodoc7.tgz`
|
|
||||||
|
|
||||||
Copier ce fichier sur le nouveau serveur.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Étape 3
|
|
||||||
|
|
||||||
Charger les données ScoDoc 7: en tant qu'utilisateur "`scodoc`"
|
|
||||||
|
|
||||||
cd /opt/scodoc
|
|
||||||
./tools/restore_scodoc7_data.sh /tmp/sauvegarde-scodoc7.tgz
|
|
||||||
|
|
||||||
(adaptez l'argument si les données ont été copiées ailleurs)
|
|
||||||
|
|
||||||
Note: les messages d'erreur comme
|
|
||||||
|
|
||||||
pg_restore: warning: restoring tables WITH OIDS is not supported anymore
|
|
||||||
pg_restore: error: could not execute query: ERROR: schema "public" already exists
|
|
||||||
pg_restore: error: could not execute query: ERROR: must be owner of extension plpgsql
|
|
||||||
|
|
||||||
sont normaux et a priori anodins.
|
|
||||||
|
|
||||||
A ce stade, vous avez rechargé les bases ScoDoc 7 mais il faut encore
|
|
||||||
les convertir vers la nouvelle structure ScoDoc 9.
|
|
||||||
|
|
||||||
### Étape 4
|
|
||||||
|
|
||||||
Importer les données dasn ScoDoc 9: les formats des bases ayant changé
|
|
||||||
l'opération est complexe et peut durer plusieurs minutes (ou dizaines
|
|
||||||
de minutes). Il faut lancer le script en tant que `root`, par exemple ainsi:
|
|
||||||
|
|
||||||
sudo migrate_from_scodoc7.sh /tmp/sauvegarde-scodoc7
|
|
||||||
|
|
||||||
(le script de l'étape 3 a décompressé l'archive, d'où ici l'absence de l'extension `tgz`).
|
|
||||||
|
|
||||||
|
|
||||||
## Création d'un nouveau département
|
|
||||||
|
|
||||||
su scodoc # si besoin
|
|
||||||
cd /opt/scodoc
|
|
||||||
source venv/bin/activate
|
|
||||||
flask create-dept DEPT
|
|
||||||
|
|
||||||
où `DEPT` est le nom du département (un acronyme en majuscule, comme "RT", "GEA", ...).
|
|
||||||
|
|
||||||
### Suppression d'un département
|
|
||||||
|
|
||||||
su scodoc # si besoin
|
|
||||||
cd /opt/scodoc
|
|
||||||
source venv/bin/activate
|
|
||||||
flask delete-dept DEPT
|
|
||||||
|
|
||||||
## Lancement serveur (développement, sur VM Linux)
|
|
||||||
|
|
||||||
En tant qu'utilisateur `scodoc` (pour avoir accès aux bases départements de ScoDoc7):
|
|
||||||
|
|
||||||
Dans un terminal, lancer le serveur:
|
|
||||||
|
|
||||||
export FLASK_APP=scodoc.py
|
|
||||||
export FLASK_ENV=development
|
|
||||||
flask run --host=0.0.0.0
|
|
||||||
|
|
||||||
Test avec gunicorn:
|
|
||||||
|
|
||||||
gunicorn -b 0.0.0.0:8000 -w 4 scodoc:app
|
|
||||||
|
|
||||||
## Organisation des fichiers
|
## Organisation des fichiers
|
||||||
|
|
||||||
L'installation comporte les fichiers de l'application, sous `/opt/scodoc/`, et les fichiers locaux (archives, photos, configurations, logs) sous `/opt/scodoc-data`. Par ailleurs, il y a évidemment les bases de données postgresql et la configuration du système.
|
L'installation comporte les fichiers de l'application, sous `/opt/scodoc/`, et
|
||||||
|
les fichiers locaux (archives, photos, configurations, logs) sous
|
||||||
|
`/opt/scodoc-data`. Par ailleurs, il y a évidemment les bases de données
|
||||||
|
postgresql et la configuration du système Linux.
|
||||||
|
|
||||||
### Fichiers locaux
|
### Fichiers locaux
|
||||||
Sous `/opt/scodoc-data`, fichiers et répertoires appartienant à l'utilisateur `scodoc`.
|
Sous `/opt/scodoc-data`, fichiers et répertoires appartienant à l'utilisateur `scodoc`.
|
||||||
@ -229,16 +68,18 @@ Principaux contenus:
|
|||||||
|
|
||||||
### Installation du code
|
### Installation du code
|
||||||
|
|
||||||
Procéder comme indiquer au début, mais au lieu de técharger une *release*,
|
Installer ScoDoc 9 normalement ([voir la doc](https://scodoc.org/GuideInstallDebian11)).
|
||||||
partir d'un clone git et se placer sur la branche *ScoDoc8*:
|
|
||||||
|
Puis remplacer `/otp/scodoc` par un clone du git.
|
||||||
|
|
||||||
sudo su
|
sudo su
|
||||||
|
mv /opt/scodoc /opt/scodoc-distrib # ou ce que vous voulez
|
||||||
cd /opt
|
cd /opt
|
||||||
git clone https://scodoc.org/git/viennet/ScoDoc.git
|
git clone https://scodoc.org/git/viennet/ScoDoc.git
|
||||||
# (ou bien utiliser votre clone gitea so vous l'avez déjà créé !)
|
# (ou bien utiliser votre clone gitea so vous l'avez déjà créé !)
|
||||||
mv ScoDoc scodoc # important !
|
mv ScoDoc scodoc # important !
|
||||||
cd /opt/scodoc
|
cd /opt/scodoc
|
||||||
git checkout ScoDoc8
|
# et voilà.
|
||||||
|
|
||||||
### Tests unitaires
|
### Tests unitaires
|
||||||
|
|
||||||
@ -278,25 +119,8 @@ un utilisateur:
|
|||||||
base de données (tous les départements, et les utilisateurs) avant de commencer !
|
base de données (tous les départements, et les utilisateurs) avant de commencer !
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Paquet debian 11
|
# Paquet debian 11
|
||||||
|
|
||||||
Ce que le script d'installation du paquet ne fait pas:
|
Ce que le script d'installation/mise à jour du paquet ne fait pas encore:
|
||||||
|
|
||||||
- démarrer redis `systemctl start redis` (mettre dans la doc)
|
|
||||||
|
|
||||||
- démarrer le firewall (proposer script à part)
|
|
||||||
|
|
||||||
ufw default deny incoming
|
|
||||||
ufw default allow outgoing
|
|
||||||
ufw allow ssh
|
|
||||||
ufw allow https
|
|
||||||
yes | ufw enable
|
|
||||||
|
|
||||||
- générer les certificats auto-signés (proposer script à part)
|
|
||||||
|
|
||||||
- démarrer nginx: `systemctl restart nginx` (mettre dans la doc)
|
|
||||||
|
|
||||||
- mise à jour hebdomadaire (à faire)
|
|
||||||
|
|
||||||
- migrations flask (à faire)
|
- migrations flask (à faire)
|
@ -7,7 +7,7 @@ die() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
PACKAGE_NAME=scodoc9
|
PACKAGE_NAME=scodoc9
|
||||||
RELEASE_TAG=9.0.0-d
|
RELEASE_TAG=9.0.1
|
||||||
VERSION=9.0.0
|
VERSION=9.0.0
|
||||||
RELEASE=1
|
RELEASE=1
|
||||||
ARCH="amd64"
|
ARCH="amd64"
|
||||||
|
@ -131,6 +131,7 @@ fi
|
|||||||
|
|
||||||
# ------------ LANCEMENT DES SERVICES
|
# ------------ LANCEMENT DES SERVICES
|
||||||
systemctl start redis
|
systemctl start redis
|
||||||
|
systemctl start nginx
|
||||||
systemctl start scodoc9
|
systemctl start scodoc9
|
||||||
|
|
||||||
echo
|
echo
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
Package: scodoc9
|
Package: scodoc9
|
||||||
Version: 9.0.0
|
Version: 9.0.1
|
||||||
Architecture: amd64
|
Architecture: amd64
|
||||||
Maintainer: Emmanuel Viennet <emmanuel@viennet.net>
|
Maintainer: Emmanuel Viennet <emmanuel@viennet.net>
|
||||||
Description: ScoDoc 9
|
Description: ScoDoc 9
|
||||||
|
Loading…
Reference in New Issue
Block a user