Linkr
Accueil Ressources Outils Documentation Blog Démo
EN
  • Qu'est-ce que Linkr ?
  • Modes de déploiement
  • Démarrage rapide
  • Installation locale
  • Avec Docker
  • Installation manuelle
  • Client-only
  • Installer LibreChat
  • Votre premier projet
  • Linkr dans un EDS
  • Espaces de travail et projets
  • Le pipeline de données
  • Entités et partage
  • Versioning et collaboration
  • Vue d'ensemble
  • Projets
  • Wiki
  • Plugins
  • Membres et rôles
  • Paramètres
  • Schémas
  • Obtenir et explorer
  • Mapping
  • Bases de données
  • Sous-bases dérivées
  • Qualité des données
  • Catalogue de données
  • Construire et publier
  • Anonymiser
  • Collections de scripts SQL
  • Pipelines ETL
  • Construire et exécuter
  • Générer les scripts
  • Présentation
  • Projets d'alignement
  • Vue d'ensemble
  • Concepts cibles
  • Éditeur d'alignements
  • Suggestions
  • Agent IA
  • Évaluation
  • Export
  • Vue d'ensemble
  • Bases de données
  • Concepts
  • Cohortes
  • Construire
  • Résultats, SQL et rapport
  • Données individuelles
  • Pipeline
  • Jeux de données
  • IDE
  • Applications web
  • Versioning
  • Vue d'ensemble
  • Onglets et widgets
  • Widgets intégrés
  • Widgets d'analyse
  • Cartes de contrôle (SPC)
  • Questionnaires et eCRF
  • Code R et Python
  • Filtres, paramètres et export
  • Vue d'ensemble
  • Mode présentation
  • Exporter un rapport
  • Agents
  • Serveur MCP
  • Skills
  • Import et export
  • Versioning git
  • Catalogue communautaire
  • Publier du contenu
  • Installation en production
  • Configuration
  • Connecteurs de bases de données
  • Authentification et permissions
  • Fichiers sur le serveur
  • Sauvegarde et restauration
  • Contribuer au code
  • Glossaire
  • Raccourcis clavier
  • Notes de version
Documentation Administration Sauvegarde et restauration

Sauvegarde et restauration

Ce qu'il faut réellement copier pour pouvoir remonter une instance, comment le faire proprement, et comment vérifier que la sauvegarde vaut quelque chose.

En résumé

Une sauvegarde complète, c’est d’abord le dossier de données — y compris le fichier secret.key, la clé de chiffrement sans laquelle les mots de passe de bases et les jetons git restaurés seraient illisibles. S’y ajoute ce qui vit ailleurs : la clé secrète de connexion, la clé de chiffrement si vous la fournissez vous-même, et la base PostgreSQL si vous en utilisez une.

Client Non disponible en mode client-only — cette fonctionnalité nécessite un backend. Backend Disponible avec le backend FastAPI.

Ce qu’il faut sauvegarder

Le dossier de données contient presque tout ; trois choses peuvent vivre en dehors, selon votre configuration.

À sauvegarderReconstructibleTemporaire
LINKR_DATA_DIR
linkr.db
La base applicative (SQLite, par défaut) : comptes, projets, métadonnées.À sauvegarder
secret.key
La clé de chiffrement des secrets, générée au premier usage — sauf si LINKR_ENCRYPTION_KEY est définie.À sauvegarder
_files/
Les fichiers, rangés par empreinte : jeux de données, pièces jointes, imports.À sauvegarder
_databases/
Les bases DuckDB que Linkr a créées (depuis un schéma, par dérivation d'une cohorte).À sauvegarder
projects/<uid>/
Un dossier de travail par projet : scripts, jeux de données, spécifications d'environnement.À sauvegarder
.cache/envs/
Les environnements R et Python matérialisés, reconstruits depuis leur spécification.Reconstructible
workspaces/, mapping-projects/…
Les copies de travail git des entités liées à un dépôt.À sauvegarder
audit/
Le journal d'accès : un fichier par jour, compacté par mois.À sauvegarder
.cache/
Les paquets R et Python partagés par tous les projets.Reconstructible
_cache/, _global_table_cache/
Des résultats de requêtes mis en cache.Reconstructible
_duckdb_ext/
Les extensions DuckDB, retéléchargées au besoin — ce qui suppose un accès réseau.Reconstructible
_tmp/
Les envois en cours, nettoyés automatiquement.Temporaire

Hors du dossier

LINKR_SECRET_KEYDans votre coffre à secrets. La perdre déconnecte tout le monde, rien de plus.À sauvegarder
LINKR_ENCRYPTION_KEYSeulement si vous la définissez : elle remplace alors secret.key, et ne vit plus dans le dossier.À sauvegarder
PostgreSQLSi LINKR_DATABASE_URL la désigne, linkr.db n'existe pas : la base se sauvegarde avec ses propres outils.À sauvegarder
Ce qu'une sauvegarde doit emporter : les entrées « À sauvegarder » du dossier de données, puis, en dessous, ce qui vit hors du dossier. L'interrupteur grise ce qu'on peut laisser de côté.

Une sauvegarde sans la clé de chiffrement est une sauvegarde incomplète

Restaurez la base applicative sans secret.key — ou sans la LINKR_ENCRYPTION_KEY que vous fournissiez — et l’instance remontera, vos utilisateurs se reconnecteront, mais chaque mot de passe de base mémorisé, chaque jeton git et chaque secret de connexion sera illisible, sans erreur visible, et devra être ressaisi à la main. La clé secrète de connexion, elle, se remplace sans dommage : au pire, tout le monde se reconnecte. Voir Configuration.

Votre sauvegarde contient donc une clé

Par défaut, l’archive du dossier réunit les secrets chiffrés et la clé qui les ouvre. Protégez-la comme les secrets eux-mêmes : accès restreint, archive chiffrée. Si votre politique l’interdit, fournissez la clé par LINKR_ENCRYPTION_KEY et sauvegardez-la séparément — la base seule, alors, ne déchiffre plus rien.

Ce que vous pouvez exclure

Les caches sont reconstructibles. Les exclure allège considérablement la sauvegarde ; au pire, la première construction d’environnement après restauration sera plus longue. Seule réserve : sur une instance sans accès réseau, gardez _duckdb_ext/, que le serveur ne pourrait pas retélécharger.

Sauvegarder proprement

La difficulté n’est pas de copier, c’est de copier un état cohérent : une copie prise pendant qu’une écriture est en cours peut contenir une base à demi écrite.

1

Arrêtez l’instance, ou prenez un instantané

Le plus sûr est d’arrêter les conteneurs le temps de la copie. À défaut, un instantané de système de fichiers ou de volume donne un point cohérent sans interruption.

2

Copiez le dossier

Avec vos outils habituels, en préservant les droits. C’est là que le choix d’un dossier monté plutôt que d’un volume Docker nommé paie : le dossier se sauvegarde comme n’importe quel autre.

3

Notez la version

Conservez à côté de la sauvegarde le numéro de version des images utilisées. Une sauvegarde ne se restaure pas sur une version plus ancienne — voir ci-dessous.

docker compose -f docker-compose.hub.yml down
tar czf linkr-$(date +%F).tar.gz -C /srv linkr
docker compose -f docker-compose.hub.yml up -d

Restaurer

Remettez le dossier en place — secret.key compris —, fournissez les mêmes variables d’environnement, et démarrez avec une version au moins égale à celle de la sauvegarde. Les migrations nécessaires s’appliquent toutes seules au démarrage.

On ne restaure pas vers une version plus ancienne

Le schéma de la base avance avec les mises à jour, et ces migrations ne se rejouent pas à l’envers. Une sauvegarde prise en version récente ne remonte pas sur une version antérieure : c’est pourquoi il faut noter la version au moment de la sauvegarde.

Vérifiez une restauration au moins une fois

Une sauvegarde qui n’a jamais été restaurée est une hypothèse, pas une garantie. Remontez-la une fois sur une machine de test : connexion, ouverture d’un projet, affichage d’un tableau de bord, et surtout connexion à une base de données — c’est ce dernier point qui révèle une clé de chiffrement absente.

Sauvegarder autrement : git

Le dossier de données protège l’instance. Le versioning git protège le travail, et les deux sont complémentaires.

Une entité liée à un dépôt distant a, par construction, une copie hors de votre serveur : définitions de cohortes, scripts, tableaux de bord. Si l’instance disparaît, ce travail se récupère en clonant les dépôts, même si la sauvegarde manque.

Mais git ne sauvegarde pas les données

Les fichiers de données sont exclus du versioning, sauf marquage explicite. Un dépôt git n’est donc pas une sauvegarde de vos jeux de données — voir Versioning git.

Les comptes, à part

L’onglet Paramètres › Sauvegarde & sync exporte et réimporte les organisations, utilisateurs et rôles, en archive ou vers un dépôt git. C’est utile pour transporter une configuration d’une instance à une autre, ou pour garder trace de l’évolution des rôles.

Les mots de passe ne sont jamais exportés

Un utilisateur importé sans mot de passe arrive désactivé et devra en recevoir un avant de pouvoir se connecter. Cet export ne remplace donc pas une sauvegarde : il transporte une configuration, pas des comptes utilisables en l’état.

Ce que la sauvegarde ne couvre pas

  • Les bases de données externes. Une base PostgreSQL ou Oracle interrogée par Linkr reste sauvegardée par son propre exploitant : Linkr n’en détient que l’adresse.
  • Les fichiers désignés par leur chemin. Un entrepôt posé sur le serveur et désigné sans copie n’est pas dans le dossier de données, pas plus qu’une base que Linkr a créée dans un dossier du serveur plutôt que dans son propre dossier — l’un et l’autre relèvent de la sauvegarde du serveur. Voir Fichiers sur le serveur.
  • Une installation en mode navigateur. Les données vivent dans le navigateur de chaque personne, hors de portée d’un administrateur. Seul l’export manuel d’un projet les met à l’abri.

Pour aller plus loin

  • Configuration — le dossier de données, dossier par dossier.
  • Installation en production — le volume à monter, et la mise à jour.
  • Versioning git — l’autre filet de sécurité.
  • Import et export — sortir une entité d’une instance.
PrécédentFichiers sur le serveurSuivantContribuer au code

Produit

  • Accueil
  • Démo

Ressources

  • Documentation
  • Ressources
  • Outils
  • Blog

Communauté

  • Code source Framagit
  • Code source Github

À propos

  • InterHop.org
  • Contact

2021–2026 InterHop — CC BY-NC-SA 4.0 (site) · AGPLv3 (logiciel)