Skip to content

Commit

Permalink
Merge pull request #153 from PnX-SI/develop
Browse files Browse the repository at this point in the history
Develop > Master / Release 2.2.2
  • Loading branch information
camillemonchicourt committed Dec 22, 2021
2 parents f0d7d55 + 634feba commit 66c0ba3
Show file tree
Hide file tree
Showing 9 changed files with 134 additions and 111 deletions.
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.2.1
2.2.2
4 changes: 2 additions & 2 deletions app/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@ def configure_alembic(alembic_config):
def create_app():
app = Flask(__name__)
app.config.from_pyfile("../config/config.py")
app.config['APPLICATION_ROOT'] = urlsplit(app.config['URL_APPLICATION']).path
if 'SCRIPT_NAME' not in os.environ:
app.config['APPLICATION_ROOT'] = urlsplit(app.config['URL_APPLICATION']).path or '/'
if 'SCRIPT_NAME' not in os.environ and app.config['APPLICATION_ROOT'] != '/':
os.environ['SCRIPT_NAME'] = app.config['APPLICATION_ROOT']
app.config["URL_REDIRECT"] = "{}/{}".format(app.config["URL_APPLICATION"], "login")
app.secret_key = app.config["SECRET_KEY"]
Expand Down
3 changes: 0 additions & 3 deletions config/config.py.sample
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,6 @@ SQLALCHEMY_DATABASE_URI = "postgresql://monuser:monpassachanger@localhost/usersh
SQLALCHEMY_TRACK_MODIFICATIONS = False
URL_APPLICATION = 'http://localhost:5001'

# Liste d'URL depuis lesquels on accepte des requetes croisées
URLS_COR = ['http://localhost:5000']

SECRET_KEY = 'super secret key'

# Authentification crypting method (hash or md5)
Expand Down
21 changes: 19 additions & 2 deletions docs/changelog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,29 @@
CHANGELOG
=========

2.2.2 (2021-12-22)
------------------

**Corrections**

* Complément de la documentation Apache pour préciser quand UsersHub est sur un sous-domaine (https://usershub.readthedocs.io/fr/latest/installation.html#installation-de-usershub-sur-un-sous-domaine) (#148)
* Correction de la configuration quand UsersHub est à la racine d'un sous-domaine (#148)
* Correction de la génération automatique de la documentation sur Read the Docs (https://usershub.readthedocs.io)
* Suppression de l'extension ``Flask-Cors`` et du paramètre associé (``URLS_COR``) (#148)
* Si le fichier ``config/config.py`` existe, alors on n'écrase plus ses valeurs à partir de celles du fichier ``config/settings.ini`` quand on lance le script ``install_app.sh``, lors d'une mise à jour de UsersHub notamment

**Note de version**

Si vous mettez à jour UsersHub :

* Vous pouvez supprimer le paramètre ``URLS_COR`` de votre fichier ``config/config.py`` car celui-ci n'est plus utilisé

2.2.1 (2021-09-29)
------------------

**Nouveautés**

* Le fichier de configuration Apache fourni par UsersHub n’est plus automatiquement activé ; il peut l’être manuellement avec la commande ``a2enconf usershub``.
* Le fichier de configuration Apache fourni par UsersHub n’est plus automatiquement activé; il peut l’être manuellement avec la commande ``a2enconf usershub``.
* Une dépendance Alembic de la branche ``usershub`` vers la dernière révision de la branche ``utilisateurs`` permet d’obtenir automatiquement la dernière version du schéma ``utilisateurs`` avec la commande ``flask db upgrade usershub@head`` (tel que fait dans le script ``install_db.sh``).

2.2.0 (2021-09-29)
Expand Down Expand Up @@ -54,7 +71,7 @@ Si vous mettez à jour UsersHub :
* Le script d’installation ``install_app.sh`` aura installé le fichier ``/etc/apache2/conf-available/usershub.conf`` permettant de servir UsersHub sur le préfixe ``/usershub``.
* Vous pouvez utiliser ce fichier de configuration soit en l’activant (``sudo a2enconf usershub``), soit en l’incluant dans la configuration de votre vhost (``Include /etc/apache2/conf-available/usershub.conf``).
* Si vous gardez votre propre fichier de configuration et que vous servez UsersHub sur un préfixe (typiquement ``/usershub``), assurez vous que ce préfixe figure bien également à la fin des directives ``ProxyPass`` et ``ProxyPassReverse`` comme c’est le cas dans le fichier ``/etc/apache2/conf-available/usershub.conf``.
* Si vous décidez d’utiliser le fichier fourni, pensez à supprimer votre ancienne configuration apache (``sudo a2dissite usershub && sudo rm /etc/apache2/sites-available/usershub.conf``).
* Si vous décidez d’utiliser le fichier fourni, pensez à supprimer votre ancienne configuration Apache (``sudo a2dissite usershub && sudo rm /etc/apache2/sites-available/usershub.conf``).

* **Si vous n’utilisez pas GeoNature**, vous devez appliquer les évolutions du schéma ``utilisateurs`` depuis UsersHub :

Expand Down
5 changes: 4 additions & 1 deletion docs/index.rst
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
.. image:: http://geonature.fr/img/logo-pne.jpg
:target: http://www.ecrins-parcnational.fr

=================================
Bienvenue dans la doc de UsersHub
=================================

.. toctree::
:maxdepth: 2

server
installation
migration-v1v2
FAQ
Expand Down
118 changes: 98 additions & 20 deletions docs/installation.rst
Original file line number Diff line number Diff line change
@@ -1,17 +1,76 @@
===========
APPLICATION
===========
============
INSTALLATION
============

Cette documentation décrit l'installation indépendante de UsersHub. Il est aussi possible de réaliser l'installation avec le script automatisé d'installation globale de GeoNature (http://docs.geonature.fr/installation.html#installation-globale).

Prérequis
=========

Pour installer UsersHub, il vous faut un serveur avec :

* Debian 10 ou 11
* 1 Go de RAM
* 5 Go d’espace disque

Création d’un utilisateur
=========================

Vous devez disposer d'un utilisateur Linux pour faire tourner UsersHub (nommé ``synthese`` dans notre exemple). L’utilisateur doit appartenir au groupe ``sudo``. Le répertoire de cet utilisateur ``synthese`` doit être dans ``/home/synthese``. Si vous souhaitez utiliser un autre utilisateur Linux, vous devrez adapter les lignes de commande proposées dans cette documentation.

::

$ adduser --home /home/synthese synthese
$ adduser synthese sudo

:Note:

Pour la suite de l'installation, veuillez utiliser l'utilisateur Linux créé précedemment (``synthese`` dans l'exemple), et non l'utilisateur ``root``.

Configuration de la base de données PostgreSQL
==============================================
Installation des dépendances requises
=====================================

Installez les dépendances suivantes :

::

$ sudo apt install -y python3-venv libpq-dev postgresql apache2

Installer NVM (Node version manager), Node.js et npm :

::

$ wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash

Fermer la console et la réouvrir pour que l’environnement npm soit pris en compte.

Configuration de PostgresQL
===========================

Créer un utilisateur PostgreSQL :

::

* Créer et mettre à jour le fichier ``config/settings.ini``
$ sudo -u postgres psql -c "CREATE ROLE geonatuser WITH LOGIN PASSWORD 'monpassachanger';"

Téléchargement de UsersHub
==========================

Récupérer le zip de l'application sur le Github du projet (X.Y.Z à remplacer par la version souhaitée de UsersHub)

::

$ cd /home/synthese
$ wget https://github.com/PnX-SI/UsersHub/archive/X.Y.Z.zip
$ unzip X.Y.Z.zip
$ mv UsersHub-X.Y.Z usershub

Configuration de UsersHub
=========================

Créer et mettre à jour le fichier ``config/settings.ini`` :

::
::

$ cd ~/usershub
$ cp config/settings.ini.sample config/settings.ini
Expand All @@ -29,28 +88,28 @@ ATTENTION : Les valeurs renseignées dans ce fichier sont utilisées par le scri
Configuration de l'application
==============================

* Installation et configuration de l'application
::
* Installation de l'application :

::
cd ~/usershub
./install_app.sh


Création de la base de données
==============================
Création et installation de la base de données
==============================================

* Création de la base de données et chargement des données initiales
* Création de la base de données et chargement des données initiales :

::
::

cd ~/usershub
./install_db.sh


* Si vous souhaitez les données utilisateurs d’exemple, en particulier l’utilisateur ``admin`` (mot de passe : ``admin``), executez :

::
::

cd ~/usershub
source venv/bin/activate
Expand All @@ -60,20 +119,39 @@ Création de la base de données
Configuration Apache
====================

Copier le fichier de configuration apache d’exemple :
Activez les modules ``mod_proxy`` et ``mod_proxy_http``, et redémarrez Apache :

::

sudo cp ~/usershub/usershub_apache.conf /etc/apache2/conf-available/usershub.conf
$ sudo a2enmod proxy proxy_http
$ sudo systemctl restart apache

UsersHub peut être classiquement déployé sur 2 types d’URL distincts :

* Sur un préfixe : https://mon-domaine.fr/usershub/
* Sur un sous-domaine : https://usershub.mon-domaine.fr

Activer le site et recharger la configuration Apache :
Installation de UsersHub sur un préfixe
---------------------------------------

Le processus d’installation de l’application créer le fichier de configuration Apache ``/etc/apache2/conf-available/usershub.conf`` permettant de servir UsersHub sur le préfixe ``/usershub/``. Pour activer ce fichier de configuration, exécutez les commandes suivantes :

::

sudo a2enconf usershub
sudo service apache2 reload

* Pour tester, se connecter à l'application via http://mon-domaine.fr/usershub/ avec l'utilisateur ``admin`` et son mot de passe ``admin``.
Installation de UsersHub sur un sous-domaine
--------------------------------------------

Dans le cas où UsersHub est installé sur un sous-domaine et non sur un préfixe (c’est-à-dire ``https://usershub.mon-domaine.fr``), veuillez ajouter dans le fichier de configuration de votre virtualhost (*e.g.* ``/etc/apache2/sites-enabled/usershub.conf``) la section suivante :

::

<Location />
ProxyPass http://127.0.0.1:5001/
ProxyPassReverse http://127.0.0.1:5001/
</Location>


Mise à jour de l'application
Expand Down Expand Up @@ -102,7 +180,7 @@ Mise à jour de l'application
cp /home/`whoami`/usershub_old/config/config.py /home/`whoami`/usershub/config/config.py
cp /home/`whoami`/usershub_old/config/settings.ini /home/`whoami`/usershub/config/settings.ini

* Lancer le script d'installation de l'application :
* Lancer le script d'installation de l'application (attention si vous avez modifiez certains paramètres dans le fichier ``config.py`` tels que les paramètres de connexion à la base de données, ils seront écrasés par les paramètres présent dans le fichier ``settings.ini``) :

::
Expand Down
70 changes: 0 additions & 70 deletions docs/server.rst

This file was deleted.

21 changes: 10 additions & 11 deletions install_app.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,19 +9,18 @@ cd config
echo "Création du fichier de configuration ..."
if [ ! -f config.py ]; then
cp config.py.sample config.py || exit 1
fi


echo "préparation du fichier config.py..."
sed -i "s/SQLALCHEMY_DATABASE_URI = .*$/SQLALCHEMY_DATABASE_URI = \"postgresql:\/\/$user_pg:$user_pg_pass@$db_host:$pg_port\/$db_name\"/" config.py || exit 1

url_application="${url_application//\//\\/}"
# on enleve le / final
if [ "${url_application: -1}" = '/' ]
then
url_application="${url_application::-1}"
echo "préparation du fichier config.py..."
sed -i "s/SQLALCHEMY_DATABASE_URI = .*$/SQLALCHEMY_DATABASE_URI = \"postgresql:\/\/$user_pg:$user_pg_pass@$db_host:$pg_port\/$db_name\"/" config.py || exit 1

url_application="${url_application//\//\\/}"
# on enleve le / final
if [ "${url_application: -1}" = '/' ]
then
url_application="${url_application::-1}"
fi
sed -i "s/URL_APPLICATION =.*$/URL_APPLICATION ='$url_application'/g" config.py || exit 1
fi
sed -i "s/URL_APPLICATION =.*$/URL_APPLICATION ='$url_application'/g" config.py || exit 1

cd ..

Expand Down
1 change: 0 additions & 1 deletion requirements-common.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ bcrypt==3.1.4
click==6.7
decorator==4.3.0
Flask-Bootstrap==3.3.7.1
Flask-Cors==3.0.10
Flask-Migrate==3.1.0
Flask-SQLAlchemy==2.3.2
Flask-WTF==0.14.2
Expand Down

0 comments on commit 66c0ba3

Please sign in to comment.