Initial vault setup
This commit is contained in:
@@ -0,0 +1,148 @@
|
||||
---
|
||||
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
|
||||
Reference in New Issue
Block a user