CMS disaster recovery

Strapi Remote Backup Pro In development

Back up and restore any Strapi instance without installing a plugin in it. Point the tool at a URL, sign in with admin credentials, and it does the rest — no dependency added to your CMS, no redeploy, no code running inside your production process.

Where it is up to. The engine and the CLI work: backing up a live Strapi v5 instance and restoring it into another runs end to end, verified by a round-trip test against two live instances — content, components, dynamic zones, relations, draft/published pairs and media, compared record by record. The desktop app is not implemented yet, only the local destination is wired up of the eight below, and the v4 dialect is written but has never been run against a v4 instance. Follow progress on GitHub, or get in touch if you have an instance you need backed up sooner.

Remote Backup strapi · agentless
Licence MIT Strapi v5 proved · v4 written Today CLI · engine Destinations 1 of 8 wired
Why we built it

Every other Strapi backup tool is a plugin

Installing one means adding a dependency to a live CMS, redeploying it, and asking someone to trust code running inside their production process. If you are an agency or a consultant backing up a client's instance, that is often not merely inconvenient — you may have no deploy access at all.

This runs entirely outside the target. It authenticates against the same admin API the Strapi admin panel itself uses, so there is nothing to install, nothing to redeploy, and nothing to uninstall afterwards. It cannot destabilise the CMS it is backing up, because it is not running inside it.

Capabilities

What it does

Desktop app and CLI

Two ways to run it

The command line is a first-class way to use this, not a debugging shortcut. Anything the app can do, an expert can do from a terminal — because the app drives exactly the same engine rather than reimplementing it.

The command line is what exists today: login, backup, restore, inspect and verify, for developers, CI pipelines and headless servers. A bootstrap installer stages a pinned, checksum-verified Node runtime and puts a strapi-backup command on the PATH for anyone who would rather not think about Node at all — measured working on Windows, not yet run on macOS or Linux.

The desktop app is designed and skeletoned, not built. Twenty-four C# files carry the final signatures behind an Avalonia UI, and nothing behind them runs yet. When it lands it adds a visual content-type picker with relation-depth control, the restore diff, scheduling, and secure storage of destination credentials in the operating system's own keystore, bundling its own runtime so there is nothing to install first.

$ npx strapi-remote-backup-pro backup --url https://cms.example.com --email admin@example.com

Requires Node.js 20.11 or later for the CLI; the desktop app will bundle its own runtime. Neither the npm package nor the installers are published yet, so the command above will not resolve — build from the source on GitHub in the meantime.

Compatibility

Strapi v5 today, v4 written and unproved

Both majors are behind one dialect boundary, because they disagree about nearly everything structural — how records are identified, whether fields are nested, how draft state is expressed, how locales are linked. Which version an instance speaks is detected by probing its behaviour rather than trusting a version string that may be absent, proxied away, or simply wrong.

v5 is the one that is proved. The round trip has been run repeatedly against two live Strapi 5.52.0 instances and compared record by record. The v4 dialect is written to the same interface but has never been run against a v4 instance, so we describe it as written, not supported — if you have a v4 estate that needs backing up, talk to us and we will prove it against yours rather than ask you to trust a claim.

One limitation that will not go away: Strapi v4 identifies records only by an instance-local numeric id. Restoring a v4 archive into a different instance therefore needs an explicit identity mapping. That is a property of v4 rather than of this tool, and it is reported plainly instead of quietly producing duplicates.

Security

It holds your credentials, so it is built accordingly

Open source

MIT licensed, and the format is documented

Published under the MIT licence, free to use commercially, like the rest of our open-source work. The archive format is specified in full — so if this tool ever disappears, your backups do not become unreadable.

Unzip an archive and you get a manifest describing what is inside, your content as one JSON record per line, and your media files. No proprietary container, and nothing you need us for.

backup-2026-08-18T1430.zip
├── manifest.json                      always plaintext, always first
├── schemas/                           content types & components, as captured
├── content/
│   └── api--article.article.ndjson    one JSON record per line
├── media/
│   ├── media.ndjson                   filenames, folder paths, hashes
│   └── files/                         named by content hash, de-duplicated
└── meta/
    ├── locales.json
    └── run-report.json                counts, durations, warnings

The manifest is the one entry that is never encrypted, so an archive can be listed and identified without its passphrase.