Freedom251 › Database Proxy Software
PgDoorman

What PgDoorman is
PgDoorman is a free, open-source, self-hosted connection pooler for PostgreSQL 10 and newer. Written in Rust and multithreaded, it is described as a drop-in replacement for PgBouncer and Odyssey. Its pool coordinator sets a connection cap per database and can reclaim idle connections from pools with spare capacity. PgDoorman caches anonymous Parse messages so pooled clients can reuse prepared backend state without application changes. With Patroni assistance, it can direct new backend connections to another live cluster member if the local PostgreSQL server disappears during a switchover. Monitoring includes a Prometheus metrics endpoint and an optional local diagnostic console for pool, latency, error, query, log, CPU, and memory information. Documented authentication options include MD5 or SCRAM passthrough, auth_query, PAM, JWT, Talos JWT, and pg_hba.conf access rules. TLS can be configured for client and backend connections. The project reports production use at Ozon for three years with Go, .NET, Python, and Node.js workloads. It runs on Linux and macOS and can be built from source, installed from packages, or downloaded as a prebuilt binary. Docker is intended for development, CI, and demos rather than production.
Who it suits
PgDoorman is for teams running PostgreSQL 10 or newer who can operate a self-hosted pooler on Linux or macOS. It may suit deployments that need connection pooling, load balancing, and automatic failover, but not query routing.
What it does well
- Pools PostgreSQL connections and balances load.
- Patroni-assisted fallback can direct connections to another live member.
- Includes a Prometheus metrics endpoint.
- Supports several documented authentication methods.
- Free and open source.
What to know first
- Does not support query routing.
- LDAP and Kerberos GSSAPI authentication are unsupported.
- Building from source requires Rust 1.87 or newer.
- Docker is intended for development, CI, and demos, not production.
Limits
The Free plan costs nothing, with no paid plans or usage limits stated. Source builds require Rust 1.87 or newer; LDAP, Kerberos GSSAPI, certificate-based authentication, and SCRAM channel binding are unsupported.
Plans
| Plan | Billed and limits | Price |
|---|---|---|
| PgDoorman | No paid plans or usage limits stated | Free |
As ozontech.github.io lists them, read 8 Oct 2026. The maker's own page has the final word.
Getting started
- Visit https://ozontech.github.io/pg_doorman/ for the project installation guide.
- Use PostgreSQL 10 or newer.
- Choose a Linux or macOS installation route: build from source, install a distribution package, or download a prebuilt binary.
- For a source build, use Rust 1.87 or newer.
- Use Docker for development, CI, or demos.
PgDoorman is a self-hosted, multithreaded PostgreSQL connection pooler written in Rust and positioned as a drop-in replacement for PgBouncer and Odyssey. It suits teams running PostgreSQL 10 or newer that want coordinated pooling, operational metrics, and failover without a service subscription. Its strongest case is a PostgreSQL-focused infrastructure team comfortable owning builds, authentication choices, and deployment.
Overview
PgDoorman concentrates on PostgreSQL connection management rather than presenting itself as a general database gateway. It pools connections and coordinates capacity across databases, enforcing a per-database connection cap and reclaiming idle connections from pools with spare capacity when another pool needs room. That makes shared infrastructure more predictable than isolated pool limits, especially when several applications compete for the same PostgreSQL service.
The project describes itself as a drop-in alternative to PgBouncer and Odyssey, with production use at Ozon for three years across Go, .NET, Python, and Node.js workloads. Those workloads suggest compatibility with varied application stacks, while the drop-in goal is most useful to teams replacing an existing PostgreSQL pooler rather than designing a new database platform.
Key features
Pooling and prepared statements
PgDoorman caches anonymous Parse messages, allowing clients sharing a pool to reuse prepared backend state without application changes. This can preserve prepared-statement behavior while connections move between clients, reducing the need for code changes during adoption.
Capacity coordination and failover
The pool coordinator’s per-database cap and idle-connection redistribution address noisy-neighbor behavior between pools. Patroni-assisted fallback can send new backend connections to another live cluster member when the local PostgreSQL server disappears during a switchover. It is a practical high-availability aid for Patroni-managed clusters, but it is not a substitute for a properly operated PostgreSQL failover system.
Monitoring and security
A Prometheus endpoint supports integration with an existing monitoring stack. An optional local web console exposes pool, latency, error, query, log, CPU, and memory information for diagnosis without requiring a separate dashboard.
Authentication covers MD5 or SCRAM passthrough, auth_query, PAM, JWT, Talos JWT, and pg_hba.conf access rules. Passthrough reuses the client’s MD5 hash or SCRAM ClientKey, so plaintext passwords do not need to be stored in configuration. The trade-off is a clear security boundary: LDAP, Kerberos GSSAPI, certificate authentication, and SCRAM channel binding are unsupported.
TLS and deployment
TLS works for client and backend connections. Seamless TLS-session migration during binary upgrades requires a Linux build with the tls-migration feature, so teams needing that upgrade behavior must plan their build and operating-system choice accordingly. PgDoorman can be built from source, installed through distribution packages, or downloaded as a prebuilt binary. Docker is intended for development, CI, and demonstrations, not production deployment.
Pricing
| Plan | Price | What it includes |
|---|---|---|
| PgDoorman | free | Open-source, self-hosted software; no paid plans or usage limits stated |
There is no free trial because the product is free rather than trial-based. The zero-cost plan fits teams that can provide their own PostgreSQL operations, hosts, upgrades, monitoring, and support. It gives up the convenience of a vendor-managed service: deployment responsibility, build requirements, and feature compatibility remain with you.
Platforms
PgDoorman supports Linux, macOS, and self-hosted deployment. PostgreSQL 10 or newer is required. Building from source requires Rust 1.87 or newer; prebuilt binaries and distribution packages can avoid that compiler requirement. Linux is the necessary target for the tls-migration build feature.
Who it's for
Choose PgDoorman if you operate PostgreSQL yourself, need connection pooling across multiple applications, and value Prometheus metrics plus Patroni-aware fallback. It is particularly suitable for infrastructure teams that can evaluate unsupported authentication methods and maintain a Rust-based component in production.
Look elsewhere if your identity stack depends on LDAP, Kerberos GSSAPI, client certificates, or SCRAM channel binding, or if you expect a managed control plane and production Docker support. PgDoorman also is not a query-routing product; its focus is pooling and backend availability rather than SQL distribution.
Pros and cons
- Pros: Free and open source, with no stated usage caps.
- Pros: Per-database coordination and idle-capacity redistribution help control contention between pools.
- Pros: Prepared-state caching can work without application changes.
- Pros: Prometheus metrics, a local diagnostic console, TLS, and Patroni-assisted fallback cover core operations needs.
- Cons: LDAP, Kerberos GSSAPI, certificate authentication, and SCRAM channel binding are unsupported.
- Cons: Production deployment is self-managed; Docker is aimed at development, CI, and demos.
- Cons: Source builds require Rust 1.87 or newer, and TLS-session migration needs a Linux feature build.
Alternatives
Browse Database Proxy Software for a wider category comparison.
MySQL is the better fit when you need a freemium database platform spanning API, Linux, macOS, self-hosted, and Windows environments, with a Community Edition and a free trial.
OceanBase Database suits teams seeking a distributed database with full kernel capabilities and both Community and Enterprise editions across web and desktop/server platforms.
PgDog is worth considering for Windows support or an enterprise control plane; its open-source plan is AGPL-3.0 and its Enterprise plan adds production controls and insights.
pgagroal is a straightforward free, BSD-3-Clause, self-hosted PostgreSQL pooler for Linux and macOS.
PgBouncer remains the direct free, self-hosted baseline when you want a source release for Linux or Windows without PgDoorman’s added coordination and diagnostic surface.
ShardingSphere-Proxy is the alternative for an open-source binary distributed with Docker and Helm deployment options.
TiCDC is a free open-source option for teams whose priority is change-data-capture infrastructure rather than PostgreSQL pooling.
TurbineProxy offers an Apache-2.0 open-source proxy with no per-query fees across API, Linux, self-hosted, and web environments.
Verdict
PgDoorman is a strong choice for PostgreSQL operators who want free, self-hosted pooling with coordinated capacity, useful diagnostics, prepared-state reuse, and Patroni-aware fallback. Its main reason to look elsewhere is the operational and authentication boundary: unsupported enterprise identity methods, source-build considerations, and self-managed production deployment make it a poor fit for teams seeking broad authentication coverage or a managed service.
Verdict
PgDoorman offers PostgreSQL connection pooling, capacity coordination, monitoring, and failover in a self-hosted package. Review its authentication gaps, build requirements, and deployment guidance against your environment.
Questions
How much does PgDoorman cost?
The PgDoorman plan is free. The project lists no paid plans.
Which PostgreSQL versions does PgDoorman support?
It supports PostgreSQL 10 and newer.
Where can I run PgDoorman?
It is listed for Linux and macOS and uses a self-hosted deployment model.
How can I install PgDoorman?
It can be built from source, installed from distribution packages, or downloaded as a prebuilt binary. Source builds require Rust 1.87 or newer.
Does PgDoorman support query routing?
No. Query routing is not supported.
Which authentication methods are unsupported?
LDAP, Kerberos GSSAPI, certificate-based authentication, and SCRAM channel binding are listed as unsupported.
Facts from PgDoorman's own pages
- Authentication
- Documented authentication methods include MD5 or SCRAM passthrough, auth_query, PAM, JWT, Talos JWT, and pg_hba.conf access rules. · ozontech.github.io, 8 Oct 2026
- Credential handling
- In passthrough mode, the client’s MD5 hash or SCRAM ClientKey is reused for PostgreSQL authentication, so plaintext passwords are not needed in the configuration. · ozontech.github.io, 8 Oct 2026
- Deployment
- PgDoorman can be built from source, installed from distribution packages, or downloaded as a prebuilt binary; Docker is intended for development, CI, and demos rather than production. · ozontech.github.io, 8 Oct 2026
- High availability
- Patroni-assisted fallback can direct new backend connections to another live cluster member when the local PostgreSQL server disappears during a switchover. · ozontech.github.io, 8 Oct 2026
- Monitoring
- PgDoorman includes a Prometheus metrics endpoint and an optional local web diagnostic console for pool, latency, error, query, log, CPU, and memory information. · ozontech.github.io, 8 Oct 2026
- Platforms
- The installation guide lists Linux and macOS as supported operating systems and recommends Linux for production. · ozontech.github.io, 8 Oct 2026
- Pool coordination
- Its pool coordinator enforces a per-database connection cap and can redistribute capacity by closing idle connections from pools with spare capacity. · ozontech.github.io, 8 Oct 2026
- Prepared statements
- PgDoorman caches anonymous Parse messages so clients in a pool can reuse prepared backend state without application changes. · ozontech.github.io, 8 Oct 2026
- Production use
- The project says it has been in production at Ozon for three years with Go, .NET, Python, and Node.js workloads. · ozontech.github.io, 8 Oct 2026
- Requirements
- The installation guide requires PostgreSQL 10 or newer and Rust 1.87 or newer when building from source. · ozontech.github.io, 8 Oct 2026
- Security limits
- LDAP, Kerberos GSSAPI, certificate-based authentication, and SCRAM channel binding are listed as unsupported. · ozontech.github.io, 8 Oct 2026
- TLS
- TLS can be configured for client and backend connections, while seamless migration of TLS sessions during binary upgrades requires a Linux build with the tls-migration feature. · ozontech.github.io, 8 Oct 2026
- What it does
- PgDoorman is a multithreaded PostgreSQL connection pooler written in Rust and described as a drop-in replacement for PgBouncer and Odyssey. · ozontech.github.io, 8 Oct 2026
Where PgDoorman stands on Freedom251
- Database Proxy Software#14 of 31