forked from ScoDoc/ScoDoc
script de configuration pour débutants
This commit is contained in:
parent
3589c69bca
commit
98f7fd165b
107
tools/configure-scodoc9.sh
Normal file
107
tools/configure-scodoc9.sh
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Script à lancer en tant que root sur un nouveau serveur
|
||||||
|
# pour terminer la configuration juste après apt-get install scodoc9
|
||||||
|
|
||||||
|
# On ne place pas ces commandes dans le postinst
|
||||||
|
# car c'est spécifique et optionnel.
|
||||||
|
# Le répertoire de ce script:
|
||||||
|
|
||||||
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
||||||
|
|
||||||
|
source "$SCRIPT_DIR/config.sh"
|
||||||
|
source "$SCRIPT_DIR/utils.sh"
|
||||||
|
|
||||||
|
cd /opt/scodoc || die "Error: chdir to /opt/scodoc"
|
||||||
|
|
||||||
|
# ------------ CONFIG FIREWALL OPTIONNELLE
|
||||||
|
echo
|
||||||
|
echo "Le firewall aide a proteger votre serveur d'intrusions indesirables."
|
||||||
|
echo -n "Voulez vous configurer un firewall minimal (ufw) ? (y/n) [n] "
|
||||||
|
read -r ans
|
||||||
|
if [ "$(norm_ans "$ans")" = 'Y' ]
|
||||||
|
then
|
||||||
|
echo 'Installation du firewall IP ufw (voir documentation Debian)'
|
||||||
|
echo ' on autorise les connexions ssh et https'
|
||||||
|
ufw default deny incoming
|
||||||
|
ufw default allow outgoing
|
||||||
|
ufw allow ssh
|
||||||
|
ufw allow https
|
||||||
|
yes | ufw enable
|
||||||
|
echo "firewall ufw activé."
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ------------ CONFIG NGINX
|
||||||
|
# --- CERTIFICATS AUTO-SIGNES
|
||||||
|
echo
|
||||||
|
echo "Le serveur Web utilisé par ScoDoc et nginx"
|
||||||
|
echo "Il est possible d'utiliser des certificats cryptographiques"
|
||||||
|
echo "auto-signés, qui ne seront pas reconnus comme de confiance"
|
||||||
|
echo "par les navigateurs, permettent de tester."
|
||||||
|
echo "Si vous avez déjà de vrais certificats, passez cette étape et installez-les ensuite."
|
||||||
|
echo -n 'Voulez-vous générer des certificats ssl auto-signés ? (y/n) [y] '
|
||||||
|
read -r ans
|
||||||
|
if [ "$(norm_ans "$ans")" != 'N' ]
|
||||||
|
then
|
||||||
|
# génération des certifs: cert.pem key.pem dans /opt/scodoc-data/certs/
|
||||||
|
su -c "(cd $SCODOC_VAR_DIR && mkdir -p certs && openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -keyout certs/key.pem -out certs/cert.pem)" "$SCODOC_USER"
|
||||||
|
systemctl restart nginx
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ------------ CREATION ENVIRONNEMENT
|
||||||
|
echo
|
||||||
|
echo "Créer (et écraser) le fichier /opt/scodoc/.env"
|
||||||
|
echo " définissant les variables d\'environnement ?"
|
||||||
|
echo "(si vous ne savez pas, répondez oui !)"
|
||||||
|
echo -n 'Générer /opt/scodoc/.env ? (y/n) [y] '
|
||||||
|
read -r ans
|
||||||
|
if [ "$(norm_ans "$ans")" != 'N' ]
|
||||||
|
then
|
||||||
|
echo -n "Adresse mail de l\'administrateur du site: "
|
||||||
|
read SCODOC_ADMIN_MAIL
|
||||||
|
SECRET_KEY=$(python3 -c "import uuid; print(uuid.uuid4().hex)")
|
||||||
|
cat > /opt/scodoc/.env <<EOF
|
||||||
|
# .env for ScoDoc (production)
|
||||||
|
FLASK_APP=scodoc.py
|
||||||
|
FLASK_ENV=production
|
||||||
|
|
||||||
|
MAIL_SERVER=localhost
|
||||||
|
MAIL_PORT=25
|
||||||
|
|
||||||
|
SCODOC_ADMIN_MAIL="$SCODOC_ADMIN_MAIL" # important: le mail de admin
|
||||||
|
SECRET_KEY="$SECRET_KEY" # une chaine aléatoire"
|
||||||
|
|
||||||
|
EOF
|
||||||
|
echo "Fichier /opt/scodoc/.env créé avec:"
|
||||||
|
cat /opt/scodoc/.env
|
||||||
|
echo
|
||||||
|
echo "Vous pouvez le modifier si besoin."
|
||||||
|
echo
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ------------ CREATION BASE DE DONNEES
|
||||||
|
echo
|
||||||
|
echo "Voulez-vous créer la base SQL SCODOC ?"
|
||||||
|
echo "répondre O sauf si vous avez déjà une base existante"
|
||||||
|
echo "que vous souhaitez conserver."
|
||||||
|
echo -n 'Créer la base de données SCODOC ? (y/n) [y] '
|
||||||
|
read -r ans
|
||||||
|
if [ "$(norm_ans "$ans")" != 'N' ]
|
||||||
|
then
|
||||||
|
# on ne créée pas les bases TEST et DEV
|
||||||
|
su -c "/opt/scodoc/tools/create_database.sh SCODOC" || die "Erreur: create_database.sh SCODOC"
|
||||||
|
echo "base SCODOC créée."
|
||||||
|
# ------------ INITIALISATION BASE DE DONNEES
|
||||||
|
su -c "(cd /opt/scodoc; source venv/bin/activate; flask db-init; flask user-password admin)" || die "Erreur: db-init"
|
||||||
|
fi
|
||||||
|
|
||||||
|
systemctl start redis
|
||||||
|
systemctl start scodoc9
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "Service configuré et démarré."
|
||||||
|
echo
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -3,8 +3,9 @@
|
|||||||
# Post-installation de scodoc
|
# Post-installation de scodoc
|
||||||
# ici, le répertoire /opt/scodoc vient d'être installé
|
# ici, le répertoire /opt/scodoc vient d'être installé
|
||||||
|
|
||||||
|
cd /opt/scodoc || (echo "Error chdir to /opt/scodoc"; exit 1)
|
||||||
|
|
||||||
# On peut donc charger la config:
|
# On peut donc charger la config:
|
||||||
cd /opt/scodoc
|
|
||||||
source /opt/scodoc/tools/config.sh
|
source /opt/scodoc/tools/config.sh
|
||||||
source /opt/scodoc/tools/utils.sh
|
source /opt/scodoc/tools/utils.sh
|
||||||
|
|
||||||
@ -43,7 +44,9 @@ echo "$SVERSION" > "${SCODOC_VERSION_DIR}/scodoc.sn"
|
|||||||
# pip in our env, as user "scodoc"
|
# pip in our env, as user "scodoc"
|
||||||
(cd $SCODOC_DIR && source venv/bin/activate && pip install wheel && pip install -r requirements-3.9.txt) || die "Error installing python packages"
|
(cd $SCODOC_DIR && source venv/bin/activate && pip install wheel && pip install -r requirements-3.9.txt) || die "Error installing python packages"
|
||||||
|
|
||||||
|
# --- NGINX
|
||||||
|
ln -s /etc/nginx/sites-available/scodoc9.nginx /etc/nginx/sites-enabled/
|
||||||
|
/bin/rm -f /etc/nginx/sites-enabled/default
|
||||||
|
|
||||||
# --- POSTGRESQL
|
# --- POSTGRESQL
|
||||||
# --- Ensure postgres user "scodoc" ($POSTGRES_USER) exists
|
# --- Ensure postgres user "scodoc" ($POSTGRES_USER) exists
|
||||||
|
@ -64,7 +64,7 @@ check_create_scodoc_user() {
|
|||||||
if ! id -u "${SCODOC_USER}" &> /dev/null
|
if ! id -u "${SCODOC_USER}" &> /dev/null
|
||||||
then
|
then
|
||||||
echo "Creating unix user ${SCODOC_USER}"
|
echo "Creating unix user ${SCODOC_USER}"
|
||||||
adduser --no-create-home --shell /bin/bash --gecos "ScoDoc service" "${SCODOC_USER}" || die "failed to create user"
|
adduser --shell /bin/bash --disabled-password --gecos "ScoDoc service" "${SCODOC_USER}" || die "failed to create user"
|
||||||
else
|
else
|
||||||
echo "Unix user ${SCODOC_USER} exists"
|
echo "Unix user ${SCODOC_USER} exists"
|
||||||
fi
|
fi
|
||||||
|
Loading…
Reference in New Issue
Block a user