# INSTALLATION
Cette documentation décrit l'installation indépendante (standalone) de TaxHub.
Si vous utilisez GeoNature, TaxHub y est intégré et il n'est alors pas nécessaire d'installer
TaxHub indépendamment.
## Prérequis
Pour installer TaxHub, il vous faut un serveur avec Debian 11 ou 12.
L'utilisation de TaxHub avec une autre distribution est théoriquement
possible, mais n'est pas officiellement supporté.
## Création d'un utilisateur
Vous devez disposer d'un utilisateur Linux pour faire tourner TaxHub
(nommé `synthese` dans notre exemple). L'utilisateur doit appartenir aux
groupes `sudo` et `www-data`. 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.
```sh
adduser --home /home/synthese synthese
adduser synthese sudo
adduser synthese www-data
```
>**_NOTE:_**
> Pour la suite de l'installation, veuillez utiliser l'utilisateur
> Linux créé précedemment (`synthese` dans l'exemple), et non
> l'utilisateur `root`.
## Installation des dépendances requises
Installez les dépendances suivantes :
```sh
sudo apt install -y apache2 python3-pip python3-venv libpq-dev libgdal-dev sudo unzip
sudo apt install -y postgresql postgresql-postgis
```
## Configuration de PostgreSQL
Créer un utilisateur PostgreSQL :
```sh
sudo -u postgres createuser geonatadmin --pwpromt
```
## Récupération du code source de TaxHub
Récupérer le zip de l'application sur le [Github du projet](https://github.com/PnX-SI/TaxHub/releases)
(X.Y.Z à remplacer par le numéro de version
souhaité), dézippez le dans
le répertoire `/home/synthese` :
```sh
cd /home/synthese
wget https://github.com/PnX-SI/TaxHub/archive/X.Y.Z.zip
unzip X.Y.Z.zip
mv TaxHub-X.Y.Z taxhub
rm X.Y.Z.zip
cd taxhub
```
## Configuration de l'installation
Créer et mettre à jour le fichier `settings.ini` :
```sh
cp settings.ini.sample settings.ini
nano settings.ini
```
ATTENTION : Les valeurs renseignées dans ce fichier sont utilisées par
le script d'installation de la base de données `install_db.sh` et par
le script `install_app.sh`.
Renseignez les informations nécessaires à la connexion à la base de
données PostgreSQL. Il est possible de laisser la plupart des valeurs
proposées par défaut, mais lisez au moins le fichier de bout en bout
pour savoir ce qu'il est possible de changer.
La valeur la plus importante à mettre à jour est `user_pg_pass=monpassachanger`
(`monpassachanger` doit être remplacé par celui choisi lors de l'étape
de configuration de PostgreSQL).
## Installation de l'application
Lancez le fichier d'installation et de configuration de l'application
```sh
./install_app.sh
```
## Création de la base de données
Lancer le fichier d'installation et de préparation de la base de
données :
```sh
cd ~/taxhub
./install_db.sh
```
Le script va ouvrir une nouvelle fois le fichier de configuration
`settings.ini` avec nano, pour vous donner une opportunité de revoir une
dernière fois ses paramètres. Vous pouvez sauvegarder le fichier tel
quel pour continuer (ctrl + x).
## Configuration de l'application
- La configuration de l'application est réalisée dans le fichier `config/taxhub_config.toml` (créé automatiquement lors de l'installation de TaxHub)
- La liste de tous paramètres et de leurs valeurs par défaut est disponible dans `config/taxhub_config.toml.default`
- Si vous modifiez le fichier de configuration de TaxHub (`config/taxhub_config.toml`), vous devez redémarrer l'application avec la commande `sudo systemctl restart taxhub`
## Arrêter/Lancer l'application
- Pour arrêter TaxHub
```sh
sudo systemctl stop taxhub
```
- Pour démarrer TaxHub
```
sudo supervisorctl start taxhub
```
## Configuration Apache
Voici une des manières de configurer Apache. Elle se base sur le fait
que la configuration `/etc/apache2/sites-available/000-default.conf`
existe par défaut et va automatiquement charger notre nouvelle entrée.
Le script d'installation de TaxHub crée automatiquement le ficher
`/etc/apache2/conf-available/taxhub.conf` (à partir du fichier `taxhub_apache.conf`) et l'active
(`a2enconf taxhub`). Ce fichier vous permet d'accéder à TaxHub via l'URL
.
## Mise à jour de l'application
Les différentes versions de TaxHub sont disponibles sur le Github du
projet ()
- Lire attentivement les notes de chaque version si il y a des
spécificités (). Suivre
ces instructions avant de continuer la mise à jour.
- Télécharger et extraire la version souhaitée dans un répertoire
séparé (où `X.Y.Z` est à remplacer par le numéro de la version que
vous installez) :
```sh
cd
wget https://github.com/PnX-SI/TaxHub/archive/X.Y.Z.zip
unzip X.Y.Z.zip
mv taxhub taxhub_old
mv TaxHub-X.Y.Z/ taxhub
rm X.Y.Z.zip
```
- Récupérer les anciens fichiers de configuration :
```sh
cp taxhub_old/settings.ini taxhub/settings.ini
cp taxhub_old/config/taxhub_config.toml taxhub_old/config/taxhub_config.toml
```
- Récupérer les médias uploadés dans la précédente version de TaxHub (avant la version 2.0) :
```sh
cp -aR taxhub_old/static/medias/ taxhub/static/
```
- Récupérer les médias uploadés dans la précédente version de TaxHub (après la version 2.0) :
```sh
cp -aR taxhub_old/media taxhub
```
- Lancer l'installation de l'application et de ses dépendances :
```sh
cd taxhub
./install_app.sh
```
- Mettre à jour le schéma de base de données en activant l'environnement virtuel :
```sh
cd taxhub
source venv/bin/activate
flask db autoupgrade
deactivate
```
- Une fois que l'installation est terminée et fonctionnelle, vous
pouvez supprimer la version précédente de TaxHub (répertoire
`taxhub_old`).
## Développement
Pour lancer l'application en mode debug :
```sh
cd ~/taxhub
source venv/bin/activate
flask run
```
TaxHub est alors accessible à l'adresse : `http://localhost:5000` (sans
`/taxhub`).