Sauvegarder son installation de Paheko

Par défaut, toutes les données sont stockées dans le fichier data/association.sqlite.

Si vous stockez les fichiers en dehors de la base de données, vous devrez alors aussi sauvegarder le répertoire data/files.

Pour faire au plus simple il est donc conseillé de sauvegarder le répertoire data complet, sauf le répertoire data/cache qui n'a pas d'intérêt à être sauvegardé.

Il est conseillé d'utiliser une commande spéciale de SQLite pour créer une sauvegarde, pour éviter les risques de corruption de données. En effet, si on copie le fichier association.sqlite pendant qu'une requête écrit dedans, il risque d'être copié avec des données incomplètes, et donc corrompues.

Voici donc comment créer une sauvegarde "proprement" :

sqlite3 data/association.sqlite "VACUUM INTO 'data/backup.sqlite';"

Envoyez ensuite ce fichier vers votre serveur de sauvegardes. Il est conseillé d'automatiser cette tâche avec un cron.

Vous pouvez utiliser une commande rsync simple pour cela, par exemple :

@daily cd rsync -a /home/association/paheko \
  && sqlite3 data/association.sqlite "VACUUM INTO 'backup.sqlite';" \
  && rsync -avp data --exclude cache user@backup.machine.tld:/home/backups/association/data

Sauvegarde en temps réel

Il est possible d'utiliser l'outil Litestream pour sauvegarder en temps réel la base de données, ainsi en cas de crash du serveur, vous ne perdrez aucune donnée.

Litestream réplique en temps réel la base de données sur un stockage compatible S3, comme par exemple Garage ou MinIO.

Il suffit de configurer Litestream en suivant le guide de démarrage pour utiliser le fichier data/association.sqlite.