autohebergement
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| autohebergement [2023/09/17 10:07] – guerdal | autohebergement [2023/12/08 22:37] (Version actuelle) – voir aussi + hiérarchie fred.th | ||
|---|---|---|---|
| Ligne 9: | Ligne 9: | ||
| - Une base de données | - Une base de données | ||
| - | ===== Un hébergement sécurisé et compatible | + | ==== Un hébergement sécurisé et compatible ==== |
| La solution NoethysWeb fonctionne grâce au moteur [[https:// | La solution NoethysWeb fonctionne grâce au moteur [[https:// | ||
| Nous partirons du postulat que la machine fonctionne avec le système d' | Nous partirons du postulat que la machine fonctionne avec le système d' | ||
| - | ===== Une adresse sécurisée SSL ===== | + | ==== Une adresse sécurisée SSL ==== |
| Afin de permettre l' | Afin de permettre l' | ||
| - | //**Note de l' | + | //**Note de l' |
| - | ===== Une connexion SFTP/ | + | ==== Une connexion SFTP/SSH ==== |
| Afin d' | Afin d' | ||
| - | ===== Base de données | + | ==== Base de données ==== |
| NoethysWeb fonctionne avec une base de données, celle-ci est de base sur le moteur sqlite3. On peut aussi utiliser d' | NoethysWeb fonctionne avec une base de données, celle-ci est de base sur le moteur sqlite3. On peut aussi utiliser d' | ||
| Ligne 29: | Ligne 29: | ||
| Nous partirons du postulat que le moteur sélectionné est Mysql. | Nous partirons du postulat que le moteur sélectionné est Mysql. | ||
| - | ====== Installation | + | ===== Installation |
| - | Une fois le système d' | + | Une fois le système d' |
| + | Pour l' | ||
| * Django étant basé sur Python, nous allons installer Python3 et son pendant Webserveur : Gunicorn. | * Django étant basé sur Python, nous allons installer Python3 et son pendant Webserveur : Gunicorn. | ||
| - | < | + | < |
| apt install python3 python3-pip gunicorn | apt install python3 python3-pip gunicorn | ||
| </ | </ | ||
| * Le téléchargement de NoethysWeb et sa mise à jour se faisant via Git, on l' | * Le téléchargement de NoethysWeb et sa mise à jour se faisant via Git, on l' | ||
| - | < | + | < |
| apt install git | apt install git | ||
| </ | </ | ||
| * Nous aurons besoin d'un serveur Web avec certificat https pour fournir l' | * Nous aurons besoin d'un serveur Web avec certificat https pour fournir l' | ||
| - | < | + | < |
| apt install nginx certbot | apt install nginx certbot | ||
| </ | </ | ||
| - | ===== Installation de NoethysWeb | + | |
| + | |||
| + | ==== Installation de NoethysWeb ==== | ||
| On crée un espace qui va acceuillir le code de NoethysWeb, on va placer ça dans **/ | On crée un espace qui va acceuillir le code de NoethysWeb, on va placer ça dans **/ | ||
| - | < | + | < |
| mkdir / | mkdir / | ||
| </ | </ | ||
| Ligne 56: | Ligne 59: | ||
| On téléchargement le code source de NoethysWeb, on met à jour le système avec les pré-requis de l' | On téléchargement le code source de NoethysWeb, on met à jour le système avec les pré-requis de l' | ||
| - | < | + | < |
| cd / | cd / | ||
| git clone https:// | git clone https:// | ||
| Ligne 68: | Ligne 71: | ||
| On initialise ensuite la base de données et l' | On initialise ensuite la base de données et l' | ||
| - | < | + | < |
| python3 manage.py makemigrations | python3 manage.py makemigrations | ||
| python3 manage.py migrate | python3 manage.py migrate | ||
| Ligne 77: | Ligne 80: | ||
| Si vous souhaitez commencer avec une base de données vide : | Si vous souhaitez commencer avec une base de données vide : | ||
| - | < | + | < |
| python3 manage.py import_defaut | python3 manage.py import_defaut | ||
| </ | </ | ||
| Ou si vous souhaitez importer la base de données d'un fichier Noethys - où xxx est le nom du fichier d' | Ou si vous souhaitez importer la base de données d'un fichier Noethys - où xxx est le nom du fichier d' | ||
| - | < | + | < |
| python3 manage.py import_fichier xxx.nweb motdepasse | python3 manage.py import_fichier xxx.nweb motdepasse | ||
| </ | </ | ||
| Lancez enfin le serveur intégré pour tester si tout fonctionne jusque là. | Lancez enfin le serveur intégré pour tester si tout fonctionne jusque là. | ||
| - | < | + | < |
| python3 manage.py runserver | python3 manage.py runserver | ||
| </ | </ | ||
| Ligne 96: | Ligne 99: | ||
| * http:// | * http:// | ||
| - | ===== Mise en production ===== | + | ==== Mise en production ==== |
| + | |||
| + | Une fois les tests effectués, on passe à la mise en production. | ||
| La mise en production va passer par la configuration à la fois de Gunicorn, applicatif qui va faire tourner la partie Web Python, et Nginx, applicatif qui va s' | La mise en production va passer par la configuration à la fois de Gunicorn, applicatif qui va faire tourner la partie Web Python, et Nginx, applicatif qui va s' | ||
| - | **/ | + | Le démarrage de l' |
| - | < | + | < |
| [Unit] | [Unit] | ||
| Description=gunicorn daemon | Description=gunicorn daemon | ||
| Ligne 116: | Ligne 121: | ||
| </ | </ | ||
| - | **/ | + | Puis on passe les commandes : |
| - | < | + | <code bash> |
| + | systemctl daemon-reload | ||
| + | systemctl restart gunicorn.service | ||
| + | </ | ||
| + | |||
| + | Ensuite, concernant Nginx, on va faire ça en deux étapes : | ||
| + | - Génération du certificat SSL avec certbot | ||
| + | - Configuration de Nginx pour gérer le SSL | ||
| + | |||
| + | === Gestion Certificat === | ||
| + | |||
| + | On va utiliser [[https:// | ||
| + | |||
| + | Pour ce faire nous allons configurer nginx en créant le fichier **/ | ||
| + | <code bash> | ||
| + | server { | ||
| + | listen 80 default_server; | ||
| + | listen [::]:80 default_server; | ||
| + | |||
| + | server_name nom_de_domaine; | ||
| + | |||
| + | # On va gérer les apples de Certbot | ||
| + | location / | ||
| + | root / | ||
| + | try_files $uri index.php; | ||
| + | } | ||
| + | |||
| + | # On redirige les appels vers la partie https du site | ||
| + | location / { | ||
| + | rewrite ^ https:// | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | On supprime le fichier **default** présent dans le répertoire **/ | ||
| + | On relance nginx avec la commande **systemctl restart nginx.service** | ||
| + | |||
| + | Puis on lance la commande certbot pour acquérir un certificat pour notre domaine | ||
| + | <code bash> | ||
| + | certbot --renew-by-default certonly --webroot -w / | ||
| + | </ | ||
| + | |||
| + | Une fois le certificat récupéré, | ||
| + | < | ||
| server { | server { | ||
| listen 80 default_server; | listen 80 default_server; | ||
| Ligne 200: | Ligne 248: | ||
| } | } | ||
| </ | </ | ||
| + | |||
| + | On relance le service nginx (**systemctl restart nginx.service**) et on teste avec les urls : | ||
| + | * < | ||
| + | * < | ||
| + | * < | ||
| + | |||
| + | =====Voir aussi===== | ||
| + | Dans la rubrique installation-hébergement : | ||
| + | * [[autohebergement]] | ||
| + | * [[installation_apache]] | ||
| + | * [[settings_production_detail]] | ||
| + | * [[noethysweb_easy]] | ||
autohebergement.1694938073.txt.gz · Dernière modification : 2023/09/17 10:07 de guerdal