Archive was growing unbounded (~97 GB / 6k segments). Now runs
pg_archivecleanup against the newest .backup marker and deletes
full_* directories beyond FULL_RETENTION=5.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
pg_basebackup -Xs copies WAL segments to the backup dir, causing
the archive_command to fail on those pre-existing files and block
all subsequent archiving.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The backup container creates /backup/wal as root, but the postgres
archive_command runs as UID 999 and can't write to it.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Weekly full backups via pg_basebackup and continuous WAL archiving
for point-in-time recovery, running as Docker Compose services.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>