Initial vault setup
This commit is contained in:
@@ -0,0 +1,150 @@
|
||||
---
|
||||
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
|
||||
Reference in New Issue
Block a user