WP Manifestindependent plugin directory

YAWP releasesself-updates

Yet Another WordPress Backup Plugin

by Nonatech UK · github.com/nonatech-uk/yawp · website

0stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/nonatech-uk/yawp/archive/refs/heads/main.zip

Ships its own WordPress updater (built-in updater), so new versions show up under Dashboard → Updates.

YAWP — Yet Another WordPress (Backup) Plugin

Incremental S3 backups with Object Lock for WordPress sites running in containers. Optimised for slow-moving sites — after an initial full backup, incremental backups only run if someone logged in that day.

Features

  • Full & incremental backups — tar.gz archive of files + full database dump
  • S3 Object Lock — COMPLIANCE mode for immutable, ransomware-proof storage
  • Login-triggered incrementals — no login, no backup, no wasted storage
  • Scheduled full backups — configurable interval (or manual-only)
  • No SDK dependencies — minimal S3 client with SigV4 signing using PHP curl
  • Encrypted credentials — AWS secret key stored with XSalsa20-Poly1305 (libsodium)
  • GitHub auto-updater — updates via GitHub releases, no WordPress.org listing needed

Requirements

  • PHP 7.4+
  • curl and sodium extensions
  • exec() enabled (for tar)
  • S3 bucket with Object Lock enabled

Installation

cd /path/to/wp-content/plugins/
git clone git@github.com:nonatech-uk/yawp.git

Activate in WordPress admin, then configure under Settings → YAWP Backup.

S3 Bucket Setup

aws s3api create-bucket --bucket yawp-pitstop --region eu-central-1 \
  --create-bucket-configuration LocationConstraint=eu-central-1 \
  --object-lock-enabled-for-bucket

aws s3api put-bucket-versioning --bucket yawp-pitstop \
  --versioning-configuration Status=Enabled

aws s3api put-object-lock-configuration --bucket yawp-pitstop \
  --object-lock-configuration '{"ObjectLockEnabled":"Enabled","Rule":{"DefaultRetention":{"Mode":"COMPLIANCE","Days":90}}}'

IAM policy needs: s3:PutObject, s3:GetObject, s3:ListBucket, s3:AbortMultipartUpload, s3:ListMultipartUploadParts. No s3:DeleteObject — COMPLIANCE mode objects can't be deleted anyway.

How It Works

  1. Activation — schedules a daily WP-Cron event at 03:00 UTC
  2. Login hook — any wp_login sets a date flag in wp_options
  3. Daily check — if no full backup exists, runs full; if login flag is set, runs incremental; otherwise skips
  4. Backup — exports DB via $wpdb, creates tar.gz, uploads to S3 with Object Lock headers
  5. Incremental — uses tar --newer to include only files changed since last backup (always includes full DB)

License

GPL v2 or later. See LICENSE.

Releases

13 releases.

Tag
Published
v1.15.0 latest
May 9, 2026 4mo ago
Apr 14, 2026 5mo ago
Feb 25, 2026 6mo ago
Feb 17, 2026 6mo ago
Feb 17, 2026 6mo ago
Feb 16, 2026 6mo ago
Feb 16, 2026 6mo ago
Feb 13, 2026 6mo ago
Feb 12, 2026 7mo ago
Feb 12, 2026 7mo ago
Feb 11, 2026 7mo ago
Feb 11, 2026 7mo ago
Feb 11, 2026 7mo ago

These releases are tags only. The author does not attach a packaged zip, so there are no download counts to report.