Files
2026-06-09 18:40:21 +02:00

149 lines
7.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: Vykar
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, backups, chiffrement, deduplication, rust, mit, borgbase]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=Backups, https://github.com/borgbase/vykar]
---
# 💾 Vykar
> **La relève de Borg par ses propres créateurs** : un moteur de backup chiffré et dédupliqué écrit en Rust, avec un format de repository moderne (ZST-compressé) pensé pour le cloud.
## 📋 Informations Générales
| Champ | Valeur |
| :--- | :--- |
| **Site web** | [borgbase.com](https://www.borgbase.com/) |
| **GitHub** | [borgbase/vykar](https://github.com/borgbase/vykar) |
| **License** | MIT |
| **Langage** | Rust |
| **Étoiles GitHub** | 633 ⭐ |
| **Dernière MAJ** | 2026-06-07 |
| **Catégorie** | [[cat-backups|Backups]] |
## 📝 Description
**Vykar** est un **logiciel de backup open source** maintenu par l'équipe derrière **BorgBase** — le service commercial qui héberge des dépôts Borg depuis 2015. Forts de plus de 10 ans à faire tourner Borg en production, ils ont décidé d'en réécrire un nouveau, en **Rust**, en gardant l'ADN (chiffrement + déduplication + compression) mais en modernisant ce qui les gênait dans Borg.
Concrètement, Vykar propose :
-**Chiffrement AES-256-GCM** côté client (avant upload) avec dérivation Argon2id
-**Déduplication par chunks** (similaire à Borg / Restic) — seuls les blocs nouveaux sont envoyés
-**Compression Zstandard** configurable (zstd) au lieu de zlib/lz4
-**Format de repository moderne** : pas de segments / pas de « repacker », tout est append-only → moins d'IO et de compaction
-**Backends distants** : local, S3, SFTP, S3-compatible (Backblaze B2, Wasabi, MinIO)
-**Snapshots incrémentaux** avec horodatage
-**Mount FUSE** : monter un snapshot comme un système de fichiers pour explorer / récupérer un fichier
-**CLI simple** : `vykar init`, `vykar backup`, `vykar list`, `vykar restore`
-**Pas de daemon** : un seul binaire statique Rust, à installer dans n'importe quel conteneur
-**Concurrent-safe** : plusieurs clients peuvent écrire dans le même repository
**Public cible** : utilisateurs avancés de [[app-borg]] qui veulent **un outil moderne sans la dette technique** (pas de compactage à gérer, logs plus propres, codebase Rust auditable), tout en gardant les concepts familiers.
## 🚀 Installation
### Docker Compose (binaire dans un conteneur éphémère)
Vykar n'a pas d'image « serveur » — c'est un **client** que vous exécutez via un cron dans un conteneur. Voici le pattern classique :
```yaml
# docker-compose.yml
version: '3.8'
services:
vykar:
image: ghcr.io/borgbase/vykar:latest
container_name: vykar
restart: unless-stopped
entrypoint: ["sh", "-c", "while true; do vykar backup default; sleep 86400; done"]
volumes:
- ./data:/data:ro # Données à sauvegarder
- vykar-config:/root/.config/vykar
- vykar-cache:/root/.cache/vykar
environment:
- TZ=Europe/Paris
- VYKAR_REPOSITORY=s3:https://s3.eu-central-003.backblazeb2.com/mybucket
- VYKAR_PASSPHRASE_FILE=/run/secrets/vykar_passphrase
secrets:
- vykar_passphrase
labels:
- "traefik.enable=false" # Pas d'UI : cron interne
secrets:
vykar_passphrase:
file: ./vykar_passphrase.txt
volumes:
vykar-config:
vykar-cache:
```
> ️ Adaptez le cron : `sleep 86400` = une fois par jour. Pour un cron plus fin utilisez un `cron` externe (host) qui appelle `docker exec vykar vykar backup default`.
## ⚙️ Configuration Initiale
1. **Préparer le backend distant** : créer un bucket S3 / B2 / un user SFTP et noter l'URL (`s3:https://...` ou `sftp:user@host:/path`).
2. **Initialiser le repository** (une seule fois) :
```bash
docker compose run --rm vykar vykar init
```
Il vous demande l'URL du repo et une passphrase — **notez-la dans un gestionnaire de mots de passe** (c'est le seul moyen de restaurer).
3. **Choisir les sources** : monter en `ro` les volumes à sauvegarder (`./data`, `/var/lib/docker/volumes/...`).
4. **Tester un premier backup** : `docker compose run --rm vykar vykar backup default` puis `vykar list` pour vérifier.
5. **Programmer** : utiliser le sleep-loop du compose ci-dessus, ou un cron host `0 3 * * * docker exec vykar vykar backup default`.
6. **Tester la restauration** sur un fichier non critique avant de considérer l'installation comme « production ».
## 🔄 Alternatives
### Open Source
- [[app-borg]] — Le « père » conceptuel de Vykar, en Python/C, plus mature mais plus ancien.
- [[app-restic]] — Le concurrent direct le plus populaire, en Go, écosystème énorme.
- [[app-kopia]] — UI moderne + multi-plateforme, en Go.
- **Duplicati** — UI web complète, cloud-first, mais plus lent.
- **BorgBase (commercial)** — Le service des auteurs de Vykar, si vous ne voulez pas gérer l'infra.
### Comparaison Vykar vs autres
| Critère | Vykar | Borg | Restic | Kopia |
| :--- | :--- | :--- | :--- | :--- |
| Langage | Rust | Python/C | Go | Go |
| Format repo | Append-only | Segments (compact) | Pack files | Pack files |
| Compression | zstd | zlib/lz4/zstd | none | zstd |
| Chiffrement | AES-256-GCM | AES-256-CTR | AES-256-CTR (chunks) | AES-256-GCM |
| Cloud-native | ✅ | ✅ (via fuse) | ✅ | ✅ |
| Mount FUSE | ✅ | ✅ | ✅ | ✅ |
| UI | ❌ | ❌ (sauf Borg UI) | ❌ (sauf Backrest) | ✅ |
| Maturité | Nouveau (2024+) | Éprouvé | Éprouvé | Éprouvé |
**Verdict** : Vykar est **l'alternative moderne** à Borg pour qui veut du code Rust auditable et un format append-only simple. Pour un écosystème mature et une UI, partez sur [[app-restic]] + [[app-backrest]] ou [[app-kopia]].
### Propriétaires
- **BorgBase** — Service commercial des auteurs, ~5 €/mois pour 100 Go.
- **Arq Backup** — macOS/Windows, propriétaire, hors sujet.
- **Backblaze B2 + Arq** — combo payant populaire.
## 🔐 Sécurité
- **Règle 3-2-1** : Vykar → S3/B2 (1 copie hors site) + on peut ajouter une seconde destination (local + cloud) dans la même commande `backup`.
- **Chiffrement** : tout est chiffré **côté client** (AES-256-GCM). Le fournisseur S3 ne voit jamais vos données en clair. La passphrase est la clé unique de restauration — **perdue = données irrécupérables**, stockez-la dans un KeePass / Bitwarden / Vaultwarden.
- **Clé hors-ligne** : la passphrase doit aussi exister sur **papier ou clé USB chiffrée** stockée ailleurs, pour les scénarios où votre gestionnaire de mots de passe est injoignable (cf. [[securisation-home-lab]]).
- **Test de restauration trimestriel** : lancez `vykar restore` sur un dataset test, mesurez le temps, vérifiez l'intégrité. Un backup non testé n'est pas un backup — voir [[strategie-backup-321]].
## 📚 Ressources
- [GitHub borgbase/vykar](https://github.com/borgbase/vykar)
- [BorgBase (service commercial)](https://www.borgbase.com/)
- [Documentation officielle](https://github.com/borgbase/vykar/blob/main/README.md)
## Pages Liées
- [[cat-backups]] — Catégorie Backups
- [[strategie-backup-321]] — Règle 3-2-1
- [[app-restic]] — Concurrent direct
- [[app-borg]] — Le « père » de Vykar
- [[app-kopia]] — Alternative moderne avec UI
- [[app-portainer]] — Gestion conteneurs
- [[securisation-home-lab]] — Bonnes pratiques