# Duplicati

Duplicati est un logiciel de sauvegarde qui planifie et stocke une copie complète ou incrémentielle des fichiers à conserver. La copie de sauvegarde peut être compressée, chiffrée et stockée localement, en ligne, depuis des services de cloud computing ou vers des serveurs de fichiers distants. Duplicati supporte les différents services de sauvegarde en ligne comme OneDrive, Amazon S3, Rackspace, Cloud Files, Tahoe LAFS et Google Documents, mais aussi tous les serveurs qui prennent en charge SFTP, WebDAV ou FTP.
Duplicati utilise des composants standards tels que rdiff, la compression ZIP avec Deflate, le chiffrement de type AES avec AES Crypt et GnuPG. Cela permet de récupérer des fichiers de sauvegarde, même si Duplicati n'est plus disponible. Distribué sous les termes de la licence publique générale limitée GNU, Duplicati est un logiciel libre. Le code source est disponible à partir du site des développeurs de Duplicati.

## Histoire

Le projet Duplicati, fondé par le Danois Kenneth Skovhede, a commencé en juin 2008 et était destiné initialement à produire une interface utilisateur graphique pour le logiciel Duplicity. Il s’agissait pour l'essentiel de porter le code de Duplicity vers l'exécution du logiciel dans un environnement Windows, mais ce travail a été abandonné en septembre 2008, où a commencé une mise en œuvre complète de Duplicati sous diverses plates-formes. Cette mise en œuvre comprend tous les sous-programmes déjà présents dans Duplicity, comme rdiff, ftp, etc. Cette version initiale de Duplicati est sortie en juin 2009.

## Technologie

Le code source de Duplicati est écrit en C♯ et mis en œuvre par la machine virtuelle CLR, qui lui permet d'être multi-plateforme. Il fonctionne sur les versions 32 bits et 64 bits de Microsoft Windows, macOS et Linux en utilisant soit Microsoft .NET ou Mono.
Duplicati possède à la fois une interface graphique avec un assistant et une version configurée pour une interface en ligne de commande destinée à un environnement de type serveur. Les deux interfaces utilisent le même noyau et ont donc les mêmes fonctionnalités et capacités. La version en ligne de commande est similaire à l'interface du logiciel Duplicity.
Duplicati offre des capacités que l'on retrouve majoritairement dans certains systèmes commerciaux, tels que la vérification à distance des fichiers de sauvegarde, les instantanés de disque et la sauvegarde des fichiers ouverts. Les instantanés de disque sont effectués avec VSS sous Windows et LVM sous Linux.

## Mise en œuvre

Les interfaces en mode GUI ou ligne de commande de Duplicati font toutes les deux appel à un composant principal qui sert de point de liaison pour toutes les opérations supportées. Actuellement, le chiffrement, la compression et le composant de stockage sont considérés comme sous-composants et sont chargés lors de l'exécution du composant principal. Cette architecture rend possible à un développeur tiers d'injecter un sous-composant dans Duplicati ou de modifier Duplicati lui-même sans accéder à la source. Le type de licence est également suffisamment souple pour permettre la redistribution de Duplicati avec un fournisseur de stockage et un logiciel propriétaire. Par exemple, on retrouve le moteur de Duplicati dans certains NAS du fabricant français Ve-hotech. Duplicati est conçu pour être indépendant du fournisseur autant que possible, ce qui signifie plus précisément que tout support de stockage qui prend en charge les commandes courantes GET, PUT, LIST ou DELETE peut travailler avec Duplicati.
Le modèle du logiciel Duplicity, sur lequel se fonde Duplicati, repose largement sur les composants du système d'exploitation, tels que librdiff, TcFTP et d'autres. Depuis, Duplicati est destiné à être Multiplate-forme, et il est peu probable que tous ces composants soient un jour supportés sur toutes les plates-formes. Duplicati ré-implémente donc les composants non portés à leur place. Plus particulièrement, Duplicati met en œuvre et dispose de son propre composant rdiff et AESCrypt qui fonctionne sur tout système d’exploitation qui prend en charge un environnement d'exécution du langage CIL.

## Limitations

L'interface graphique de Duplicati est destinée à être utilisée sur une seule session. Pour cette raison, il est actuellement impossible d'utiliser Duplicati comme un service Windows ou un daemon Linux. Il est possible d'utiliser une solution de contournement en utilisant la version en ligne de commande, mais elle complique le suivi de l'état de la sauvegarde. L'équipe de développement travaille à résoudre ce problème pour les prochaines versions.
Duplicati produit des sauvegardes incrémentielles. De ce fait, un volume endommagé ou manquant peut rendre inutilisable une chaîne de sauvegarde complète.
Duplicati ne stocke que la date de modification du fichier. Les métadonnées, comme les droits et attributs des fichiers, ne sont pas enregistrés. Cette fonction est prévue pour la version 2.0.