Each backup snapshot is stored in a timestamped directory (e.g., YYYYMMDDTHHMMSS
) under the backup target path (e.g., /data/backup/data
). Snapshots include full exports of key data stores. Git repositories, Pages, and other components are stored using hard links to optimize storage and enable efficient point-in-time restores.
Note
If you archive backup snapshots, you must preserve symbolic links. Dereferencing or excluding symbolic links—or storing snapshots on a filesystem that doesn’t support them—can cause restore failures.
The current
symlink always points to the most recent successful snapshot directory.
Each snapshot directory contains files and folders for your instance’s configuration, data stores, and operational metadata. Below is a typical structure.
settings.json # Main appliance settings
manage-password # Management console password hash
uuid # Appliance UUID
version # GHES version at backup time
strategy # Backup strategy used (e.g., rsync, cluster)
cluster.conf # Cluster configuration (if applicable)
mysql.sql.gz # Logical database dump (default) OR
xtrabackup_checkpoints # Binary backup metadata (if binary backups used)
xtrabackup-export.log # Log snippet from binary backup
mysql-binary-backup-sentinel # Indicates binary backup type
# May include other files related to logical or binary MySQL backups
redis.rdb # Redis database dump
audit-log/ # Audit log indices (uses hard links)
elasticsearch/ # Search indices (if not skipped, uses hard links)
repositories/ # Git repositories (uses hard links)
pages/ # Pages content (uses hard links)
storage/ # Alambic-managed storage: avatars, attachments, etc. (uses hard links)
actions/ # Actions blob storage (uses hard links)
mssql/ # MS SQL Server backups (.bak, .diff, .log) (uses hard links)
minio/ # MinIO object storage (if Actions or Packages enabled, uses hard links)
authorized-keys.json # SSH keys authorized for administrative access
-secrets.tar # Tarball of various exported instance secrets
saml-keys.tar # SAML IdP keys (if applicable)
ssh-host-keys.tar # SSH host keys
ssl-ca-certificates.tar # Custom CA certificates (if applicable)
# Includes other internal secrets and keys necessary for instance operation.
git-hooks/ # Custom Git hooks (uses hard links)
hookshot/ # Webhook delivery data (uses hard links)
enterprise.ghl # License file (often restored separately)
live-upgrade/ # Data for live upgrades or migrations (uses hard links)
benchmarks/ # Performance logs for backup steps
The root backup directory includes all snapshot folders and metadata used for incremental backup tracking and pruning:
YYYYMMDDTHHMMSS/ # Snapshot directory (one per backup)
... # Other snapshot directories
current # Symlink to the most recent successful snapshot
inc_full_backup # Tracks base for MySQL incremental backups
inc_snapshot_data # Tracks incremental MySQL snapshots
prune_* # Temporary directories marked for deletion
inc_previous_* # Renamed snapshot directories during pruning cycle