forked from ScoDoc/ScoDoc
documentation install et migration
This commit is contained in:
parent
91ece1274e
commit
3267a1f9bf
77
README.md
77
README.md
@ -10,17 +10,16 @@ Documentation utilisateur: <https://scodoc.org>
|
|||||||
|
|
||||||
## Branche ScoDoc 8 expérimentale
|
## Branche ScoDoc 8 expérimentale
|
||||||
|
|
||||||
N'utiliser que pour les développements et tests, dans le cadre de la migration de Zope vers Flask.
|
N'utiliser que pour les développements et tests.
|
||||||
|
|
||||||
La version ScoDoc8 est basée sur Flask (au lieu de Zope) et sur **python 3.7+**.
|
La version ScoDoc8 est basée sur Flask (au lieu de Zope) et sur **python 3.7+**.
|
||||||
Elle ne sera pas mise en production, c'est une version de développement pour le passage à Python 3.
|
Elle ne sera pas mise en production, c'est une version de développement pour le passage à Python 3.
|
||||||
|
|
||||||
De très nombreux changements sont susceptibles d'affecter l'API, mais on s'efforce à ce que rien
|
De très nombreux changements sont susceptibles d'affecter l'API, mais on s'efforce à ce que rien
|
||||||
ne soit visible des utilisateurs.
|
ne soit visible des utilisateurs Web.
|
||||||
|
|
||||||
## Work in Progress (WIP)
|
**Work in Progress (WIP)**: développement en cours, certaines pages fonctionnent, d'autres pas:
|
||||||
|
merci de signaler les erreurs.
|
||||||
Développement en cours, certaines pages fonctionnent, d'autres pas.
|
|
||||||
|
|
||||||
### État actuel (23 juillet 21)
|
### État actuel (23 juillet 21)
|
||||||
|
|
||||||
@ -37,49 +36,52 @@ Développement en cours, certaines pages fonctionnent, d'autres pas.
|
|||||||
- tests, formulaires utilisateurs, logging.
|
- tests, formulaires utilisateurs, logging.
|
||||||
|
|
||||||
|
|
||||||
## Setup (sur Debian 10 / python3.7)
|
## Installation (sur Debian 10 / python3.7)
|
||||||
|
|
||||||
Pour les dev, le plus simple est de partir d'une install fonctionnelle de ScoDoc7 sous git, et de changer de branche
|
On peut installer à partir de zéro, ou sur une machine ayant déjà un ScoDoc 7 et migrer les données.
|
||||||
|
|
||||||
git checkout ScoDoc8
|
### Installation
|
||||||
|
|
||||||
Debian 10 est livré avec Python 3.7.
|
Sur un système Linux Debian 10, en tant que `root`:
|
||||||
|
|
||||||
apt-get install python3-dev
|
- Charger la dernière release depuis https://scodoc.org/git/viennet/ScoDoc/releases
|
||||||
apt-get install python3-venv
|
|
||||||
apt-get install libpq-dev
|
|
||||||
apt-get install libcrack2-dev
|
|
||||||
|
|
||||||
Création d'un environnement:
|
- Déplacer ou copier le fichier `scodoc-v8.x.y.tgz` dans `/opt` et le décomprimer:
|
||||||
|
|
||||||
python3 -m venv venv
|
sudo su
|
||||||
|
cd /opt; tar xf - scodoc-v8.x.y.tgz # remplacer x et y par votre version
|
||||||
|
|
||||||
Puis installation de Flask:
|
- Lancer le script d'installation:
|
||||||
|
|
||||||
source venv/bin/activate
|
|
||||||
pip install flask
|
|
||||||
pip install wheel
|
|
||||||
|
|
||||||
Installer les dépendances:
|
cd /opt/scodoc8/tools
|
||||||
|
./install_debian10.sh
|
||||||
|
|
||||||
pip install -r requirements-3.7.txt
|
ce script crée un compte utilisateur "scodoc".
|
||||||
|
|
||||||
## Bases de données
|
Note: si vous installez sur une machine déjà configurée pour ScoDoc 7, il
|
||||||
|
est inutile de reconfigurer la messagerie et le firewall.
|
||||||
|
|
||||||
|
### Bases de données
|
||||||
ScoDoc8 utilise les bases de département de ScoDoc7, mais une nouvelle base
|
ScoDoc8 utilise les bases de département de ScoDoc7, mais une nouvelle base
|
||||||
utilisateurs nommée `SCO8USERS` (au lieu de `SCOUSERS`), qui est manipulée
|
utilisateurs nommée `SCO8USERS` (au lieu de `SCOUSERS`), qui est manipulée
|
||||||
via `sqlalchemy`.
|
via `sqlalchemy`.
|
||||||
|
|
||||||
### Configuration de la base utilisateurs
|
### Configuration de la base utilisateurs
|
||||||
|
|
||||||
Lancer le script `tools/create_database.sh`
|
Lancer le script:
|
||||||
|
|
||||||
|
su postgres
|
||||||
|
cd /opt/scodoc8/tools
|
||||||
|
./create_database.sh
|
||||||
|
|
||||||
Ce script crée une base nommée `SCO8USERS`, appartenant à l'utilisateur (role) postgres `scodoc`.
|
Ce script crée une base nommée `SCO8USERS`, appartenant à l'utilisateur (role) postgres `scodoc`.
|
||||||
Cet utilisateur est créé si nécessaire.
|
Cet utilisateur est automatiquement créé si nécessaire.
|
||||||
|
|
||||||
### Initialisation de la base utilisateur par Flask
|
### Initialisation de la base utilisateur par Flask
|
||||||
|
|
||||||
En tant qu'utilisateur `scodoc`:
|
En tant qu'utilisateur `scodoc`:
|
||||||
|
|
||||||
|
su scodoc # si besoin
|
||||||
flask db init
|
flask db init
|
||||||
flask db migrate -m "users and roles tables"
|
flask db migrate -m "users and roles tables"
|
||||||
flask db upgrade
|
flask db upgrade
|
||||||
@ -107,6 +109,31 @@ Pour créer un utilisateur "super admin", c'est à dire admin dans tous les dép
|
|||||||
|
|
||||||
flask user-create admin1 SuperAdmin @all
|
flask user-create admin1 SuperAdmin @all
|
||||||
|
|
||||||
|
## Migration d'une installation ScoDoc 7
|
||||||
|
|
||||||
|
Le script `migrate_from_scodoc7.sh` va déplacer les donneés et reconfigurer les bases de données
|
||||||
|
de votre installation ScoDoc 7 pour passer à ScoDoc 8 (*ne pas utiliser en production !*).
|
||||||
|
**Les modifications effectuées sont sans retour: ScoDoc 7 ne fonctionnera plus !**
|
||||||
|
|
||||||
|
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 scodoc7
|
||||||
|
|
||||||
|
S'assurer qu'il est bien stoppé (`ps auxw`, ...), sans qui la migration va échouer.
|
||||||
|
|
||||||
|
3. Lancer le script de migration
|
||||||
|
ScoDoc 8 doit avoir été installé comme expliqué plus haut.
|
||||||
|
|
||||||
|
sudo su
|
||||||
|
cd /opt/scodoc8/tools
|
||||||
|
./migrate_from_scodoc7.sh
|
||||||
|
|
||||||
|
|
||||||
## Lancement serveur (développement, sur VM Linux)
|
## Lancement serveur (développement, sur VM Linux)
|
||||||
|
|
||||||
|
@ -26,6 +26,9 @@ then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# ------------ Unix user
|
||||||
|
check_create_scodoc_user
|
||||||
|
|
||||||
# ------------ Permissions & directories
|
# ------------ Permissions & directories
|
||||||
change_scodoc_file_ownership
|
change_scodoc_file_ownership
|
||||||
|
|
||||||
@ -39,6 +42,11 @@ apt-get -y install postgresql
|
|||||||
apt-get -y install curl
|
apt-get -y install curl
|
||||||
apt-get -y install graphviz
|
apt-get -y install graphviz
|
||||||
|
|
||||||
|
# ------------ CREATION DU VIRTUALENV
|
||||||
|
echo "Creating python3 virtualenv..."
|
||||||
|
cd "$SCODOC_DIR" || die "can't cd $SCODOC_DIR"
|
||||||
|
python3 -m venv venv || die "can't create Python 3 virtualenv"
|
||||||
|
|
||||||
# ------------ INSTALL DES PAQUETS PYTHON (3.7)
|
# ------------ INSTALL DES PAQUETS PYTHON (3.7)
|
||||||
# ScoDoc8 uses pip in our env
|
# ScoDoc8 uses pip in our env
|
||||||
source venv/bin/activate
|
source venv/bin/activate
|
||||||
|
@ -6,23 +6,50 @@ source config.sh
|
|||||||
source utils.sh
|
source utils.sh
|
||||||
|
|
||||||
usage() {
|
usage() {
|
||||||
echo "Usage: $0 v9.x.y, where v9.x.y est le numéro de version créé"
|
echo $1 >&2
|
||||||
|
echo "Usage: $0 [-f] -v 9.x.y, where 9.x.y est le numéro de version créé" >&2
|
||||||
|
echo " -f: force release even if there's local changes" >&2
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
if [ $# != 1 ] || [ $1 = "-h" ] || [ $1 = "--help" ]
|
|
||||||
|
FORCE_RELEASE=0
|
||||||
|
while getopts "hfv:" opt; do
|
||||||
|
case $opt in
|
||||||
|
f)
|
||||||
|
FORCE_RELEASE=1
|
||||||
|
;;
|
||||||
|
v)
|
||||||
|
VERSION=$OPTARG
|
||||||
|
;;
|
||||||
|
h)
|
||||||
|
usage "Prépare une release"
|
||||||
|
;;
|
||||||
|
\?)
|
||||||
|
usage "Invalid option: -$OPTARG"
|
||||||
|
;;
|
||||||
|
:)
|
||||||
|
usage "Option -$OPTARG requires an argument."
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -z "$VERSION" ]
|
||||||
then
|
then
|
||||||
usage
|
usage
|
||||||
fi
|
fi
|
||||||
|
|
||||||
VERSION=$1
|
|
||||||
SOURCE_URL="https://scodoc.org/git/viennet/ScoDoc.git"
|
SOURCE_URL="https://scodoc.org/git/viennet/ScoDoc.git"
|
||||||
SOURCE_BRANCH="ScoDoc8"
|
SOURCE_BRANCH="ScoDoc8"
|
||||||
|
RESULTFILE="scodoc-$VERSION.tgz"
|
||||||
|
|
||||||
# Check local diffs, ignoring file modes (changed on VMs)
|
if [ "$FORCE_RELEASE" -eq 0 ]
|
||||||
local_diffs=$(git -c core.fileMode=false status --porcelain --untracked-files=no | wc -l)
|
|
||||||
if [ "$local_diffs" -ne 0 ]
|
|
||||||
then
|
then
|
||||||
die "you have local diffs: git commit or stash before releasing"
|
# Check local diffs, ignoring file modes (changed on VMs)
|
||||||
|
local_diffs=$(git -c core.fileMode=false status --porcelain --untracked-files=no | wc -l)
|
||||||
|
if [ "$local_diffs" -ne 0 ]
|
||||||
|
then
|
||||||
|
die "you have local diffs: git commit or stash before releasing"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Preparing release $VERSION"
|
echo "Preparing release $VERSION"
|
||||||
@ -33,13 +60,19 @@ cd "/tmp/$VERSION" || die "can't cd /tmp/$VERSION"
|
|||||||
git clone "$SOURCE_URL" || die "git error cloning $SOURCE_URL"
|
git clone "$SOURCE_URL" || die "git error cloning $SOURCE_URL"
|
||||||
cd ScoDoc || die "no ScoDoc directory !"
|
cd ScoDoc || die "no ScoDoc directory !"
|
||||||
git checkout "$SOURCE_BRANCH" || die "git ckecking out branch $SOURCE_BRANCH"
|
git checkout "$SOURCE_BRANCH" || die "git ckecking out branch $SOURCE_BRANCH"
|
||||||
|
|
||||||
# --- Create empty .../var/ subdir
|
# --- Create empty .../var/ subdir
|
||||||
|
echo "Creating empty local directories..."
|
||||||
mkdir -p var/scodoc || die "can't create var subdirectory"
|
mkdir -p var/scodoc || die "can't create var subdirectory"
|
||||||
mkdir var/scodoc/archives var/scodoc/photos var/scodoc/tmp var/scodoc/config
|
mkdir var/scodoc/archives var/scodoc/photos var/scodoc/tmp var/scodoc/config
|
||||||
mkdir var/scodoc/config/version var/scodoc/config/depts var/scodoc/config/logos
|
mkdir var/scodoc/config/version var/scodoc/config/depts var/scodoc/config/logos
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
|
# --- Archive
|
||||||
|
echo "Preparing archive..."
|
||||||
mv ScoDoc scodoc8
|
mv ScoDoc scodoc8
|
||||||
chown -R scodoc scodoc8
|
chown -R scodoc scodoc8
|
||||||
tar cfz "scodoc8-$VERSION.tgz" scodoc8
|
tar cfz "$RESULTFILE" scodoc8
|
||||||
|
echo
|
||||||
|
echo "Release: $(pwd)/$RESULTFILE"
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user