OKTous les services sont opérationnels
InfrawireLogo InfrawireDocumentation

Installer PostgreSQL sur un VPS Linux

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

Bash
sudo apt update && sudo apt upgrade -y sudo apt install -y postgresql postgresql-contrib

2. Vérifier le service

Bash
sudo 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 :

Bash
sudo -u postgres psql

Dans psql (adaptez les noms et le mot de passe) :

SQL
CREATE 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 :

Bash
psql -h 127.0.0.1 -U monapp -d monapp_db

Chaîne de connexion typique

Vos applications utilisent souvent une URL du type :

TEXT
postgresql://monapp:[email protected]:5432/monapp_db

Sécurité (indispensable)

  1. Mot de passe fort pour l’utilisateur applicatif.
  2. 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.
  3. 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/) :

Config
listen_addresses = '*'

Dans pg_hba.conf, ajoutez une ligne restrictive (exemple : IP fixe d’un autre serveur uniquement) :

TEXT
host monapp_db monapp 203.0.113.50/32 scram-sha-256

Puis :

Bash
sudo systemctl restart postgresql

Sauvegardes

Pour une sauvegarde logique simple :

Bash
sudo -u postgres pg_dump monapp_db > backup_monapp.sql

Restauration :

Bash
sudo -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.1 pour forcer TCP au lieu du socket Unix, ou ajustez pg_hba.conf.
  • Connection refused : vérifiez que le service est actif et que vous ciblez le bon port (5432 par défaut).