{"id":29480871,"url":"https://github.com/omar-haris/postgresql-realtime-pgpool-admin-dashboard","last_synced_at":"2026-05-19T03:18:32.936Z","repository":{"id":304015866,"uuid":"1017490913","full_name":"omar-haris/PostgreSQL-Realtime-PgPool-Admin-Dashboard","owner":"omar-haris","description":"Real-time PostgreSQL Pgpool monitoring and admin dashboard.","archived":false,"fork":false,"pushed_at":"2025-07-10T16:44:08.000Z","size":12216,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-10T22:59:15.536Z","etag":null,"topics":["dashboard","monitoring","pgpool","postgres","postgres-database","postgresql","real-time"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/omar-haris.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-10T16:01:19.000Z","updated_at":"2025-07-10T16:44:11.000Z","dependencies_parsed_at":"2025-07-10T23:09:25.579Z","dependency_job_id":null,"html_url":"https://github.com/omar-haris/PostgreSQL-Realtime-PgPool-Admin-Dashboard","commit_stats":null,"previous_names":["omar-haris/postgresql-realtime-pgpool-admin-dashboard"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/omar-haris/PostgreSQL-Realtime-PgPool-Admin-Dashboard","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omar-haris%2FPostgreSQL-Realtime-PgPool-Admin-Dashboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omar-haris%2FPostgreSQL-Realtime-PgPool-Admin-Dashboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omar-haris%2FPostgreSQL-Realtime-PgPool-Admin-Dashboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omar-haris%2FPostgreSQL-Realtime-PgPool-Admin-Dashboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/omar-haris","download_url":"https://codeload.github.com/omar-haris/PostgreSQL-Realtime-PgPool-Admin-Dashboard/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omar-haris%2FPostgreSQL-Realtime-PgPool-Admin-Dashboard/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265366200,"owners_count":23753470,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dashboard","monitoring","pgpool","postgres","postgres-database","postgresql","real-time"],"created_at":"2025-07-14T23:11:44.336Z","updated_at":"2026-05-19T03:18:32.865Z","avatar_url":"https://github.com/omar-haris.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PostgreSQL Master-Replica with PgPool-II and Admin Interface\n\n\u003e **⚠️ Development Status**: This project is under active development and not yet ready for production use. If you'd like to use it or contribute to finish the missing features, you are welcome!\n\nA PostgreSQL cluster setup with master-replica replication, PgPool-II load balancing, and a comprehensive web-based administration interface.\n\n## Features\n\n- **High Availability PostgreSQL Cluster** with automatic failover\n- **Advanced Web Admin Interface** with real-time monitoring\n- **Connection Pooling \u0026 Load Balancing** via PgPool-II\n- **Streaming Replication** for data redundancy\n- **Performance Analytics** and query optimization insights\n\n## Architecture\n\n```\n┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐\n│ Client Apps     │────▶│   PgPool-II     │────▶│ Master (RW)     │\n└─────────────────┘     │ Load Balancer   │     └─────────────────┘\n                        │ Port: 6436      │              │\n                        └─────────────────┘              │ Streaming\n                                 │                       │ Replication\n                                 └──────────────▶┌─────────────────┐\n                                                │ Replica (RO)     │\n┌─────────────────┐                            └─────────────────┘\n│ PgPool Admin    │\n│ Port: 9000      │\n└─────────────────┘\n```\n\n## Quick Start\n\n\u003e **💡 Using PgPool Admin Only?** See [Standalone Admin Guide](docs/STANDALONE_ADMIN.md) for monitoring your existing PostgreSQL/PgPool infrastructure.\n\n### Prerequisites\n\n- Docker and Docker Compose v2.0+\n- 8GB RAM minimum\n- Ports: 6435, 6436, 6437, 9000\n\n### Installation\n\n1. **Clone the repository**\n   ```bash\n   git clone \u003crepository-url\u003e\n   cd PgPool\n   ```\n\n2. **Create `.env` file**\n   ```env\n   # PostgreSQL Configuration\n   POSTGRES_DB=appdb\n   POSTGRES_USER=appuser\n   POSTGRES_PASSWORD=SecurePass123!\n\n   # Admin Interface\n   PGPOOL_ADMIN_USERNAME=admin\n   PGPOOL_ADMIN_PASSWORD=AdminPass456!\n   ```\n\n3. **Start the cluster**\n   ```bash\n   docker-compose up -d\n   ```\n\n4. **Access Admin Interface**\n   - URL: http://localhost:9000\n   - Login with credentials from `.env`\n\n## Usage\n\n### Database Connections\n\n```bash\n# Via PgPool (Load Balanced) - Recommended\npsql -h localhost -p 6436 -U appuser -d appdb\n\n# Direct to Master (Read/Write)\npsql -h localhost -p 6435 -U appuser -d appdb\n\n# Direct to Replica (Read-Only)\npsql -h localhost -p 6437 -U appuser -d appdb\n```\n\n### Admin Interface Features\n\n- **Dashboard**: Real-time cluster health and metrics\n- **Pool Nodes**: Visual topology and node management\n- **Performance Monitor**: Live performance analytics\n- **Query Analysis**: Query patterns and optimization\n- **Query Console**: Interactive SQL execution\n- **Insights**: AI-powered recommendations\n\n## Screenshots\n\n| Feature | Screenshot |\n|---------|------------|\n| Login | \u003cimg src=\"docs/Screenshot-2025-07-10-at-7.02.43-PM.png\" alt=\"Login\" width=\"600\"/\u003e |\n| Dashboard | \u003cimg src=\"docs/Screenshot-2025-07-10-at-7.03.57-PM.png\" alt=\"Dashboard\" width=\"600\"/\u003e |\n| Pool Nodes | \u003cimg src=\"docs/Screenshot-2025-07-10-at-7.04.16-PM.png\" alt=\"Pool Nodes\" width=\"600\"/\u003e |\n| Performance | \u003cimg src=\"docs/Screenshot-2025-07-10-at-7.04.21-PM.png\" alt=\"Performance\" width=\"600\"/\u003e |\n| Query Analysis | \u003cimg src=\"docs/Screenshot-2025-07-10-at-7.04.29-PM.png\" alt=\"Query Analysis\" width=\"600\"/\u003e |\n\n## Maintenance\n\n### Common Commands\n\n```bash\n# Check cluster status\ndocker-compose ps\n\n# View logs\ndocker-compose logs -f [service-name]\n\n# Backup database\ndocker exec -t pg-master pg_dump -U appuser appdb \u003e backup.sql\n\n# Check replication\ndocker exec -it pgpool psql -h localhost -p 5432 -U appuser -c \"show pool_nodes\"\n```\n\n### Troubleshooting\n\n\u003cdetails\u003e\n\u003csummary\u003eCommon issues and solutions\u003c/summary\u003e\n\n**Replica not syncing**\n```bash\ndocker-compose logs postgres-replica\ndocker-compose restart postgres-replica\n```\n\n**Connection issues**\n```bash\ndocker exec -it pgpool psql -h localhost -p 5432 -U appuser -c \"SELECT 1\"\ndocker-compose restart pgpool\n```\n\n**Port conflicts**\n```bash\n# Check port usage\nlsof -i :6436\n# Update ports in docker-compose.yml\n```\n\n\u003c/details\u003e\n\n## API Endpoints\n\nThe admin interface provides REST APIs:\n- `/api/pool_nodes` - Pool nodes status\n- `/api/performance_metrics` - Performance data\n- `/api/query_statistics` - Query stats\n- `/api/cluster_status` - Cluster health\n\n[Full API documentation →](docs/API.md)\n\n## Contributing\n\nWe welcome contributions! Areas needing work:\n- [ ] Automated failover testing\n- [ ] Enhanced monitoring features\n- [ ] Query optimization advisor\n- [ ] Backup automation\n- [ ] SSL/TLS configuration\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.\n\n## License\n\nThis project is licensed under the MIT License - see [LICENSE](LICENSE) file.\n\n## Support\n\n- **Issues**: [GitHub Issues](https://github.com/your-repo/issues)\n- **Documentation**: Check `/docs` folder\n- **Community**: Join our discussions\n\n---\n\nMade with ❤️ by the community","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fomar-haris%2Fpostgresql-realtime-pgpool-admin-dashboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fomar-haris%2Fpostgresql-realtime-pgpool-admin-dashboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fomar-haris%2Fpostgresql-realtime-pgpool-admin-dashboard/lists"}