Introduction
Actuellement, CloudPanel ne propose pas de support natif pour PostgreSQL dans sa stack, malgré une demande de fonctionnalité active sur le sujet. Vous pouvez consulter cette feature request ici. Bien que cette fonctionnalité ne soit pas encore prise en charge, il est tout à fait possible de configurer PostgreSQL manuellement sur un serveur CloudPanel.
Dans cet article, nous allons vous guider à travers l’installation de PostgreSQL et de pgAdmin 4 dans un environnement CloudPanel. PostgreSQL est un système de gestion de bases de données relationnelles open source, réputé pour sa robustesse et sa flexibilité. pgAdmin 4, quant à lui, est un outil web qui facilite la gestion de PostgreSQL à travers une interface graphique conviviale. Nous aborderons les étapes nécessaires pour installer ces outils et configurer un reverse proxy pour y accéder facilement.
Prérequis
Avant de commencer, assurez-vous d’avoir les éléments suivants :
- Un serveur fonctionnant sous Ubuntu : Les commandes présentées sont optimisées pour un environnement Ubuntu.
- Accès root ou sudo : Vous aurez besoin de privilèges administratifs pour installer les logiciels nécessaires.
- CloudPanel installé : Assurez-vous que votre instance CloudPanel est opérationnelle.
Use Case
Supposons que nous avons un serveur cloud configuré pour héberger plusieurs applications. Nous souhaitons ajouter PostgreSQL comme base de données pour notre application et pgAdmin 4 pour gérer cette base de données facilement à partir d’une interface web. Dans cet exemple, nous allons utiliser le domaine pgadmin.example.com
pour accéder à pgAdmin 4. Il est important de noter que les commandes utilisées dans cet article se baseront sur notre nom de domaine example.com
, donc il appartient à l’utilisateur d’adapter les commandes en fonction de ses choix de nomenclature.
Installer PostgreSQL 16
sudo apt update
sudo apt install -y postgresql-common -y
sudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
sudo apt install -y postgresql
Une fois l’installation terminée, vérifiez que PostgreSQL 16 est bien installé en exécutant :
psql --version
Cela devrait afficher quelque chose comme psql (PostgreSQL) 16.x
. Redémarrez le service PostgreSQL pour vous assurer qu’il fonctionne correctement :
sudo systemctl restart postgresql
sudo systemctl status postgresql
Configurer différentes versions PostgreSQL
Si vous avez déjà une ancienne version de PostgreSQL installée sur votre serveur, vous pouvez la conserver. En effet, plusieurs versions de PostgreSQL peuvent coexister sur le même système Ubuntu. Cette fonctionnalité est particulièrement avantageuse pour les développeurs et les administrateurs de bases de données souhaitant tester de nouvelles versions tout en maintenant l’accès à d’anciennes versions pour les applications qui en dépendent. Cependant, si vous préférez n’avoir qu’une seule instance de PostgreSQL, veuillez suivre les étapes ci-dessous.
Assurez-vous que l’ancienne version de PostgreSQL (par exemple la version 14) n’est pas en cours d’exécution. Vous pouvez vérifier cela en exécutant :
sudo systemctl status postgresql@14-main
Si l’ancienne version est active, vous pouvez l’arrêter avec :
sudo systemctl stop postgresql@14-main
Vérifiez sur quel port PostgreSQL 16 est configuré pour écouter. Ouvrez le fichier de configuration postgresql.conf
:
sudo nano /etc/postgresql/16/main/postgresql.conf
Recherchez la ligne commençant par port
. Elle doit ressembler à ceci :
port = 5432
Ajustez le port à la valeur par défaut, qui est 5432. Une fois ces modifications effectuées, redémarrez le service PostgreSQL pour vous assurer que toutes les configurations sont appliquées correctement :
sudo systemctl start postgresql@16-main
Définir le mot de Passe de l’utilisateur PostgreSQL
Une fois PostgreSQL installé, il est essentiel de sécuriser l’accès en définissant un mot de passe pour l’utilisateur par défaut, postgres
.
sudo -u postgres psql
Ensuite, à l’intérieur de l’interface PostgreSQL, définissez le mot de passe :
\password
Terminez par :
\q
Créer un Reverse Proxy au niveau de CloudPanel
Pour accéder à pgAdmin 4 via un nom de domaine, nous allons configurer un reverse proxy. Connectez-vous à CloudPanel à l’adresse cloudpanel.example.com
. Dans le menu Sites, cliquez sur Ajouter un site. Sélectionnez l’option « Créer un reverse proxy » et renseignez l’URL du reverse proxy souhaitée.
Voici la configuration que nous avons mise en place.
Configurer le Reverse Proxy
Enfin, modifiez votre configuration de reverse proxy pour rediriger les requêtes vers pgAdmin 4. Pour cela, accédez à votre site dans CloudPanel et cliquez sur l’onglet Settings. Renseigner le contenu du champs Reverse Proxy Url
par la ligne suivante :
http://unix:/tmp/pgadmin4.sock
Installer pgAdmin 4
Nous allons maintenant procéder à l’installation de pgAdmin 4. Commencez par installer les bibliothèques nécessaires.
sudo apt update
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.11
sudo apt update
sudo apt install -y python3-venv
Configurer l’environnement virtuel pour pgAdmin 4
Pour exécuter pgAdmin 4, nous allons utiliser Python, qui est un langage de programmation nécessaire pour faire fonctionner l’application. L’utilisation d’un environnement virtuel (venv) est également recommandée. Cela permet d’isoler les dépendances de pgAdmin 4 des autres projets sur le système, assurant ainsi une gestion plus propre et sans conflits.
Naviguez vers votre répertoire d’utilisateur et créez un environnement virtuel :
cd /home/example-pgadmin
mkdir environments
cd environments/
python3 -m venv pg_admin
Activez l’environnement virtuel :
source pg_admin/bin/activate
Une fois l’environnement virtuel activé, mettez à jour pip
et installez pgAdmin 4 ainsi que Gunicorn, un serveur d’application WSGI qui va nous permettre d’exécuter pgAdmin.
python -m pip install -U pip
python -m pip install pgadmin4==8.7
python -m pip install gunicorn
Définir les accès à pgAdmin 4
Après avoir installé pgAdmin 4, exécutez le script de configuration pour définir vos identifiants de connexion :
python pg_admin/lib/python3.12/site-packages/pgadmin4/setup.py add-user [email protected] motdepasse
Remplacer [email protected]
et motdepasse
par vos identifiants de connexion. Ces informations serviront d’identifiants de connexion lorsque vous accéderez à pgAdmin 4 ultérieurement. Assurez-vous de noter ou de mémoriser ce que vous entrez à ce stade.
Démarrer pgAdmin 4
Utilisez Gunicorn pour démarrer pgAdmin 4 :
gunicorn --bind unix:/tmp/pgadmin4.sock --workers=1 --threads=25 --chdir pg_admin/lib/python3.12/site-packages/pgadmin4 pgAdmin4:app
Vérifier l’accès à pgAdmin
Les utilisateurs pourront accéder à pgAdmin 4 à l’adresse pgadmin.example.com
en utilisant les identifiants que vous avez définis précédemment.
Une fois connecté, faites un clic droit sur “Servers” dans la barre latérale, puis sélectionnez “Nouveau” > “Serveur”. Utilisez les informations ci-dessous pour configurer votre connexion à PostgreSQL.
Dans l’onglet General, attribuez un nom à votre connection
. Ensuite, dans l’onglet correspondant, renseignez les champs suivants :
- Nom d’hôte / Adresse :
localhost
- Port :
5432
- Base de données de maintenance : postgres
- Nom d’utilisateur :
postgres
- Mot de passe : le mot de passe que vous avez défini
Lancer pgAdmin 4 en mode détaché
Une fois que vous vous êtes assuré que pgAdmin 4 fonctionne correctement, il est judicieux de le relancer en mode détaché. Cela vous permettra de garder le processus en cours d’exécution même après avoir quitté votre session SSH, tout en redirigeant les logs dans un dossier spécifique.
Créez un répertoire pour les logs de Gunicorn :
mkdir /home/example-pgadmin/logs/gunicorn
Ensuite, assurez-vous que votre environnement virtuel est toujours activé :
source pg_admin/bin/activate
Lancez pgAdmin 4 en mode détaché avec la commande suivante, en redirigeant les sorties dans un fichier de log :
nohup gunicorn --bind unix:/tmp/pgadmin4.sock --workers=1 --threads=25 --chdir pg_admin/lib/python3.12/site-packages/pgadmin4 pgAdmin4:app > /home/example-pgadmin/logs/gunicorn/gunicorn_out.log 2> /home/example-pgadmin/logs/gunicorn/gunicorn_err.log &
Cela garantit que les logs de pgAdmin 4 seront enregistrés dans le répertoire que vous avez créé, facilitant ainsi la gestion et la surveillance de l’application.
Sortir de l’environnement virtuel
Pour terminer votre session dans l’environnement virtuel, utilisez la commande suivante :
deactivate
Étapes pour arrêter pgAdmin4
Utilisez la commande ps
pour lister les processus en cours et trouver celui que vous avez lancé avec nohup
. Vous pouvez filtrer les résultats avec grep
pour faciliter la recherche.
ps aux | grep gunicorn
Cette commande affichera une ligne contenant le processus Gunicorn, semblable à ceci :
root 1177168 0.0 0.2 29188 11872 ? S 11:17 0:02 /home/example-pgadmi...
Dans cet exemple, 1177168 est l’identifiant de processus (PID). Une fois que vous avez le PID, vous pouvez arrêter le processus avec la commande kill
. Remplacez 1177168 par le PID réel que vous avez trouvé :
kill -9 1177168
Conclusion
Vous avez maintenant installé PostgreSQL et pgAdmin 4 sur votre serveur CloudPanel. Grâce à l’utilisation de Python et des environnements virtuels, vous avez créé une installation propre et isolée pour pgAdmin 4, ce qui facilite la gestion de vos projets et bases de données. Cette configuration vous permettra de bénéficier d’un environnement stable pour le développement et l’administration de vos bases de données PostgreSQL.
Références
- How to Install and Configure pgAdmin 4 in Server Mode on Ubuntu 22.04
- How to Install Python 3 and Set Up a Programming Environment on an Ubuntu 22.04 Server
Architecte logiciel, Développeur d'application diplomé d'ETNA, la filière d'alternance d'Epitech, j'ai acquis une expertise solide dans le développement d'applications, travaillant sur des projets complexes et techniquement diversifiés. Mon expérience englobe l'utilisation de divers frameworks et langages, notamment Symfony, Api Platform, Drupal, Zend, React Native, Angular, Vue.js, Shell, Pro*C...