# pgAdmin — Web-Based PostgreSQL Administration and Development Platform > The most popular open-source administration and development platform for PostgreSQL, providing a rich web UI for managing databases, writing queries, and monitoring servers. ## Install Save in your project root: # pgAdmin — Web-Based PostgreSQL Administration and Development Platform ## Quick Use ```bash docker run -d --name pgadmin -p 5050:80 -e PGADMIN_DEFAULT_EMAIL=admin@example.com -e PGADMIN_DEFAULT_PASSWORD=changeme dpage/pgadmin4 # Open http://localhost:5050 and log in with the credentials above ``` ## Introduction pgAdmin is the leading open-source management tool for PostgreSQL. It provides a feature-rich web interface for database administration, SQL development, and server monitoring, and is maintained by the PostgreSQL community as the official GUI tool. ## What pgAdmin Does - Manages PostgreSQL servers, databases, schemas, tables, and all other database objects via a tree browser - Provides a SQL query tool with syntax highlighting, auto-completion, and visual explain plans - Displays real-time server activity including active queries, locks, and session information - Creates and manages backup and restore operations with pg_dump and pg_restore - Generates DDL scripts and ERD diagrams from existing database schemas ## Architecture Overview pgAdmin 4 is a Python web application built with Flask on the backend and JavaScript on the frontend. It runs as a web server (typically behind Nginx in Docker) and stores its own configuration in a SQLite database. It connects to PostgreSQL servers via the psycopg2 driver and uses the PostgreSQL system catalogs to discover and manage database objects. ## Self-Hosting & Configuration - Deploy via Docker: `docker run -d -p 5050:80 -e PGADMIN_DEFAULT_EMAIL=admin@example.com -e PGADMIN_DEFAULT_PASSWORD=changeme dpage/pgadmin4` - Add PostgreSQL servers through the web UI or pre-configure via servers.json mount - Configure LDAP or OAuth2 authentication for multi-user environments - Set PGADMIN_CONFIG_ENHANCED_COOKIE_PROTECTION=True for additional security - Persist configuration by mounting a volume to /var/lib/pgadmin ## Key Features - Visual query tool with graphical explain plan visualization - ERD (Entity Relationship Diagram) generator from existing schemas - Built-in pgAgent job scheduler management for automated tasks - Dashboard with real-time server activity, sessions, locks, and transaction stats - Schema diff tool to compare and synchronize database structures ## Comparison with Similar Tools - **DBeaver** — Universal desktop database tool supporting many databases; pgAdmin is PostgreSQL-specialized with deeper integration - **phpMyAdmin** — MySQL-focused web admin tool; pgAdmin serves the same role for PostgreSQL - **DataGrip** — JetBrains commercial IDE for databases; pgAdmin is free and web-based - **Adminer** — Lightweight single-file PHP tool; pgAdmin offers richer PostgreSQL-specific features like explain visualization - **psql** — PostgreSQL command-line client; pgAdmin provides a visual interface for users who prefer GUI workflows ## FAQ **Q: Is pgAdmin free?** A: Yes. pgAdmin is fully open source under a custom permissive license maintained by the PostgreSQL community. **Q: Can pgAdmin manage multiple PostgreSQL servers?** A: Yes. You can register and manage any number of PostgreSQL servers from a single pgAdmin instance. **Q: Does pgAdmin support PostgreSQL extensions like PostGIS?** A: Yes. pgAdmin can manage PostGIS spatial data, pgvector, and other extensions through its object browser and query tool. **Q: How do I pre-configure server connections in Docker?** A: Mount a servers.json file to /pgadmin4/servers.json. The file defines server connection details that appear automatically on first login. ## Sources - https://github.com/pgadmin-org/pgadmin4 - https://www.pgadmin.org/docs/ --- Source: https://tokrepo.com/en/workflows/9de390fd-3ef0-11f1-9bc6-00163e2b0d79 Author: AI Open Source