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 : .. code-block:: bash 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é) .. code-block:: bash curl https://pyenv.run | bash Afin de pouvoir lancer facilement pyenv, ajoute les lignes suivantes à la fin de ton fichier ~/.bashrc .. code-block:: bash export PATH="$HOME/.pyenv/bin:$PATH" eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)" Puis recharge ton shell : .. code-block:: bash source ~/.bashrc Installation de DIAL ++++++++++++++++++++ Clone le programme : .. code-block:: bash git clone https://gitlab.osureunion.fr/payen/dial-lidar-ozone-retrieval-for-actris.git Va dans le dossier nouvellement créé : .. code-block:: bash cd dial-lidar-ozone-retrieval-for-actris Installer Python 3.10 .. code-block:: bash pyenv install 3.10.14 Créer un environnement virtuel avec pyenv .. code-block:: bash pyenv virtualenv 3.10.14 dash_env_310 pyenv activate dash_env_310 Installer les requirements .. code-block:: bash pip install -r requirements.txt Installation de Nginx et gunicorn +++++++++++++++++++++++++++++++++ Permet d'avoir plus de sécurité dans l'application Installer Nginx .. code-block:: bash sudo apt update sudo apt install nginx pip install gunicorn Crée la config Nginx pour ton app Dash .. code-block:: bash sudo nano /etc/nginx/sites-available/dash_app Crée un fichier de config pour ton app .. code-block:: ini 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 .. code-block:: bash 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 .. code-block:: bash sudo nano /etc/systemd/system/dash_app.service Contenu du fichier de service .. code-block:: ini [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 .. code-block:: bash sudo systemctl daemon-reload Active le service au démarrage .. code-block:: bash sudo systemctl enable dash_app Démarre ton service .. code-block:: bash sudo systemctl start dash_app