Skip to content
PG Horizon
pgpipe

v6.0.1 · Released 9 September 2026 See what's new →

Download pgpipe

Linux packages and a small Docker-only quickstart for Intel/AMD64 and ARM64. Verify the SHA-256 checksum before running, especially on production hosts.

Upgrading from v5 or earlier

Use a new destination database and fresh configuration/state, unless a DBA performs a separately reviewed reset. v6 does not migrate old safety tables, repair history, or ledger evidence. Do not mix v5 and v6 binaries. Preserve your existing installation and backups.

PostgreSQL 14+ source (15+ for wildcard tables); PostgreSQL 15–18 destination. Repair execution remains disabled by default and is not yet GA.

Read the v6 upgrade guidance
Run with Docker

The fastest way to try pgpipe.

A small bundle that starts two PostgreSQL databases and pgpipe. Only Docker with Compose v2 is required; no Make, Go, or source checkout. The first build downloads the binaries for your architecture and checks their SHA-256 hashes. The dashboard binds only to localhost:8086. For disposable local evaluation, not production.

Quickstart download: 18.8 KB. Prefer to download both architectures in advance? Get the bundled-binary archive (33.2 MB). It uses the same Compose commands; Docker base images may still need downloading.

1. Grab the files

BASE="https://www.pghorizon.com/downloads/pgpipe/v6.0.1"
mkdir pgpipe-v6.0.1-demo &&
cd pgpipe-v6.0.1-demo &&
curl -fSL --retry 5 --retry-delay 2 --connect-timeout 20 --max-time 120 -C - -o pgpipe-6.0.1-docker.tar.gz "$BASE/pgpipe-6.0.1-docker.tar.gz" &&
curl -fsSL --retry 5 -o checksums.txt "$BASE/checksums.txt" &&
awk '$2 == "pgpipe-6.0.1-docker.tar.gz"' checksums.txt | shasum -a 256 -c - &&
tar -xzf pgpipe-6.0.1-docker.tar.gz &&
cd docker

2. Bring the stack up

# Prepare protected storage and start the isolated demo
docker compose up -d --build --wait --wait-timeout 180

# Dashboard username: admin
docker compose exec pgpipe cat /var/lib/pgpipe/data/pgpipe-admin.password

# Open http://localhost:8086 in your browser
docker compose logs -f pgpipe

3. See replication in action

# Change a source row
docker compose exec source-db psql -U postgres source_db \
  -c "UPDATE public.users SET name = 'pgpipe demo' WHERE id = 1;"

# Check the destination after replication catches up
docker compose exec dest-db psql -U postgres dest_db \
  -c "SELECT id, name FROM public.users WHERE id = 1;"

# Stop while preserving demo databases, configuration, and state
docker compose down

# Optional: permanently delete this disposable demo's data
# docker compose down --volumes

Logging into the dashboard

On the first docker compose up, pgpipe generates a random admin password. Open the dashboard at http://localhost:8086 and use these credentials:

# Just the password (cleanest, always works)
docker compose exec pgpipe cat /var/lib/pgpipe/data/pgpipe-admin.password

# Or grep the full first-run banner from the logs
docker compose logs pgpipe | grep -A 6 "FIRST RUN — DASHBOARD"

Username is admin. The password is auto-generated on first run, persisted to /var/lib/pgpipe/data/pgpipe-admin.password (mode 0600), and survives restarts. The "FIRST RUN" log banner only appears the first time — after that, read the password file.

The seed configuration is copied into a writable named volume on first start. Later host-file edits do not overwrite that retained configuration. The setup-only administrator credential is removed after bootstrap; it is never passed to the pgpipe runtime.

Running pgpipe against your own databases? Use the guided initialization workflow to prepare protected destination storage and verify the runtime role. Do not substitute real credentials into the demo bootstrap scripts or reuse old demo volumes.

Linux packages

Platform File Size Download
Debian / Ubuntu (amd64)
sha256: 8de5d9aa91d08c00cbb6778d5bb2ad38e44dba63752f425d8d6351a27b1bcf53
pgpipe_6.0.1_amd64.deb 9.5 MB Download
Debian / Ubuntu (arm64)
sha256: ae67b5fd142707262d599aaa5e254731fc256ea9a4f897c0f2cb331979761e39
pgpipe_6.0.1_arm64.deb 8.2 MB Download
RHEL / Rocky / Fedora (x86_64)
sha256: 6681f603fd63a8b912d591cd89be27bbdd753ba9961d98abff074130c7e587ed
pgpipe-6.0.1-1.x86_64.rpm 12.7 MB Download
RHEL / Rocky / Fedora (aarch64)
sha256: 69b6f6e7f484f97f66c3b8fa153b8922ca6a638fce05016cdfa8b7bd8ab7e0ff
pgpipe-6.0.1-1.aarch64.rpm 11.5 MB Download

Verification & companion files

Debian / Ubuntu (.deb)

wget https://www.pghorizon.com/downloads/pgpipe/v6.0.1/pgpipe_6.0.1_amd64.deb
sudo apt install ./pgpipe_6.0.1_amd64.deb
sudo -u pgpipe -- /usr/bin/pgpipe init -c /etc/pgpipe/pgpipe.yaml
sudo systemctl start pgpipe

RHEL / Rocky / Fedora (.rpm)

wget https://www.pghorizon.com/downloads/pgpipe/v6.0.1/pgpipe-6.0.1-1.x86_64.rpm
sudo dnf install ./pgpipe-6.0.1-1.x86_64.rpm
sudo -u pgpipe -- /usr/bin/pgpipe init -c /etc/pgpipe/pgpipe.yaml
sudo systemctl start pgpipe

Before starting a native installation

Prepare the source replication role and destination application-schema grants first. Run pgpipe init as the service user, open its exact random loopback URL, and paste the separate setup token. For a remote host, use the printed SSH-tunnel command.

During finalization, the wizard uses a temporary destination administrator credential to prepare protected safety storage, verifies the restricted runtime login, and discards the administrator credential. The service remains inactive until initialization completes. Package installation and upgrades never connect to PostgreSQL or start/restart pgpipe.

Behind an HTTPS-terminating reverse proxy, add the exact public HTTPS origin without a trailing slash to server.csrf.trusted_origins.

Full v6.0.1 changelog

First time using pgpipe?

The Docker demo includes sample source and destination databases, with protected storage prepared automatically.

See the quickstart

pgpipe is provided as-is, free of charge, with no support SLA. For commercial support and managed deployments, talk to us.