Este proyecto proporciona una solución completa de PostgreSQL con Docker que incluye PostgreSQL y pgAdmin4, con pipeline automático de instalación de Docker y scripts de automatización.
- PostgreSQL 15: Base de datos relacional de última generación
- pgAdmin4: Panel de gestión web en http://localhost:8080
- Prometheus: Monitoreo y métricas en http://localhost:9090
- Grafana: Dashboards y visualización en http://localhost:3000
- Replicación Opcional: PostgreSQL Master-Slave configurable
- Docker Compose: Orquestación de contenedores
- Pipeline Automático: Instalación automática de Docker
- Scripts de Automatización: Start, stop, verify, backup
- Configuración Optimizada: Para desarrollo y producción
- Datos de Ejemplo: Incluye datos de prueba
┌─────────────────────────────────────────────────────────────┐
│ PostgreSQL Docker │
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────┐ │
│ │ PostgreSQL │ │ pgAdmin4 │ │ PostgreSQL │ │
│ │ Master │ │ Web Panel │ │ Replica │ │
│ │ Port: 5432 │ │ Port: 8080 │ │ Port: 5433 │ │
│ └─────────────────┘ └─────────────────┘ └─────────────┘ │
│ │ │ │ │
│ ┌────────▼─────────┐ ┌────────▼─────────┐ ┌────▼─────┐ │
│ │ Prometheus │ │ Grafana │ │ Docker │ │
│ │ Monitoring │ │ Dashboards │ │ Compose │ │
│ │ Port: 9090 │ │ Port: 3000 │ │ │ │
│ └──────────────────┘ └──────────────────┘ └──────────┘ │
└─────────────────────────────────────────────────────────────┘
postgreSQL-docker/
├── docker/ # Configuración Docker
│ ├── Dockerfile.postgresql # Imagen personalizada PostgreSQL
│ ├── Dockerfile.pgadmin # Imagen personalizada pgAdmin4
│ ├── postgresql.conf # Configuración PostgreSQL
│ ├── pg_hba.conf # Configuración autenticación
│ ├── pgadmin-servers.json # Configuración servidores pgAdmin
│ └── init-scripts/ # Scripts de inicialización
│ ├── 01-create-databases.sh
│ ├── 02-create-extensions.sh
│ └── 03-create-sample-data.sh
├── pipeline/ # Pipeline de instalación
│ └── install-docker.sh # Instalación automática Docker
├── scripts/ # Scripts de automatización
│ ├── start.sh # Iniciar servicios
│ ├── stop.sh # Parar servicios
│ └── verify.sh # Verificar funcionamiento
├── examples/ # Aplicaciones de ejemplo
├── docs/ # Documentación
├── docker-compose.yml # Orquestación de contenedores
├── env.example # Variables de entorno
├── Makefile # Comandos de gestión
└── README.md # Este archivo
# Instalar Docker automáticamente
make install
# O directamente
./pipeline/install-docker.sh# Iniciar PostgreSQL + pgAdmin4
make start
# O directamente
./scripts/start.sh- PostgreSQL:
localhost:5432 - pgAdmin4: http://localhost:8080
- Redis:
localhost:6379
# Verificar que todo esté funcionando
make verify
# O directamente
./scripts/verify.shmake install # Instalar Docker automáticamente
make start # Iniciar servicios básicos (PostgreSQL + pgAdmin4)
make start-monitoring # Iniciar con monitoreo (Prometheus + Grafana)
make start-replication # Iniciar con replicación
make start-full # Iniciar todo (PostgreSQL + Replica + Monitoreo)
make stop # Parar servicios
make restart # Reiniciar servicios
make status # Ver estado
make logs # Ver logs
make verify # Verificar funcionamiento
make clean # Limpiar recursosmake monitoring-start # Iniciar servicios de monitoreo
make monitoring-stop # Parar servicios de monitoreo
make monitoring-status # Estado de servicios de monitoreo
make monitoring-logs # Logs de servicios de monitoreo
make prometheus-open # Abrir Prometheus
make grafana-open # Abrir Grafanamake replication-start # Iniciar servicios de replicación
make replication-stop # Parar servicios de replicación
make replication-status # Estado de servicios de replicación
make replication-logs # Logs de servicios de replicación
make postgresql-replica-connect # Conectar a PostgreSQL Replica
make postgresql-replica-status # Estado de replicación
make postgresql-replica-lag # Lag de replicaciónmake dev-start # Modo desarrollo
make dev-stop # Parar desarrollo
make dev-restart # Reiniciar desarrollomake db-connect # Conectar a PostgreSQL
make db-shell # Shell de PostgreSQL
make backup # Crear backup
make restore FILE=backup.sql # Restaurar backupmake pgadmin-open # Abrir pgAdmin4
# URL: http://localhost:8080
# Email: admin@postgresql.local
# Contraseña: admin123make redis-connect # Conectar a Redis# Copiar archivo de ejemplo
cp env.example .env
# Editar configuración
nano .env- Host: localhost
- Puerto: 5432
- Usuario: postgres
- Contraseña: postgres123
- Base de datos: postgres
- URL: http://localhost:8080
- Email: admin@postgresql.local
- Contraseña: admin123
- Host: localhost
- Puerto: 6379
- Contraseña: redis123
- Versión: PostgreSQL 15
- Configuración: Optimizada para desarrollo
- Extensiones: uuid-ossp, pg_stat_statements, pg_trgm
- Bases de datos: postgres, development, testing, staging
- Datos de ejemplo: Usuarios, productos, órdenes
- Versión: Última versión
- Interfaz: Web responsive
- Funciones: Gestión completa de PostgreSQL
- Seguridad: Configuración segura
- Versión: Redis 7
- Configuración: Persistencia habilitada
- Uso: Caché y sesiones
- Red privada: postgresql_network
- Puertos expuestos: Solo los necesarios
- Firewall: Configuración segura
- PostgreSQL: SCRAM-SHA-256
- pgAdmin4: Autenticación web
- Redis: Contraseña requerida
- Volúmenes: Datos persistentes
- Backup: Scripts automáticos
- Encriptación: SSL/TLS disponible
- shared_buffers: 256MB
- effective_cache_size: 1GB
- work_mem: 4MB
- maintenance_work_mem: 64MB
- Logs: Configuración detallada
- Métricas: pg_stat_statements
- Health checks: Automáticos
# Instalar Docker automáticamente
make install# Verificar logs
make logs
# Reiniciar servicios
make restart# Verificar estado
make status
# Verificar puertos
netstat -tuln | grep 5432# Verificar que esté funcionando
curl http://localhost:8080
# Ver logs
docker logs pgadmin4-web# Ver estado de contenedores
make status
# Ver logs de servicios
make logs
# Verificar funcionamiento
make verify
# Ver información del sistema
make system-info# Iniciar entorno de desarrollo
make dev-start
# Conectar a base de datos
make db-connect
# Abrir pgAdmin4
make pgadmin-open# Iniciar para testing
make test-start
# Ejecutar tests
make verify
# Parar testing
make test-stop# Iniciar en producción
make prod-start
# Crear backup
make backup
# Monitorear
make monitor# Backup automático
make backup
# Backup manual
docker exec postgresql-db pg_dumpall -U postgres > backup.sql# Restaurar backup
make restore FILE=backup.sql
# Restaurar manual
docker exec -i postgresql-db psql -U postgres < backup.sql- Sistema operativo soportado
- Permisos de administrador
- Conexión a internet
- Puertos 5432, 8080, 6379 disponibles
- Docker instalado automáticamente
- Docker Compose disponible
- Imágenes construidas
- Servicios iniciados
- PostgreSQL funcionando
- pgAdmin4 accesible
- Redis funcionando
- Datos de ejemplo creados
- Instalación automática: Docker se instala automáticamente
- Scripts simples: Comandos fáciles de usar
- Documentación completa: Guías paso a paso
- PostgreSQL optimizado: Configuración para desarrollo
- pgAdmin4 configurado: Panel de gestión listo
- Redis incluido: Caché y sesiones
- Pipeline de instalación: Docker automático
- Scripts de gestión: Start, stop, verify
- Backup automático: Datos seguros
- Múltiples entornos: Dev, staging, prod
- Configuración personalizable: Variables de entorno
- Extensiones: PostgreSQL extendido
Características clave:
- ✅ Instalación automática de Docker
- ✅ PostgreSQL 15 optimizado
- ✅ pgAdmin4 web panel
- ✅ Redis para caché
- ✅ Scripts de automatización
- ✅ Configuración profesional
- ✅ Datos de ejemplo incluidos
- ✅ Backup y restore automático