Backups of a site are an uncompressed tar file. Uncompressed because most of the files in it are compressed. All files in the tar file need to be owned by root:root, and the backup file should be kept mode 400 as it contains eg, passwords.

tarball contents

  • $vcs.dump - some kind of serialization of the vcs repository (for git, git.dump is a git-bundle)
  • other files can be included in the tarball using the same filename as is used in the home directory. For example as source/.ikiwiki/indexdb and source/.ikiwiki/userdb.
  • the contents of the rootconfig directory in the tarball are installed into /etc/ikiwiki-hosting/config/$user

This format allows the backup to be created by serializing the vcs and then just tarring up selected files from the home directory of the site, along with any files from /etc/ikiwiki-hosting/config/$user.

rsyncability

git dumps are highly rsyncable, and since the tarball is uncompressed, as a whole it is quite rsyncable too. Real world numbers: For a 15 mb backup, rsync reported a speedup of 166, and needed to send only 68 kb.