Chronicler
Auto-hébergement

Sauvegardes et restauration

Sauvegardes planifiées, copie externe, et comment récupérer vos données.

Vous êtes seul à détenir ces données. Mettez les sauvegardes en place dès le premier jour.

Ce qui est sauvegardé

Admin → Sauvegardes sauvegarde la base de données : comptes, collections, conversations, métadonnées des documents et index de recherche. Les sauvegardes sont des exports PostgreSQL standards nommés chronicler-AAAAMMJJ-HHMMSS.dump, stockés dans le volume backend_uploads.

Les fichiers importés d'origine vivent dans le même volume mais ne sont pas dans l'export. Un plan de reprise complet, c'est : ces sauvegardes de base, plus une copie du volume backend_uploads, plus votre .env.

Sauvegardes planifiées

Admin → Sauvegardes → Sauvegardes automatiques :

RéglageOptionsRemarques
FréquenceDésactivée, Quotidienne, HebdomadaireQuotidienne convient à la plupart.
Conserver1 à 365Les plus anciennes sont supprimées automatiquement au-delà du nombre.
Dossier externeUn chemin dans le conteneurFacultatif, et c'est le plus utile. Voir ci-dessous.

Après enregistrement, le panneau affiche la dernière exécution, la prochaine, et l'erreur du dernier échec s'il y en a eu un. Les changements s'appliquent sans redémarrage.

La copie externe

Une sauvegarde rangée dans le même volume Docker que les données ne survit pas à la panne qui vous inquiète vraiment. Pour en garder une copie ailleurs, montez un dossier de la machine hôte — un partage NAS, un disque externe — dans le conteneur backend.

Ajouter le montage au fichier compose

Sous le service backend :

docker-compose.yml
    volumes:
      - backend_uploads:/app/uploads
      - /mnt/nas/chronicler-backups:/mnt/backups

Sous Windows, la partie gauche est un chemin hôte comme D:\backups.

Recréer le conteneur

Terminal
docker compose up -d

Renseigner le dossier dans la console

Saisissez /mnt/backups — le chemin dans le conteneur — comme dossier externe, puis enregistrez. Chronicler teste l'écriture au moment de l'enregistrement et refuse un dossier inaccessible : une faute de frappe échoue tout de suite plutôt que silencieusement pendant des mois.

Le fichier compose écrit par l'installation guidée ne contient pas ce montage. Vous devez l'ajouter à la main, et le remettre après une mise à jour guidée qui remplace le fichier. Conserver votre propre copie du fichier compose évite cela.

Sauvegardes manuelles

Sauvegarder maintenant en crée une immédiatement — à faire avant une mise à jour ou toute manipulation risquée.

Télécharger enregistre un export sur le poste depuis lequel vous utilisez l'application. C'est la copie externe la plus simple qui soit : téléchargez-en une de temps en temps et rangez-la en lieu sûr.

En ligne de commande :

Terminal
docker exec chronicler-postgres pg_dump -U chronicler -Fc chronicler_app > chronicler-backup.dump

Restaurer

Restaurer remplace toute la base de données. Tout ce qui a été créé depuis cette sauvegarde disparaît — comptes, conversations, documents. C'est irréversible.

Sauvegarder d'abord l'état actuel

Même une base abîmée vaut mieux que pas de recours. Sauvegarder maintenant.

Prévenir les utilisateurs

Il n'y a pas de mode maintenance. Toute personne utilisant l'application pendant une restauration verra des erreurs, et son travail peut être perdu.

Restaurer

Admin → Sauvegardes, trouvez l'archive, choisissez Restaurer et confirmez. L'action est inscrite au journal d'audit avec son auteur.

Vérifier, puis réindexer

Connectez-vous, ouvrez quelques documents, lancez une recherche. Si les résultats semblent faux, lancez Admin → Modèle → Tout réindexer : l'index d'un export ancien peut être en retard sur les documents.

En ligne de commande :

Terminal
docker exec -i chronicler-postgres pg_restore -U chronicler -d chronicler_app \
  --clean --if-exists --no-owner < chronicler-backup.dump

Déménager sur une autre machine

Sauvegarder et copier

Prenez une sauvegarde fraîche et téléchargez-la. Copiez aussi votre docker-compose.yml et votre .env : sans ce .env, l'ancien volume de base est illisible.

Installer sur la nouvelle machine

Suivez l'installation manuelle, mais utilisez le .env existant au lieu de générer un nouveau mot de passe.

Restaurer, puis déplacer la licence

Restaurez l'export, puis libérez la licence sur l'ancienne installation et activez-la sur la nouvelle (Licence).

Copier les fichiers importés

L'export ne contient pas le contenu des fichiers. Transférez le volume backend_uploads :

Terminal
# sur l'ancienne machine
docker run --rm -v chronicler_backend_uploads:/data -v "$PWD":/out alpine \
  tar czf /out/uploads.tgz -C /data .

# sur la nouvelle
docker run --rm -v chronicler_backend_uploads:/data -v "$PWD":/in alpine \
  tar xzf /in/uploads.tgz -C /data

Testez-les

Une sauvegarde non testée n'est pas une sauvegarde. Une fois, sur une machine de test, restaurez-en une et connectez-vous. Dix minutes maintenant, ou une mauvaise découverte plus tard.