For AI agents: the complete documentation index is available at https://docs.ovhcloud.com/fr/llms.txt, the full documentation bundle is available at https://docs.ovhcloud.com/fr/llms-full.txt, and this page is available as Markdown at https://docs.ovhcloud.com/fr/guides/public-cloud/databases/postgresql-tuto-connect-wagtail-to-managed-postgresql.md.

Installer et connecter Wagtail à Public Cloud Databases for PostgreSQL

Voir en Markdown

Découvrez comment installer Wagtail et le connecter à un service PostgreSQL managé OVHcloud

Objectif

Wagtail est un système de gestion de contenu (CMS) gratuit et open source écrit en Python. Il est populaire parmi les sites web utilisant le framework Django.

Dans ce tutoriel, nous allons vous montrer comment installer Wagtail et comment le connecter au service de base de données PostgreSQL managé par OVHcloud.

Warning

OVHcloud fournit des services dont vous êtes responsable de la configuration et de la gestion. Vous êtes donc responsable de leur bon fonctionnement.

Ce tutoriel est conçu pour vous aider autant que possible dans les tâches courantes. Si vous rencontrez des difficultés pour effectuer ces actions, veuillez contacter un prestataire de services spécialisé et/ou en discuter avec notre communauté d'utilisateurs. OVHcloud ne peut pas vous fournir d'assistance technique à ce sujet.

Prérequis

  • Un projet Public Cloud dans votre compte OVHcloud.
  • Un service Public Cloud Databases for PostgreSQL opérationnel.
  • Un environnement Python dans une version stable et une connectivité réseau publique (Internet). Ce tutoriel a été réalisé avec Python 3.9.7.

Accès à l'espace client OVHcloud

  • Lien direct :
  • Chemin de navigation : Public Cloud > Sélectionnez votre projet

Info

Wagtail prend en charge Python 3.7, 3.8, 3.9 et 3.10.

Configurer votre instance PostgreSQL pour accepter les connexions entrantes

Avant d'établir une connexion, nous devons vérifier que notre instance PostgreSQL est correctement configurée.

Cliquez sur Databases dans le menu de navigation de gauche et sélectionnez votre instance PostgreSQL.

Étape 1 : vérifiez vos rôles utilisateur et votre mot de passe

Sélectionnez l'onglet Utilisateurs. Vérifiez que vous disposez d'un utilisateur avec des droits suffisants et d'un mot de passe configuré. Si vous ne vous souvenez plus du mot de passe de l'utilisateur, vous pouvez soit créer un nouvel utilisateur, soit régénérer le mot de passe d'un utilisateur existant. Attention ! En faisant cela, vous devrez mettre à jour tous les endroits où vous utilisez déjà cette paire utilisateur/mot de passe.

Ce premier utilisateur avnadmin dispose des privilèges suivants :

  LOGIN
  NOSUPERUSER
  INHERIT
  CREATEDB
  CREATEROLE
  REPLICATION

Nous nous appuyons sur les rôles et privilèges officiels de PostgreSQL. Vous pouvez les gérer vous-même via la CLI ou par code. À ce jour, la gestion des droits et privilèges des utilisateurs n'est pas prise en charge via l'espace client OVHcloud ou l'API OVHcloud.

Veuillez consulter la documentation officielle de PostgreSQL pour sélectionner les rôles adaptés à votre cas d'usage.

Dans notre exemple, nous allons simplement réinitialiser le mot de passe de avnadmin.

Une fois créé ou mis à jour, l'utilisateur doit être prêt et avoir le statut "Enabled" dans l'espace client.

Utilisateur prêt

Étape 2 : autoriser les connexions entrantes depuis le client PostgreSQL

Dans cette étape, sélectionnez l'onglet IPs autorisées (liste de contrôle d'accès). Par défaut, une base de données Public Cloud n'accepte aucune forme de connexion venant de l'extérieur. Cela permet de prévenir les tentatives de connexion intrusives.

Cliquez pour autoriser une nouvelle IP, et saisissez l'IP de votre environnement Python trouvée précédemment. Dans notre cas, nous saisirons 109.190.200.59.

Ajouter une IP
Info

Si vous souhaitez autoriser toutes les connexions provenant de l'extérieur, vous pouvez saisir l'IP 0.0.0.0/0. Veuillez l'utiliser avec précaution. Toutes les IP seront autorisées.

Info

Avant d'installer Wagtail, il est nécessaire d'installer les bibliothèques libjpeg et zlib, qui apportent la prise en charge des images JPEG, PNG et GIF (via la bibliothèque Python Pillow).

En pratique

Créer et activer un environnement virtuel

$ python3 -m venv mysite/env
$ source mysite/env/bin/activate
Info

Si vous utilisez un système de contrôle de version (par exemple git), mysite sera le répertoire de votre projet. Le répertoire env qu'il contient doit être exclu de tout système de contrôle de version.

Installer Wagtail

Veuillez suivre la documentation officielle pour installer Wagtail.

Vous trouverez ci-dessous un résumé du processus d'installation.

Utilisez pip, fourni avec Python, pour installer Wagtail et ses dépendances :

$ pip install wagtail

Générer votre site

Wagtail fournit une commande de démarrage similaire à django-admin startproject. L'exécution de wagtail start mysite dans votre projet génèrera un nouveau dossier mysite avec quelques éléments spécifiques à Wagtail, notamment les paramètres de projet requis, une application "home" avec un modèle HomePage vide et des templates de base, ainsi qu'une application "search" d'exemple.

Comme le dossier mysite a déjà été créé par venv, exécutez wagtail start avec un argument supplémentaire pour spécifier le répertoire de destination :

$ wagtail start mysite mysite

Installer les dépendances du projet

$ cd mysite
$ pip install -r requirements.txt

Créer la base de données

Si vous conservez les paramètres par défaut de Wagtail, une base de données SQLite locale sera utilisée dans le répertoire du projet. Cela convient pour un PoC, mais n'est pas recommandé en production, pour plusieurs raisons (performance, sécurité, résilience, etc.). Ici, nous allons configurer Wagtail pour qu'il utilise une base de données Public Cloud Databases for PostgreSQL comme backend.

Avant de créer la base de données, modifions le fichier mysite/mysite/settings/base.py et adaptons les paramètres de connexion à la base de données.

Les paramètres utiles, disponibles dans l', sont :

  • L'hôte (Host) et le port (Port) de la base de données
    • Récupérez-les depuis l'onglet "General Information".
  • Le nom (Name) de la base de données
    • Récupérez-le depuis l'onglet "Databases", généralement "defaultdb".
  • L'utilisateur (User) de la base de données
    • Récupérez-le depuis l'onglet "Users", généralement "avnadmin".
  • Le mot de passe (Password) de la base de données
    • Récupérez-le après l'avoir réinitialisé.
Mot de passe réinitialisé
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': <db_name>,
        'USER': `<username>`,
        'PASSWORD': <password>,
        'HOST': <host>,
        'PORT': <port>,
        'OPTIONS': {
          'sslmode': 'require'
        }
    }
}

Créez ensuite la base de données :

$ python manage.py migrate

Cette commande garantit que les tables de votre base de données correspondent aux modèles de votre projet. Chaque fois que vous modifiez un modèle (par exemple en ajoutant un champ à un modèle), vous devrez exécuter cette commande pour mettre à jour la base de données.

Créer un utilisateur administrateur

Une fois connecté au site d'administration, un superutilisateur dispose de toutes les permissions et peut consulter/créer/gérer la base de données.

$ python manage.py createsuperuser

Démarrer le serveur

$ python manage.py runserver

Si tout a fonctionné, http://127.0.0.1:8000 affichera une page d'accueil :

Page d'accueil de Wagtail

Vous pouvez désormais accéder à la zone d'administration à l'adresse http://127.0.0.1:8000/admin :

Page d'administration de Wagtail

Nettoyage

Pour nettoyer votre installation Wagtail, assurez-vous qu'elle est arrêtée en appuyant sur CTRL+C dans le terminal que vous avez utilisé pour la lancer, puis supprimez votre dossier d'installation.

rm -rf /home/my/app/path/my-wagtail/

Pour nettoyer votre PostgreSQL, utilisez l'espace client OVHcloud pour supprimer votre service PostgreSQL managé :

Menu de suppression du service

Nous voulons vos retours !

Nous serions ravis de répondre à vos questions et apprécions tout retour que vous pourriez nous faire.

Si vous avez besoin d'une formation ou d'une assistance technique pour la mise en oeuvre de nos solutions, contactez votre commercial ou cliquez sur ce lien pour obtenir un devis et demander une analyse personnalisée de votre projet à nos experts de l’équipe Professional Services.

Vous êtes sur Discord ? Rejoignez notre chaîne via https://discord.gg/ovhcloud et interagissez directement avec l’équipe qui développe notre service de bases de données !

Cette page vous a-t-elle aidé ?