From d2947b23d34fde9bc277b3c49590590012c12755 Mon Sep 17 00:00:00 2001 From: Emmanuel Viennet Date: Fri, 27 Aug 2021 10:41:22 +0200 Subject: [PATCH] =?UTF-8?q?am=C3=A9liore=20script=20postinst=20(FLASK=5FAP?= =?UTF-8?q?P)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 17 ++++++++++++++--- tools/config.sh | 2 ++ tools/debian/postinst | 12 ++++++++++-- tools/utils.sh | 7 +++++++ 4 files changed, 33 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index cce52bd8..45743c41 100644 --- a/README.md +++ b/README.md @@ -73,14 +73,25 @@ Installer ScoDoc 9 normalement ([voir la doc](https://scodoc.org/GuideInstallDeb Puis remplacer `/opt/scodoc` par un clone du git. sudo su - mv /opt/scodoc /opt/scodoc-distrib # ou ce que vous voulez + mv /opt/scodoc /opt/off-scodoc # ou ce que vous voulez apt-get install git # si besoin cd /opt git clone https://scodoc.org/git/viennet/ScoDoc.git # (ou bien utiliser votre clone gitea si vous l'avez déjà créé !) mv ScoDoc scodoc # important ! - cd /opt/scodoc - # et voilà. + +Il faut ensuite installer l'environnement et le fichier de configuration: + + # Le plus simple est de piquer le virtualenv configuré par l'installeur: + mv /opt/off-scodoc/venv /opt/scodoc + +Et la config: + + ln -s /opt/scodoc-data/.env /opt/scodoc + +Cette dernière commande utilise le `.env` crée lors de l'install, ce qui +n'est pas toujours le plus judicieux: vous pouvez modifier son contenu, par +exemple pour travailler en mode "développement" avec `FLASK_ENV=development`. ### Tests unitaires diff --git a/tools/config.sh b/tools/config.sh index 39479dcd..9d726035 100644 --- a/tools/config.sh +++ b/tools/config.sh @@ -22,6 +22,8 @@ export SCODOC_VAR_DIR=/opt/scodoc-data export SCODOC_VERSION_DIR="${SCODOC_VAR_DIR}/config/version" export SCODOC_LOGOS_DIR="${SCODOC_VAR_DIR}/config/logos" +export FLASK_APP=scodoc.py + # Unix user running ScoDoc server: export SCODOC_USER=scodoc export SCODOC_GROUP=root diff --git a/tools/debian/postinst b/tools/debian/postinst index e07b06e8..53db633c 100644 --- a/tools/debian/postinst +++ b/tools/debian/postinst @@ -80,15 +80,23 @@ fi # --- NGINX if [ ! -L /etc/nginx/sites-enabled/scodoc9.nginx ] then + echo "Enabling scodoc9 in nginx" ln -s /etc/nginx/sites-available/scodoc9.nginx /etc/nginx/sites-enabled/ fi /bin/rm -f /etc/nginx/sites-enabled/default -# --- POSTGRESQL +# ------------ POSTGRESQL # --- Ensure postgres user "scodoc" ($POSTGRES_USER) exists init_postgres_user -# --- MISES A JOUR + +# ------------ CONFIG SERVICE SCODOC +echo +echo "Installation du service systemd scodoc9..." +cp "$SCODOC_DIR"/tools/etc/scodoc9.service /etc/systemd/system/ +systemctl daemon-reload + +# ------------ MISES A JOUR cp "$SCODOC_DIR"/tools/etc/scodoc-updater.service /etc/systemd/system cp "$SCODOC_DIR"/tools/etc/scodoc-updater.timer /etc/systemd/system systemctl enable scodoc-updater.timer diff --git a/tools/utils.sh b/tools/utils.sh index 973ee31d..e751501a 100644 --- a/tools/utils.sh +++ b/tools/utils.sh @@ -68,6 +68,12 @@ check_create_scodoc_user() { else echo "Unix user ${SCODOC_USER} exists" fi + # Check / set FLASK_APP + scodoc_home=$(getent passwd "${SCODOC_USER}" | cut -d: -f 6) + if [ -e "$scodoc_home/.profile" ] && [ $(grep -c FLASK_APP "$scodoc_home/.profile") == 0 ] + then + echo "export FLASK_APP=scodoc.py" >> "$scodoc_home/.profile" + fi } # --- Give all ScoDoc files (/opt/scodoc) to user "scodoc": @@ -79,6 +85,7 @@ change_scodoc_file_ownership() { # Création du répertoire local (scodoc-data) et vérification du propriétaire set_scodoc_var_dir() { echo "Checking $SCODOC_VAR_DIR..." + [ -z ${SCODOC_VAR_DIR+x} ] && die "Error: env var SCODOC_VAR_DIR not set" [ -d "$SCODOC_VAR_DIR" ] || mkdir "$SCODOC_VAR_DIR" || die "can't create $SCODOC_VAR_DIR directory" for d in archives photos tmp log config certs config/version config/depts config/logos do