Skip to main content
Version: 2.0

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!


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.