- Refactored README.md, getting-started.md, quick-reference.md - Enhanced setup-homelab.sh with 9-step automated process - Created services-overview.md with all stacks - Added comprehensive documentation for 57 services in docs/service-docs/ - All services include: overview, configuration, resources, educational content - Coverage: Core, Infrastructure, Dashboards, Media, Media-Extended, Home Assistant, Productivity, Utilities, Monitoring, Development stacks - Educational focus with links to tutorials, videos, and guides
158 lines
4.2 KiB
Markdown
158 lines
4.2 KiB
Markdown
# pgAdmin - PostgreSQL Management
|
|
|
|
## Table of Contents
|
|
- [Overview](#overview)
|
|
- [What is pgAdmin?](#what-is-pgadmin)
|
|
- [Why Use pgAdmin?](#why-use-pgadmin)
|
|
- [Configuration in AI-Homelab](#configuration-in-ai-homelab)
|
|
- [Official Resources](#official-resources)
|
|
- [Docker Configuration](#docker-configuration)
|
|
|
|
## Overview
|
|
|
|
**Category:** Database Management
|
|
**Docker Image:** [dpage/pgadmin4](https://hub.docker.com/r/dpage/pgadmin4)
|
|
**Default Stack:** `development.yml`
|
|
**Web UI:** `http://SERVER_IP:5050`
|
|
**Purpose:** PostgreSQL GUI management
|
|
**Ports:** 5050
|
|
|
|
## What is pgAdmin?
|
|
|
|
pgAdmin is the most popular open-source management tool for PostgreSQL. It provides a web-based GUI for administering PostgreSQL databases - creating databases, running queries, managing users, viewing data, and more. Essential for PostgreSQL users who prefer visual tools over command-line.
|
|
|
|
### Key Features
|
|
- **Web Interface:** Browser-based access
|
|
- **Query Tool:** SQL editor with syntax highlighting
|
|
- **Visual Database Designer:** Create tables visually
|
|
- **Data Management:** Browse and edit data
|
|
- **User Management:** Manage roles and permissions
|
|
- **Backup/Restore:** GUI backup operations
|
|
- **Server Monitoring:** Performance dashboards
|
|
- **Multi-Server:** Manage multiple PostgreSQL servers
|
|
- **Free & Open Source:** PostgreSQL license
|
|
|
|
## Why Use pgAdmin?
|
|
|
|
1. **Visual Interface:** Easier than command-line
|
|
2. **Query Editor:** Write and test SQL visually
|
|
3. **Data Browser:** Browse tables easily
|
|
4. **Backup Tools:** GUI backup/restore
|
|
5. **Multi-Server:** Manage all PostgreSQL instances
|
|
6. **Graphical Design:** Design schemas visually
|
|
7. **Industry Standard:** Most used PostgreSQL tool
|
|
|
|
## Configuration in AI-Homelab
|
|
|
|
```
|
|
/opt/stacks/development/pgadmin/data/
|
|
pgadmin4.db # pgAdmin configuration
|
|
sessions/ # Session data
|
|
storage/ # Server connections
|
|
```
|
|
|
|
## Official Resources
|
|
|
|
- **Website:** https://www.pgadmin.org
|
|
- **Documentation:** https://www.pgadmin.org/docs
|
|
- **GitHub:** https://github.com/pgadmin-org/pgadmin4
|
|
|
|
## Docker Configuration
|
|
|
|
```yaml
|
|
pgadmin:
|
|
image: dpage/pgadmin4:latest
|
|
container_name: pgadmin
|
|
restart: unless-stopped
|
|
networks:
|
|
- traefik-network
|
|
ports:
|
|
- "5050:80"
|
|
environment:
|
|
- PGADMIN_DEFAULT_EMAIL=admin@homelab.local
|
|
- PGADMIN_DEFAULT_PASSWORD=${PGADMIN_PASSWORD}
|
|
- PGADMIN_CONFIG_SERVER_MODE=False
|
|
- PGADMIN_CONFIG_MASTER_PASSWORD_REQUIRED=False
|
|
volumes:
|
|
- /opt/stacks/development/pgadmin/data:/var/lib/pgadmin
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.pgadmin.rule=Host(`pgadmin.${DOMAIN}`)"
|
|
```
|
|
|
|
## Setup
|
|
|
|
1. **Start Container:**
|
|
```bash
|
|
docker compose up -d pgadmin
|
|
```
|
|
|
|
2. **Access UI:** `http://SERVER_IP:5050`
|
|
|
|
3. **Login:**
|
|
- Email: `admin@homelab.local`
|
|
- Password: (from PGADMIN_PASSWORD env)
|
|
|
|
4. **Add Server:**
|
|
- Right-click "Servers" → Register → Server
|
|
- General tab:
|
|
- Name: `PostgreSQL Dev`
|
|
- Connection tab:
|
|
- Host: `postgres` (container name)
|
|
- Port: `5432`
|
|
- Maintenance database: `postgres`
|
|
- Username: `admin`
|
|
- Password: (from PostgreSQL)
|
|
- Save password: ✓
|
|
- Save
|
|
|
|
5. **Browse Database:**
|
|
- Expand server tree
|
|
- Servers → PostgreSQL Dev → Databases
|
|
- Right-click database → Query Tool
|
|
|
|
6. **Run Query:**
|
|
- Query Tool (toolbar icon)
|
|
- Write SQL
|
|
- Execute (F5 or play button)
|
|
|
|
## Summary
|
|
|
|
pgAdmin is your PostgreSQL GUI offering:
|
|
- Web-based interface
|
|
- SQL query editor
|
|
- Visual database design
|
|
- Data browsing and editing
|
|
- User management
|
|
- Backup/restore tools
|
|
- Multi-server support
|
|
- Free and open-source
|
|
|
|
**Perfect for:**
|
|
- PostgreSQL administration
|
|
- Visual database management
|
|
- SQL query development
|
|
- Database design
|
|
- Learning PostgreSQL
|
|
- Backup management
|
|
|
|
**Key Points:**
|
|
- Web-based (browser access)
|
|
- Manage multiple PostgreSQL servers
|
|
- Query tool with syntax highlighting
|
|
- Visual schema designer
|
|
- Default: admin@homelab.local
|
|
- Change default password!
|
|
- Save server passwords
|
|
|
|
**Remember:**
|
|
- Set strong admin password
|
|
- Add all PostgreSQL servers
|
|
- Use query tool for SQL
|
|
- Save server connections
|
|
- Regular backups via GUI
|
|
- Monitor server performance
|
|
- Explore visual tools
|
|
|
|
pgAdmin makes PostgreSQL management visual!
|