Overview
Important: Creating a backup when disk space is insufficient may cause severe issues with your platform. For the same reason, do not create more than one backup before deleting the previous one. Never store backups on the Installer, always delete them as soon as you have downloaded them.
The procedure consists of two parts. The backup full command creates a single archive containing the Installer configuration and files, along with one database dump for each installed component. The restore process runs these steps in the reverse order to fully restore the installation.
All commands are executed from an administrator workstation over SSH against the Installer host. No interactive login to the server is required during the normal workflow when SSH key authentication is used. This also makes it possible to automate and script the entire backup and restore process from a backup server.
Sequence at a glance
Backup
| Step | Action | Result |
|---|---|---|
| 1 | Back up the Installation | mividas-backup.tar (or filename of your choice) |
| 2 | Adjust file permissions | File becomes readable for download |
| 3 | Download the archive | Local copy of the archive |
| 4 | Clean up temporary files on the backed-up server | Nothing is left behind in /tmp on the backed-up server |
Restore
| Step | Action | Result |
|---|---|---|
| 1 | Install a new Mividas Installer on the same version as the source Installer | n/a |
| 2 | Copy the archive file to the new Installer | ex: /tmp/mividas-backup.tar |
| 3 | Run the restore command | Wait for the restore to complete with output: Full restore complete. |
| 4 | Clean up temporary files on the restored server | Nothing is left behind in /tmp on the restored server |
Prerequisites
- An administrator workstation with OpenSSH installed, or equivalent (this guide contains commands using OpenSSH, but can of course be done other ways). Windows 10 and 11 include OpenSSH, but it may need to be enabled under Optional Features.
- An account with sudo privileges on both Mividas Installers.
- Sufficient local disk space, the archive can be very large when including logs, statistics, and sensor data. It’s recommended to have at least 60% of free space to make one backup.
- To restore, you need to deploy the Mividas Installer to the same version as the backup was taken from, at least 1.8.21, and complete the basic configuration in the
onboard_wizard. The system can be installed on a different IP address, since the backup does not retain the original installation’s IP address. - Offline Bundles created for all installed Components (only if offline installation).
For details, see: https://docs.mividas.com/docs/getting-started/mividas-installer/offline-environment/ - SSH key deployed to the remote host, to avoid a login prompt if the script is to be automated (not mandatory):
- MacOS and Linux:
ssh-copy-id admin@<installer-fqdn> - Windows:
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh admin@<installer-fqdn> "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
- MacOS and Linux:
Backup
Create Offline Bundles
Note: This step only applies to offline installations. Software images are not included in the backup. Therefore, for an offline installation, the correct offline bundles must be imported to the Installer that is the target of the restore before proceeding. For detailed steps, see documentation: https://docs.mividas.com/docs/getting-started/mividas-installer/offline-environment/
Log in to the installer web interface https://<installer-fqdn>:8999 and for each product:
- Click Details
- Click Export offline bundles, and wait for the download to complete.
Back up the Installer and all components
The command dumps the Installer database and the .env file, and packs everything into a tar archive on the server.
sudo cli backup full --force --filename /tmp/<filename>.tar
Expected output
=== Backing up installer ===
Dumping database mividas_installer…
Database dump: 276279 bytes
.env file: 317 bytes
Creating archive…
installer.tar: 286720 bytes
=== Backing up 2 component database(s) ===
Dumping core_rooms_1_3-backuptest_co_db.1.wat4fbgqlrc56ymnudeesjwg7 (stack core_rooms_1_3-backuptest_co)...
Dumping core_rooms_1_1-backuptest_po_db.1.m7bs527nj15ppygvbsl028wjz (stack core_rooms_1_1-backuptest_po)...
=== Writing archive /tmp/mividas-backup.tar ===
Full backup created: /tmp/mividas-backup.tar (1730560 bytes, 2 components)
Important: The archive contains the .env file, which holds credentials and secrets. Treat it as sensitive, store it in a protected location, and do not leave copies on shared workstations.
Note: The number of components and their names differ between installations. Read the component count on the last line to confirm that everything you expect was included.
Command reference
sudo cli backup full --help
usage: cli backup full [-h] [--filename FILENAME] [--include_debuglog] [--include_statistics | --no-include_statistics] [--include_sensor_data | --no-include_sensor_data] [--force] [--allow-partial]
options:
-h, --help show this help message and exit
--filename FILENAME Output filename. Use "-" to stream to stdout. Omit and pipe stdout to stream automatically. On a TTY without a filename you are prompted before a local file is written.
--include_debuglog Include debuglog tables (large)
--include_statistics, --no-include_statistics
Include call statistics; --no-include_statistics leaves them out
--include_sensor_data, --no-include_sensor_data
Include sensor data; --no-include_sensor_data leaves it out
--force Skip the interactive "write to local file?" prompt
--allow-partial Write the backup even when a component database could not be dumped
Adjust permissions on the archive
The archive is created by root and therefore cannot be downloaded as admin. Grant read permission before pulling the file.
sudo chmod 644 /tmp/<filename>.tar
Download the archive to the local machine
scp admin@<installer-fqdn>:/tmp/<filename>.tar
Verify that you can find the file locally, in the location where you ran the command above.
Remove the file from the server
sudo rm -f /tmp/<filename>.tar
Restore
Deploy a new Installer
You need to deploy a new Installer on the same version as the source Installer. See documentation for detailed steps: https://docs.mividas.com/docs/getting-started/vm-deployment/
Only for Offline environments
Note: This step only applies to offline installations. Software images are not included in the backup. Therefore, for an offline installation, the correct offline bundles must be imported to the Installer that is the target of the restore before proceeding. For detailed steps, see documentation: https://docs.mividas.com/docs/getting-started/mividas-installer/offline-environment/
- Go to the installer at https://<installer-fqdn>
:8999 and log in. - Add the license key in the initial dialog.
- Go to Settings.
- Select Import offline bundle.
- Select the file created earlier and click Import.
- Repeat for all bundles.
Upload the archive to the target server
scp ./<filename>.tar 'admin@<installer-fqdn>:/tmp/<filename>.tar'
Restore the Installer
sudo cli backup restore-full --yes --force /tmp/<filename>.tar
Deployment takes time. Let the command finish before moving on. At the end of the restore process, you will see:
=== Phase 4/4: final deploy_all ===
Full restore complete.
Clean up temporary files
sudo rm -f /tmp/<filename>.tar
Verify the installation
Log in to each component, including the Installer, to verify that functionality and settings are correct.
One-liners for scripting
If you have uploaded your SSH key and want to create a script that runs the commands without prompting for passwords, use the following commands.
Note: If FIPS has been enabled, it is no longer allowed to run sudo commands without a password, even if the SSH key is uploaded.
Back up the Installer and all components
ssh -n admin@ 'sudo cli backup full --force --filename /tmp/.tar'
Adjust permissions on the archive
ssh -n admin@<installer-fqdn> 'sudo chmod 644 /tmp/<filename>.tar'
Download the archive to the local machine
scp admin@<installer-fqdn>:/tmp/<filename>.tar
Remove the file from the server
ssh -n admin@<installer-fqdn> 'sudo rm -f /tmp/<filename>.tar'
Upload the archive to the target server
scp ./<filename>.tar 'admin@<installer-fqdn>:/tmp/<filename>.tar'
Restore the Installer
ssh -n admin@<installer-fqdn> 'sudo cli backup restore-full --yes --force /tmp/<filename>.tar'
Clean up temporary files
ssh admin@<installer-fqdn> 'sudo rm -f /tmp/<filename>.tar'