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.
Currently in development. Follow progress on GitHub, or get in touch if you have an instance you need backed up sooner.
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.
What it does
Everything, or exactly what you choose
Content entries across all collection and single types, drafts and published, every locale. The media library with its folder structure. Content-type and component schemas, captured as they stood at backup time.
Selective, by type and by depth
Pick content types, pick individual records, and choose how many relation hops to follow. Restoring a handful of articles pulls in the authors and categories they point at, so you do not end up with records referencing things that no longer exist.
A reviewable plan before anything is written
Restore writes to a live CMS, so it always produces a diff first — creates, updates, deletes, skips, plus warnings about schema drift and relations that would land unresolved. Nothing is applied without confirmation.
Eight destinations
Local or network folder, S3 and anything speaking its API (MinIO, Cloudflare R2, Wasabi, Backblaze), Azure Blob, Google Drive, Dropbox, OneDrive, SFTP and FTPS — with retention rules per destination.
Unattended, as a background service
Recurring backups run as a Windows Service or a systemd daemon. A machine that slept through three nightly windows produces one catch-up backup on waking, not three.
Portable, verifiable, encryptable
A plain .zip any operating system can open, with SHA-256 checksums per entry and optional AES-256-GCM encryption. A backup format that needs its own software to inspect fails at exactly the moment it matters most.
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 — the app drives exactly the same engine.
The desktop app is a native application for Windows, macOS and Linux. 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. It bundles everything it needs, so there is no runtime to install first.
The command line suits developers, CI pipelines and headless servers, and installs from npm with a single command.
Requires Node.js 20.11 or later for the CLI; the desktop app bundles its own runtime and has no prerequisites. Neither the npm package nor the installers are published yet — the source is on GitHub in the meantime.
Strapi v4 and v5
Both majors are supported. They disagree about nearly everything structural — how records are identified, whether fields are nested, how draft state is expressed, how locales are linked — and the tool absorbs all of it, detecting which version an instance speaks by probing its behaviour rather than trusting a version string that may be absent, proxied away, or simply wrong.
One honest limitation: 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.
It holds your credentials, so it is built accordingly
Your admin password is never stored
It is exchanged once for a session token and dropped — never written to disk, never into an archive, never into a log.
It will not lock you out
Strapi throttles admin login. A failed sign-in is never retried automatically, because an automatic retry would lock you out of your own CMS.
It is a guest on your production server
Concurrency is capped low by default and rate limiting is honoured with backoff. A backup must never be the reason a site goes down.
Destination credentials go to your OS keystore
Windows DPAPI, macOS Keychain, libsecret on Linux — never a configuration file. Profiles reference secrets rather than containing them, so they are safe to share.
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.