Installation sur un serveur OVH

Informations sur le serveur

Création d’un Serveur Privé Virtuel, avec les paramètres suivantes :

  • Modèle : VPS vps2023-le-4

  • vCores : 4

  • Mémoire : 4 Go

  • Stockage : 80 Go

  • **Ubuntu 24.10 **

  • Localisation : Gravelines (GRA) - France

Installation sur le nouveau serveur

Installation de pyenv

Pyenv est nécessaire afin d’installer la version 3.10 de Python (paquets non disponibles avec la dernière version d’ubuntu).

Installer les dépendances pour pyenv :

sudo apt update
sudo apt install -y make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev

Installer pyenv (via le script recommandé)

curl https://pyenv.run | bash

Afin de pouvoir lancer facilement pyenv, ajoute les lignes suivantes à la fin de ton fichier ~/.bashrc

export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

Puis recharge ton shell :

source ~/.bashrc

Installation de DIAL

Clone le programme :

git clone https://gitlab.osureunion.fr/payen/dial-lidar-ozone-retrieval-for-actris.git

Va dans le dossier nouvellement créé :

cd dial-lidar-ozone-retrieval-for-actris

Installer Python 3.10

pyenv install 3.10.14

Créer un environnement virtuel avec pyenv

pyenv virtualenv 3.10.14 dash_env_310
pyenv activate dash_env_310

Installer les requirements

pip install -r requirements.txt

Installation de Nginx et gunicorn

Permet d’avoir plus de sécurité dans l’application

Installer Nginx

sudo apt update
sudo apt install nginx
pip install gunicorn

Crée la config Nginx pour ton app Dash

sudo nano /etc/nginx/sites-available/dash_app

Crée un fichier de config pour ton app

server {
    listen 80;
    server_name _;

    location / {
        proxy_pass http://127.0.0.1:8050;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Activer le site et recharger Nginx

sudo ln -s /etc/nginx/sites-available/dash_app /etc/nginx/sites-enabled/
# Désactive le site par défaut
sudo rm /etc/nginx/sites-enabled/default
sudo nginx -t   # pour vérifier la syntaxe
sudo systemctl reload nginx

Création du service de lancement du programme

Crée un fichier systemd pour ton app

sudo nano /etc/systemd/system/dash_app.service

Contenu du fichier de service

[Unit]
Description=Dash App - ozone_user_interface
After=network.target

[Service]
User=ubuntu
WorkingDirectory=/home/ubuntu/dial-lidar-ozone-retrieval-for-actris
Environment="PATH=/home/ubuntu/.pyenv/versions/3.10.14/envs/dash_env_310/bin"
ExecStart=/home/ubuntu/.pyenv/versions/3.10.14/envs/dash_env_310/bin/gunicorn ozone_user_interface:server --bind 127.0.0.1:8050

Restart=always
RestartSec=3

[Install]
WantedBy=multi-user.target

Recharge la configuration de systemd

sudo systemctl daemon-reload

Active le service au démarrage

sudo systemctl enable dash_app

Démarre ton service

sudo systemctl start dash_app