Backup GraphGrid
Backups are a critical consideration with any software platform. In this document, we will walk through one way of backing up GraphGrid, and go over some general best practices.
General Backup Procedure
The easiest way to create a reliable backup of GraphGrid is to stop all
services, backup the data directory and GraphGrid home directory, and then start everything back up.
By default, the data directory is within the GraphGrid home directory (which contains docker-compose.yml
),
but some installations may store data in a different location. Check the contents of .env
which should
be in the same directory as docker-compose.yml
, and look at the value of GRAPHGRID_DATA
. That
environment variable is used as the base of all Docker bind mounts.
To stop GraphGrid, run ./bin/graphgrid stop
. Next, use cp
or rsync
to copy the
contents of both the data directory and home directory to your backup location. Backing up to another
server or offsite location is recommended. Offline backups are even better for protecting against ransomware attacks.
When running multiple services with Docker bind mounts, file permissions are an important
consideration. When using cp
or rsync
, be sure to use the -a
flags to preserve permissions and file ownership. Remember to think about permissions if you're
compressing your backups!
Restore
When restoring from a backup, always make another copy of the backup to start with. That way if
something goes wrong, you'll still have a clean backup to work with. When you have the data and home
directories in their final destinations, make sure GRAPHGRID_DATA
in .env
has an appropriate
absolute or relative file path to the data directory.
Assuming all file permissions were preserved, you should be able to start GraphGrid up with
./bin/graphgrid start
. If you're on a new server, you will have to go through the installation process
to load in all the necessary Docker images.
Always test your backups! Never assume an untested backup procedure will work.