Skip to content

Latest commit

 

History

2,425 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WAL-G (Lateos fork): PostgreSQL WAL Archiving & Backups

A maintained fork of wal-g/wal-g, forked in June 2026 at upstream commit 7e9f9055. Upstream WAL-G remains actively maintained; this fork exists to maintain the v0.14-era codebase with the additions listed below. Teams without a need for those additions should use upstream WAL-G.

Attribution

This repository is a fork of the original WAL-G project.

Status

Fork additions

Together these answer one question that upstream leaves to guesswork: can this backup be restored, how far back, how fast, and will the retention policy still allow it tomorrow. Each reports what it verified and declines to claim what it did not.

  • backup-verify — two-tier backup verification (Tier 1: sentinel integrity, manifest completeness, checksum coverage, decrypt canary; Tier 2: sampled tar-partition download) — docs
  • doctor — preflight checks for config resolution, storage read/write/delete, crypter round-trip, PostgreSQL connectivity, WAL archiving, backup freshness, and free space vs. restore size — docs
  • pitr-window — reports the ranges of time the storage can actually be restored to, the gaps between them, and which backups can no longer serve a restore; --min-window makes it a CI gate against a retention policy that has stopped covering its RPO — docs
  • delete --explain — on every delete subcommand: what the delete would remove and the recovery window before and after it, with warnings for deletes that leave nothing restorable, open a gap, or strand backups in storage that can no longer be restored — docs
  • retention-validate — checks that the retention policy you run delivers the RPO and retention window you declare, by running the real policy through the real delete handler and validating the window it would leave; catches the policy that passes today only because it has not been applied yet — docs
  • restore-test — restores a backup into a scratch directory for real, times it, and judges it against declared RTO/RPO; refuses to touch PGDATA or any non-empty directory, and cleans up after itself. Optionally starts the restored cluster to measure WAL replay — docs
  • compliance-report — runs doctor, backup-verify, retention-validate, pitr-window, and (opt-in) restore-test, and collects their output into one pass/fail evidence report for an audit or change record. An evidence aggregator, not a certified SOC2/CMMC report — docs
  • Free-space preflightbackup-fetch sizes a restore against the free space available to it and refuses one that demonstrably will not fit, instead of failing hours in with a half-written data directory — docs
  • Delta-chain depth limitsWALG_DELTA_MAX_STEPS is enforced against the chain depth walked from storage rather than the count recorded in a sentinel, so a missing or stale count can no longer let a chain grow past its limit unnoticed; promotion to a full backup records why on the resulting backup — docs
  • Recovery objectives as configWALG_RPO, WALG_RTO, WALG_RETENTION_WINDOW and WALG_RETENTION_COUNT, so a cron job and a CI gate are judged against the same numbers — docs
  • Deployment metadata--git-commit, --git-branch, --deploy-id flags recorded in backup metadata (cmd/pg/backup_push.go)
  • Checksum inventory — per-file SHA256 checksums stored at backup time and reported by backup-verify
  • Characterization tests — golden-file regression detection (internal/characterization, pkg/storages/postgres/characterization_test.go)
  • Dependency hardening — audited dependency baseline and fix trail — docs/security-audit.md
  • License compliance CI — automatic enforcement of the Apache-2.0/MIT structure — .github/workflows/license-check.yml

Inherited capabilities (from upstream WAL-G)

  • Point-in-time recovery via continuous WAL archiving and incremental backups
  • Storage backends: S3, Google Cloud Storage, Azure, Alibaba OSS, Swift, SSH, and local filesystem — docs/STORAGES.md
  • Encryption: AWS KMS, Yandex Cloud KMS, OpenPGP, and libsodium — overview docs
  • Monitoring: Prometheus exporter (cmd/pg/exporter, extended in this fork with backup-verify metrics) and statsd/graphite telemetry
  • wal-verify — WAL integrity and timeline verification

Quick Start

Installation

Binaries are published with each release.

Docker images, a Homebrew formula, and a Helm chart are not yet available (see Roadmap).

Configure & Backup

# Set the storage prefix (example: S3)
export WALG_S3_PREFIX=s3://your-bucket/wal-g
export AWS_REGION=us-east-1

# Create a backup
wal-g backup-push

# List backups
wal-g backup-list

# Restore the latest backup
wal-g backup-fetch /tmp/restore LATEST

Documentation

Community

Roadmap

Planned, not yet built (no dates committed):

  • Backblaze B2 storage backend
  • Helm chart
  • Homebrew formula and Docker images
  • Binary-level compatibility test suite against upstream v0.14.x artifacts
  • Published documentation site (mkdocs/readthedocs)
  • Public metrics dashboard (CI and release statistics)

Contributing

This repository is vendor-maintained: we are currently not accepting external code contributions, pull requests, bug fixes, or feature submissions. Pull requests opened by external contributors may be closed unmerged. See CONTRIBUTING.md for the development setup used by maintainers.

License

Inherited code is licensed under the Apache License 2.0 (upstream copyright: Citus Data Inc. — see NOTICE). Code authored by Lateos is licensed under the MIT License. See COPYRIGHT.md for a path-by-path license map.


Maintained by Lateos

About

PostgreSQL WAL archiving, backups, and disaster recovery. Actively maintained successor to WAL-G. 100% backward compatible with v0.14.1. S3/GCS/Azure ready.

Resources

Contributing

Security policy

Stars

91 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages