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.
This repository is a fork of the original WAL-G project.
- 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 and docs/FORK_PROVENANCE.md for the fork's provenance
- Fork point: upstream commit
7e9f9055(2026-06-04). Upstream is active — latest release v3.0.8 (January 2026). - Fork releases: 5 releases, June–August 2026.
- CI: unit tests with the race detector and all compression/encryption drivers (unittests),
go test -race ./...(test), Windows-native build (windows-native), Docker-based integration tests against PostgreSQL 10, 15, 16, 17, and 18 (see compatibility matrix), MongoDB 7/8, Redis, MySQL, MariaDB, Greenplum, and etcd (docker tests), golangci-lint, and license compliance (license-check). View runs. - The documentation site is not published yet (see Roadmap).
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) — docsdoctor— preflight checks for config resolution, storage read/write/delete, crypter round-trip, PostgreSQL connectivity, WAL archiving, backup freshness, and free space vs. restore size — docspitr-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-windowmakes it a CI gate against a retention policy that has stopped covering its RPO — docsdelete --explain— on everydeletesubcommand: 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 — docsretention-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 — docsrestore-test— restores a backup into a scratch directory for real, times it, and judges it against declared RTO/RPO; refuses to touchPGDATAor any non-empty directory, and cleans up after itself. Optionally starts the restored cluster to measure WAL replay — docscompliance-report— runsdoctor,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 preflight —
backup-fetchsizes 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 limits —
WALG_DELTA_MAX_STEPSis 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 config —
WALG_RPO,WALG_RTO,WALG_RETENTION_WINDOWandWALG_RETENTION_COUNT, so a cron job and a CI gate are judged against the same numbers — docs - Deployment metadata —
--git-commit,--git-branch,--deploy-idflags 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
- 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-verifymetrics) and statsd/graphite telemetry wal-verify— WAL integrity and timeline verification
Binaries are published with each release.
Docker images, a Homebrew formula, and a Helm chart are not yet available (see Roadmap).
# 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- Backup & Recovery
- PostgreSQL
- PostgreSQL version compatibility matrix
- Storage backends
- Overview (upstream documentation)
- Monitoring (Prometheus exporter)
- Security audit trail
- Fork provenance
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)
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.
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