+--------------------------------------------------------------+
| PanValik                                                     |
| transparent PostgreSQL archive preservation toolkit          |
+--------------------------------------------------------------+

version: v0.2.1-1 | build c639c4c3dcb7

panvalik / humor

$ whoami

PanValik preserves PostgreSQL WAL-related objects in self-describing, verifiable containers built from ordinary Unix primitives.

$ panvalik --help

archive    archive WAL/history objects
receive    receive and verify a tar-v2 stream
restore    restore local-first, with recursive upstream fallback
chain      validate WAL continuity
verify         verify inner / outer / both
repair         rebuild disposable outer metadata
repack         change compression representation
wpk            build archival WAL packages

$ cat /etc/postgresql/.../postgresql.conf

archive_command = 'panvalik archive 18-main "%p" "%f"'
restore_command = 'panvalik restore 18-main "%f" "%p"'

Transport topology stays inside PanValik. PostgreSQL sees one stable interface.

$ family-tree

vnuchok  <--  [ praDeD ]  <--  < dEd >
                 |               |
              restore          archive
              policy           ingress

Restore is local-first. Proven absence may fall back upstream. A present but corrupt local object fails closed instead of being silently hidden by another node.

$ principles