Files
2026-06-09 18:40:21 +02:00

151 lines
6.7 KiB
Markdown

---
title: pgAdmin
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, database, postgresql, admin, python, javascript, beginner]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=Database, https://github.com/pgadmin-org/pgadmin4]
---
# 🗄️ pgAdmin
> **La référence pour administrer PostgreSQL** : l'équivalent de phpMyAdmin pour MySQL, mais pour Postgres. Indispensable dès qu'on touche à une base PostgreSQL.
## 📋 Informations Générales
| Champ | Valeur |
| :--- | :--- |
| **Site web** | (GitHub) |
| **GitHub** | [pgadmin-org/pgadmin4](https://github.com/pgadmin-org/pgadmin4) |
| **License** | PostgreSQL License (permissive, BSD-like) |
| **Langage** | Python (backend) + JavaScript / React (frontend) |
| **Étoiles GitHub** | 3,6k ⭐ |
| **Catégorie** | [[cat-database\|Database]] |
| **Public** | Débutants à avancés |
## 📝 Description
**pgAdmin** est la **plateforme d'administration et de développement** de référence pour PostgreSQL. C'est l'outil officiel maintenu par la communauté pgAdmin, et c'est le pendant exact de **phpMyAdmin** pour l'écosystème MySQL/MariaDB : si vous avez déjà administré une base MySQL, vous retrouverez vos marques immédiatement.
-**Connexion multi-serveurs** : gérez plusieurs instances PostgreSQL depuis une seule interface
-**Query tool** : éditeur SQL avec coloration syntaxique, auto-complétion, historique
-**Debugger PL/pgSQL** : pas-à-pas sur les fonctions et procédures stockées
-**Visualisation de schémas** : ERD (Entity Relationship Diagram) interactif
-**Gestion des utilisateurs, rôles, privilèges** : ACL complètes depuis l'UI
-**Maintenance** : VACUUM, ANALYZE, REINDEX en un clic
-**Import / Export** : CSV, JSON, SQL dump
-**Dashboard temps réel** : activité, locks, requêtes lentes
-**Thèmes clair / sombre**
-**Mode desktop** (Electron) et **mode web** (Docker, serveur)
-**Authentification** : interne, LDAP, OAuth2
**Public cible** : **tout administrateur Postgres**. Du développeur qui fait tourner un Postgres dans Docker à l'équipe d'exploitation qui gère des clusters de production. C'est l'outil **par défaut** : si vous self-host une base PostgreSQL, vous allez l'utiliser (ou son alternative DBeaver, qui est cependant une app desktop et pas une web app self-hostable aussi simplement).
## 🚀 Installation
### Docker Compose (recommandé)
```yaml
# docker-compose.yml
version: '3.8'
services:
pgadmin:
image: dpage/pgadmin4:latest
container_name: pgadmin
restart: unless-stopped
environment:
PGADMIN_DEFAULT_EMAIL: admin@example.com
PGADMIN_DEFAULT_PASSWORD: change-me-now
PGADMIN_LISTEN_PORT: 80
volumes:
- pgadmin-data:/var/lib/pgadmin
ports:
- "8080:80" # Web UI
labels:
- "traefik.enable=true"
- "traefik.http.routers.pgadmin.rule=Host(`pgadmin.example.com`)"
- "traefik.http.routers.pgadmin.entrypoints=websecure"
- "traefik.http.routers.pgadmin.tls.certresolver=letsencrypt"
volumes:
pgadmin-data:
```
### Bare-metal (Ubuntu/Debian)
```bash
# Ajouter le repo officiel
curl -fsSL https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo gpg --dearmor -o /usr/share/keyrings/packages-pgadmin-org.gpg
echo "deb [signed-by=/usr/share/keyrings/packages-pgadmin-org.gpg] https://apt.pgadmin.org/pub/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main" | sudo tee /etc/apt/sources.list.d/pgadmin4.list
sudo apt update
sudo apt install pgadmin4-web
sudo /usr/pgadmin4/bin/setup-web.sh
```
## ⚙️ Configuration Initiale
1. **Accéder à l'UI** : `http://IP:8080` (ou via Traefik en HTTPS)
2. **Se connecter** avec l'email/password définis dans `PGADMIN_DEFAULT_EMAIL` / `PGADMIN_DEFAULT_PASSWORD`
3. **Ajouter un serveur** : clic droit sur "Servers" → "Register" → "Server"
- Onglet **General** : nom arbitraire
- Onglet **Connection** : host (nom du container Postgres ou IP), port (5432), maintenance DB (`postgres`), user, password
4. **Explorer la base** : naviguez dans l'arbre, ouvrez le Query Tool, écrivez votre première requête
5. **Sauvegarder la config serveur** : clic droit sur le serveur → "Save Password" si vous voulez éviter de re-saisir le mot de passe
6. **Changer le mot de passe par défaut** : c'est critique, changez-le via le panneau d'admin ou en regénérant le hash dans la base interne
## 🔄 Alternatives
### Open Source
- [[app-cloudbeaver]] — Multi-bases (Postgres, MySQL, Mongo, etc.), plus moderne
- [[app-dbgate]] — Cross-platform, support de 20+ SGBD
- [[app-whodb]] — Léger, explorateur next-gen
- **DBeaver** — Référence desktop (pas self-hostable comme web app)
- **phpMyAdmin** — Équivalent pour MySQL/MariaDB
### Comparaison pgAdmin vs autres
| Critère | pgAdmin | CloudBeaver | DBeaver | Adminer |
| :--- | :--- | :--- | :--- | :--- |
| **Bases supportées** | Postgres only | Multi-bases | Multi-bases | Multi-bases |
| **Interface** | Web complète | Web moderne | Desktop (Java) | Web minimaliste |
| **Self-hosted web** | ✅ | ✅ | ❌ | ✅ |
| **Debugger PL/pgSQL** | ✅ | ❌ | ✅ | ❌ |
| **ERD** | ✅ | ✅ | ✅ | ❌ |
| **Poids** | Lourd | Moyen | Lourd (Java) | Ultra-léger |
| **Public** | Admins Postgres | Équipes mixtes | Devs solo | Quick admin |
**Verdict** : si vous ne gérez **que** du Postgres, pgAdmin reste **la référence** : c'est le plus complet pour ce SGBD. Pour du multi-bases, tournez-vous vers CloudBeaver ou DBeaver (desktop).
### Propriétaires (ce que pgAdmin remplace)
- **Datadog Postgres Monitoring** (payant, orienté APM)
- **pganalyze** (SaaS, plan gratuit limité)
- **Navicat for PostgreSQL** (desktop, licence payante)
## 🔐 Sécurité
- **Changez le mot de passe par défaut** immédiatement (variable d'env ne suffit pas en prod)
- **Placez pgAdmin derrière un reverse-proxy authentifié** : ne jamais exposer pgAdmin directement sur Internet sans SSO devant (cf. [[securisation-home-lab]])
- **Restreignez les IPs sources** : pgAdmin donne un accès total aux bases — protégez-le comme un panneau d'admin
- **Authentification LDAP / OAuth2** recommandée en environnement multi-utilisateurs
## 📚 Ressources
- [GitHub pgadmin-org/pgadmin4](https://github.com/pgadmin-org/pgadmin4)
- [Documentation officielle](https://www.pgadmin.org/docs/)
- [Wiki & FAQ](https://github.com/pgadmin-org/pgadmin4/wiki)
## Pages Liées
- [[cat-database]] — Catégorie Database
- [[app-traefik]] — Reverse-proxy HTTPS
- [[recettes-docker-compose]] — Templates Docker Compose
- [[securisation-home-lab]] — Sécuriser l'accès aux interfaces d'admin
- [[app-portainer]] — Gestion des containers Docker
- [[app-dockge]] — Alternative UI à Portainer