Application backups
Back up WordPress, WooCommerce, Drupal, Odoo, Moodle, Laravel, Nextcloud, GitLab, Keycloak, Grafana, Matomo, Discourse, Immich, Minecraft servers and more completely: the database, the files and the keys you cannot rebuild.
How to back up and restore a WordPress site on your own server
Back up a self-hosted WordPress site completely: the database with WP-CLI or mysqldump, and wp-content and wp-config.php with tar. Then restore it on the same or a new server, change the URL safely, verify it and schedule it.
10 min readHow to back up and restore a Laravel application
Back up what a Laravel app cannot rebuild: the database, user files in storage/app, and the .env file with APP_KEY. Restore it on a new server, verify it, and schedule it with cron or the Laravel scheduler.
9 min readHow to back up and restore a self-hosted Ghost site
Back up a self-hosted Ghost site completely: dump its MySQL database and archive the content folder and config.production.json, and know what ghost backup and the Admin export leave out. Then restore it on a new server, verify it and schedule it.
8 min readHow to back up and restore a Craft CMS site
Back up Craft CMS 5 with php craft db/backup and a file archive that keeps .env, project config and asset uploads, and protect CRAFT_SECURITY_KEY. Then restore it on a new server with db/restore and craft up, verify it and schedule it.
8 min readHow to back up and restore Nextcloud
Back up a Nextcloud server the way its admin manual describes: maintenance mode, the config, data, apps and theme folders, and a database dump. Then restore it on the same or a new server, resync clients, verify it and automate it.
9 min readHow to back up and restore Vaultwarden
Back up a Vaultwarden server safely: what is in the data folder, a consistent copy of db.sqlite3, encrypting the archive, restoring it, and testing a restore without putting a second vault online.
10 min readHow to back up and restore n8n
Back up a self-hosted n8n instance: the .n8n folder and its encryption key, a safe copy of the SQLite database or a pg_dump, CLI exports of workflows and credentials, and how to restore and test it.
12 min readHow to back up and restore Gitea or Forgejo
Back up Gitea or Forgejo with gitea dump or forgejo dump, add a native database dump, handle Docker installs and large repositories, and restore everything by hand on a new server.
9 min readHow to back up and restore Uptime Kuma
Back up Uptime Kuma 2 safely: what is in the data folder, stopping the container or copying kuma.db live with SQLite's backup API, MariaDB setups, restoring onto a new server and testing a restore without duplicate alerts.
8 min readHow to back up and restore a Drupal site
Back up a Drupal 10 or 11 site completely: the database with drush sql:dump, the public and private files with tar, and settings.php with its hash salt. Then restore it on a new server with Composer and Drush, verify it and schedule it.
10 min readHow to back up and restore a Magento 2 store
Back up a self-hosted Magento Open Source or Adobe Commerce store: the database with mysqldump, pub/media with tar, and app/etc/env.php with its encryption key. Then restore it on a new server, rebuild code and indexes, verify it and schedule it.
10 min readHow to back up and restore Immich
Back up a self-hosted Immich server: its PostgreSQL database and nightly dumps, which UPLOAD_LOCATION folders hold your originals, a restic script for large libraries, and restoring onto a fresh install.
10 min readHow to back up and restore a Mastodon server
Back up a self-hosted Mastodon server: a custom-format pg_dump, the secrets in .env.production, uploaded media without the remote cache, and Redis. Then restore onto a new machine and rebuild feeds with tootctl.
9 min readHow to back up a Minecraft server
Back up a Minecraft Java or Bedrock server without stopping it: what to copy, a consistent copy with save-off and save-all flush over RCON, a cron script with retention, Docker, restoring a world and fixing damaged chunks.
10 min readHow to back up and restore self-managed GitLab
Back up self-managed GitLab with gitlab-backup create, keep gitlab-secrets.json and gitlab.rb safe, schedule and prune backups, upload them to object storage, and restore onto the same version with the checks GitLab recommends.
10 min readHow to back up a WooCommerce store
Back up a WooCommerce store so no orders are lost: which tables and folders WooCommerce adds to a WordPress backup, hourly database dumps, restoring without losing new orders, and keeping staging copies from charging cards or emailing customers.
10 min readHow to back up and restore a Moodle site
Back up a whole Moodle site: the PostgreSQL or MySQL database, moodledata and the code with config.php. Then restore it on a new server, change the URL, verify it and schedule it, and see why course backups are not a site backup.
9 min readHow to back up self-hosted Plausible Analytics
Back up Plausible Community Edition: a pg_dump of its PostgreSQL database, a ClickHouse BACKUP of the event data, the secrets in .env, and how to restore, upgrade and test it on a new server.
11 min readHow to back up and restore Paperless-ngx
Back up Paperless-ngx with its own document_exporter, or with its volumes and a database dump: what to keep, the exporter's flags, scheduling, encryption, restoring with document_importer, and testing a restore.
10 min readHow to back up and restore a Discourse forum
Back up a self-hosted Discourse forum with its built-in scheduled backups, send them to S3, keep app.yml safe, and restore onto a new server with discourse restore, including the errors you are likely to hit.
9 min readHow to back up and restore Mattermost
Back up a self-hosted Mattermost server: dump its PostgreSQL database with pg_dump, copy the config and data folders, see what mmctl export leaves out, handle Docker installs, and restore onto a new server at the same version before upgrading.
10 min readHow to back up and restore a Joomla site
Back up a Joomla 5 or 6 site completely: the MySQL, MariaDB or PostgreSQL database, the site files with tar, and configuration.php with its secret. Then restore it on a new server, fix the paths, verify it and schedule it.
10 min readHow to back up and restore a PrestaShop store
Back up a PrestaShop 8 or 9 store completely: the MySQL database with mysqldump, the images, downloads, modules and themes with tar, and parameters.php with its cookie keys. Then restore it on a new server, change the domain, verify it and schedule it.
10 min readHow to move a WordPress site to a new host
Move a WordPress site to a new host in the right order: lower the DNS TTL, copy the files and database with WP-CLI, change URLs without breaking serialized data, set up HTTPS, test before DNS changes, and keep the old host until DNS settles.
11 min readHow to back up and restore Keycloak
Back up Keycloak by dumping its database and copying keycloak.conf, providers, themes and TLS files, learn what kc.sh export does and leaves out, and restore onto a new server at the same version.
9 min readHow to back up Grafana
Back up a self-hosted Grafana server: copy grafana.db safely while it runs, keep grafana.ini and its secret_key, provisioning files and plugins, export dashboards with the HTTP API, and restore onto a new server.
8 min readHow to back up and restore Odoo
Back up a self-hosted Odoo Community or Enterprise database completely: the PostgreSQL database, the filestore and odoo.conf. Use the database manager or pg_dump and tar, restore on a new server, verify every attachment and neutralize test copies.
10 min readHow to back up and restore Matomo
Back up self-hosted Matomo Analytics completely: the MySQL or MariaDB database with mysqldump, config.ini.php and its salt, plugins and misc/user. Then restore it on a new server, re-archive reports, and keep visitor data in backups within your retention policy.
8 min read