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

108 lines
4.7 KiB
Markdown

---
title: SoulSync
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, arr, sync, multi-instance, sonarr, radarr]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=*arr, https://github.com/SoulSync/SoulSync]
---
# 🎬 SoulSync
> Synchroniseur bidirectionnel intelligent entre instances Sonarr/Radarr : réplique les médias, profils, indexeurs et configurations entre serveurs (ex. 4K ↔ 1080p, domestique ↔ seedbox).
## 📋 Informations Générales
| Attribut | Valeur |
|----------|--------|
| **Nom** | SoulSync |
| **Slug** | soulsync |
| **Description** | Outil de synchronisation entre instances Sonarr/Radarr, gère la réplication de bibliothèque, de profils et de configuration selon des règles |
| **Site officiel** | https://soulsync.netlify.app |
| **Repository** | https://github.com/SoulSync/SoulSync |
| **Stars** | 1 859 ⭐ |
| **Licence** | MIT |
| **Langage principal** | Python |
| **Catégorie** | *arr (utilitaires) |
| **Tags** | [catalogue, arr, sync, multi-instance, sonarr, radarr] |
## 📝 Description
**SoulSync** répond à un cas d'usage très spécifique mais fréquent chez les power-users : gérer **plusieurs instances Sonarr/Radarr** sans devoir tout maintenir à la main. Le setup typique :
- Instance **4K** (stockage NAS costaud, profils qualité UHD, client torrent VPN résidentiel)
- Instance **1080p** (seedbox externe, VPN commercial, profils efficients en espace)
- Instance **back-up** ou **partage famille**
Le problème : ajouter une série sur l'instance 4K, il faut la **répliquer** sur 1080p avec les bons profils. Modifier un profil, le pousser. Ajouter un indexeur, le pousser. Changer un tag, le pousser. **À la main, c'est l'enfer**.
SoulSync offre un système de **règles de sync** avec :
- **Mapping 1:1** : chaque entité d'une source mappe vers une cible.
- **Filtres** : ne synchroniser que les séries avec tel tag, tel profil qualité, tel genre.
- **Bidirectionnel ou unidirectionnel** : la source pousse, ou les deux convergent.
- **Conflits** : règles de résolution (last-write-wins, source prioritaire, manuelle).
- **Hooks de fin** : webhook, notif Discord quand un sync modifie X médias.
- **Dry-run** : **toujours**, prévisualiser les changements avant application.
**Différenciation** : c'est plus ciblé que Notifiarr (qui est un hub d'automation généraliste) et plus simple que de scripter en bash sur l'API Sonarr/Radarr.
## 🚀 Installation
### Via Docker (recommandé)
```yaml
# docker-compose.yml
services:
soulsync:
image: ghcr.io/soulsync/soulsync:latest
container_name: soulsync
restart: unless-stopped
environment:
- TZ=Europe/Paris
- APP_URL=https://soulsync.example.com
volumes:
- ./config:/app/config
ports:
- "6789:6789"
```
### Installation manuelle
Python 3.11+. `git clone`, `pip install -r requirements.txt`, configurer `.env`, `python app.py`.
## ⚙️ Configuration
- **Connexion source et cible** : URL + API key de chaque instance Sonarr/Radarr à synchroniser.
- **Profils de sync** : par catégorie (séries, films, profils qualité, indexeurs, custom formats), activer/désactiver.
- **Filtres** : tags, types, dates d'ajout, watched status.
- **Mapping des chemins** : `/data/tv/instance-A``/mnt/seedbox/tv`, important pour la cohérence hardlinks.
- **Schedule** : exécution manuelle, ou cron (toutes les 6h, quotidien, hebdo).
- **Dry-run par défaut** : **toujours** coché, désactiver au cas par cas.
## 🔗 Alternatives
- **Notifiarr** — automation générale *arr, plus large, plus complexe à configurer.
- **Recyclarr** — sync Git-based de profils TRaSH, pas d'items (séries/films).
- **Scripts custom Python/bash** — flexibles, mais aucune UI ni logs centralisés.
- **API Sonarr/Radarr manuelle** — faisable, mais chronophage et source d'erreurs.
## 🔒 Sécurité
- **API keys multiples** : SoulSync a autant d'API keys qu'il gère d'instances, **chiffrer** `./config` au repos.
- **HTTPS + SSO** : obligatoire, l'UI permet de déclencher des syncs manuels.
- **Mode `dry-run`** : tester sur quelques jours, examiner le diff, **puis** activer en prod.
- **Logs détaillés** : conserver, permettent de comprendre pourquoi telle série a été supprimée de l'instance cible.
- **Hardlinks** : si les chemins source/cible sont sur le même FS (Btrfs/ZFS), SoulSync peut créer des hardlinks au lieu de re-télécharger, gain de place énorme.
## 📚 Ressources
- Repository : https://github.com/SoulSync/SoulSync
- Wiki *arr : https://wiki.servarr.com
## 🔗 Pages Liées
- [[cat-arr]]
- [[app-sonarr]]
- [[app-radarr]]
- [[app-prowlarr]]
- [[app-profilarr]]
- [[app-notifiarr]]
- [[app-recyclarr]]
- [[app-traefik]]
- [[app-authentik]]
- [[securisation-home-lab]]
- [[recettes-docker-compose]]