Skip to content

Introduction ​

pgagroal is a high-performance protocol-native connection pool for PostgreSQL.

Features ​

  • High performance
  • Connection pool
  • Limit connections for users and databases
  • Prefill support
  • Remove idle connections
  • Perform connection validation
  • Enable / disable database access
  • Graceful / fast shutdown
  • Prometheus support
  • Grafana 12 dashboard
  • Remote management
  • Authentication query support
  • Failover support
  • Transport Layer Security (TLS) v1.2+ support
  • Daemon mode
  • User vault

Platforms ​

The supported platforms are

Migration ​

From 2.0.x to 2.1.0 ​

Vault Encryption ​

The key derivation for vault file encryption has been upgraded to PKCS5_PBKDF2_HMAC (SHA-256, random 16-byte salt, 600,000 iterations).

This is a breaking change. Existing vault files encrypted with the old method cannot be decrypted by version 2.1.0.

Action required:

  1. Stop pgagroal
  2. Delete the existing user files:
    • pgagroal_users.conf
    • pgagroal_frontend_users.conf.
    • pgagroal_admins.conf
    • pgagroal_superuser.conf
    • Vault users file (if applicable)
  3. Delete the existing master key:
    rm ~/.pgagroal/master.key
  4. Regenerate the master key:
    pgagroal-admin master-key
  5. Re-add all users:
    pgagroal-admin user add -f <users_file>
  6. Restart pgagroal

How to Use This Manual ​

This manual is organized to guide you from initial setup to advanced usage and development. Use the table below to quickly find the section most relevant to your needs:

Navigation Note: Each entry has two links separated by |:

  • First link (Chapter): Use when reading the PDF manual (jumps to page)
  • Second link (File): Use when browsing individual markdown files
  • File links will not work in PDF format
ChapterFileDescription
Installation02-installation.mdStep-by-step setup for Rocky Linux, PostgreSQL 18, and pgagroal
Getting Started03-gettingstarted.mdQuick introduction to basic pgagroal usage and initial configuration
Configuration04-configuration.mdComprehensive guide to all configuration files and options
Prefill05-prefill.mdHow to configure and use connection prefill for better performance
Remote Management06-remote_management.mdSetting up and using remote management features for pgagroal
Split Security07-split_security.mdImplementing split security models for authentication and access control
TLS08-tls.mdConfiguring Transport Layer Security (TLS) for secure connections
Database Alias09-database_alias.mdUsing database aliases for flexible client connections
Vault10-vault.mdManaging user credentials and secrets with the pgagroal vault
Prometheus11-prometheus.mdIntegrating Prometheus metrics and monitoring
Web Console12-console.mdWeb-based monitoring console for metrics visualization
Docker13-docker.mdRunning pgagroal in Docker containers
Command Line Tools14-cli-tools.mdComprehensive CLI tools reference (pgagroal-cli, pgagroal-admin)
Performance15-performance.mdPerformance benchmarks, tuning, and optimization
Failover16-failover.mdFailover configuration and scripting
Pipelines17-pipelines.mdPipeline types and configuration
Security18-security.mdComprehensive security hardening guide
Health Check19-health_check.mdSetting up and configuring health checks
Development70-dev.mdDevelopment environment setup and contribution guidelines
Git71-git.mdGit workflow and version control practices for the project
Architecture72-architecture.mdHigh-level architecture and design of pgagroal
RPM73-rpm.mdBuilding and using RPM packages
Building74-building.mdCompiling pgagroal from source
Code Coverage75-codecoverage.mdCode coverage analysis and testing practices
Event Loop76-eventloop.mdUnderstanding the event loop implementation
Core API77-core_api.mdReference for core API functions
Testing78-test.mdTesting frameworks and procedures
Distribution Installation79-distributions.mdPlatform-specific installation notes
Acknowledgements97-acknowledgement.mdCredits and contributors
Licenses98-licenses.mdLicense information
References99-references.mdAdditional resources and references