PostgreSQL est un SGBD relationnel fiable, adapté aux applications web, à la business intelligence et aux charges mixtes. Ce guide couvre l’installation sur Ubuntu/Debian, la création d’une base et les premiers réglages de sécurité.
Prérequis
- VPS Linux (Ubuntu 20.04+ ou Debian 11+) avec
sudo - Au moins 1 Go de RAM (2 Go+ si charge importante)
Installation
1. Mise à jour et installation du serveur
Bashsudo apt update && sudo apt upgrade -y sudo apt install -y postgresql postgresql-contrib
2. Vérifier le service
Bashsudo systemctl status postgresql sudo systemctl enable postgresql
Par défaut, PostgreSQL écoute en local (127.0.0.1), ce qui convient si votre application tourne sur le même VPS.
Créer une base et un utilisateur applicatif
Passez en utilisateur système postgres puis ourez le client psql :
Bashsudo -u postgres psql
Dans psql (adaptez les noms et le mot de passe) :
SQLCREATE USER monapp WITH PASSWORD 'mot_de_passe_solide'; CREATE DATABASE monapp_db OWNER monapp; GRANT ALL PRIVILEGES ON DATABASE monapp_db TO monapp; \q
Test de connexion :
Bashpsql -h 127.0.0.1 -U monapp -d monapp_db
Chaîne de connexion typique
Vos applications utilisent souvent une URL du type :
TEXTpostgresql://monapp:[email protected]:5432/monapp_db
Sécurité (indispensable)
- Mot de passe fort pour l’utilisateur applicatif.
- Ne pas exposer PostgreSQL sur Internet sans nécessité absolue. Si vous devez le faire : pare-feu strict,
listen_addresses,pg_hba.conf, et idéalement tunnel ou VPN. - Combinez avec UFW et Fail2ban si des services sont publics.
Accès distant (à éviter sauf besoin réel)
Éditez postgresql.conf (emplacement variable, souvent /etc/postgresql/*/main/) :
Configlisten_addresses = '*'
Dans pg_hba.conf, ajoutez une ligne restrictive (exemple : IP fixe d’un autre serveur uniquement) :
TEXThost monapp_db monapp 203.0.113.50/32 scram-sha-256
Puis :
Bashsudo systemctl restart postgresql
Sauvegardes
Pour une sauvegarde logique simple :
Bashsudo -u postgres pg_dump monapp_db > backup_monapp.sql
Restauration :
Bashsudo -u postgres psql monapp_db < backup_monapp.sql
Planifiez des sauvegardes régulières (cron) vers un stockage externe.
Dépannage
- Peer authentication failed : utilisez
-h 127.0.0.1pour forcer TCP au lieu du socket Unix, ou ajustezpg_hba.conf. - Connection refused : vérifiez que le service est actif et que vous ciblez le bon port (
5432par défaut).