Files
wiki/Catalogue-Self-Hosted/apps/app-vykar.md
T
2026-06-09 18:40:21 +02:00

7.3 KiB
Raw Blame History


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
GitHub borgbase/vykar
License MIT
Langage Rust
Étoiles GitHub 633
Dernière MAJ 2026-06-07
Catégorie [[cat-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 :

# 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) :
    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

Pages Liées