--:--:-- VPS 178.105.151.162
Status des services
Services actifs
Services hors ligne
Dernière vérification
VPS
178.105.151.162
Radarr
Gestion automatique des films
Sonarr
Gestion automatique des séries
Prowlarr
Centralisation des indexers
Bazarr
Sous-titres automatiques FR/EN
qBittorrent
Client torrent WebUI
Flaresolverr
Bypass Cloudflare pour Prowlarr
Status en temps réel

Les statuts sont vérifiés toutes les 30 secondes via fetch. En cas d'erreur CORS, le status affiché peut être inexact — vérifier directement via le lien.

Vue d'ensemble

Stack Docker complète pour automatiser la gestion média DayWatch. Chaque service communique via le réseau interne arr et expose son interface web sur un port dédié.

Service Rôle Port Statut
Radarr Gestion des films — indexe, télécharge, renomme 7878 Production
Sonarr Gestion des séries — saisons, épisodes, qualité 8989 Production
Prowlarr Hub d'indexers — synchronise avec Radarr/Sonarr 9696 Production
Bazarr Sous-titres automatiques FR/EN via OpenSubtitles 6767 Production
qBittorrent Client torrent avec interface WebUI 8080 Sans VPN
Flaresolverr Bypass Cloudflare pour indexers protégés 8191 Production
Whisper ASR IA locale — transcription fallback pour Bazarr 9000 Optionnel
Recyclarr Sync TRaSH-Guides custom formats (qualité FR) Cron / Manuel
Architecture
## arr-stack — flux de données Internet │ ▼ Prowlarr ────────────────────────── # Indexers centralisés │ │ ▼ ▼ Radarr Sonarr # Films / Séries │ │ └──────┬───────┘ ▼ qBittorrent :8080 # Téléchargements │ ▼ /mnt/storagebox/media/ # Hetzner Storage Box ├── movies/ └── tv/ │ ▼ DayWatch API :5000 # Consommé par l'app └── /api/movies ← Radarr DB └── /api/series ← Sonarr DB Bazarr ←── Radarr + Sonarr # Sous-titres auto Flaresolverr ←── Prowlarr # Bypass CF
Liens rapides
Quickstart
1
Cloner et configurer
cd /opt/daywatch/arr-stack
cp .env.example .env
nano .env   # Adapter PUID, PGID, TZ, MEDIA_ROOT
2
Créer les dossiers média
mkdir -p /mnt/storagebox/media/{movies,tv}
mkdir -p /mnt/storagebox/media/downloads/{complete/{radarr,sonarr},incomplete}
3
Démarrer la stack
docker compose up -d
docker compose ps     # vérifier que tout est healthy
4
Configurer Prowlarr en premier

https://prowlarr.daywatch.online · Ajouter indexers · Connecter Radarr + Sonarr via API

5
Configurer Radarr & Sonarr

Paramètres → Dossiers racines → /movies (Radarr) / /tv (Sonarr) · Ajouter qBittorrent comme client de téléchargement

Configuration des services

Radarr — Films

ParamètreValeur recommandée
Dossier racine/movies
Profil qualitéHD-1080p (via Recyclarr TRaSH-Guides)
Langue préféréeFrench
Client téléchargementqBittorrent http://qbittorrent:8080
Catégorie torrentradarr

Sonarr — Séries

ParamètreValeur recommandée
Dossier racine/tv
Profil qualitéHD-1080p (via Recyclarr TRaSH-Guides)
Langue préféréeFrench
Client téléchargementqBittorrent http://qbittorrent:8080
Catégorie torrentsonarr

Bazarr — Sous-titres

ParamètreValeur
ProvidersOpenSubtitles.com, Subscene
LanguesFrançais (fr), Anglais (en)
Radarr URLhttp://radarr:7878
Sonarr URLhttp://sonarr:8989
Recyclarr — Profils qualité FR

Recyclarr synchronise automatiquement les TRaSH-Guides custom formats vers Radarr et Sonarr pour une qualité optimale en français.

# Sync manuel (une fois la config YAML prête)
docker compose run --rm recyclarr sync

# Via cron — toutes les nuits à 3h
0 3 * * * cd /opt/daywatch/arr-stack && docker compose run --rm recyclarr sync >> /var/log/recyclarr.log 2>&1
Configuration requise

Renseigner RADARR_API_KEY et SONARR_API_KEY dans le fichier .env avant de lancer Recyclarr.

Intégration DayWatch API

L'API DayWatch consomme directement les bases SQLite de Radarr et Sonarr via les volumes partagés.

Endpoint APISourceDescription
GET /api/moviesRadarr SQLiteFilms téléchargés + métadonnées TMDB
GET /api/seriesSonarr SQLiteSéries + épisodes disponibles
GET /api/movies/:idRadarr + TMDBDétails film avec overview FR
GET /api/series/:idSonarr + TMDBDétails série + saisons
# docker-compose.prod.yml — volumes montés depuis arr-stack
volumes:
  - /mnt/storagebox/media/movies:/movies:ro
  - /mnt/storagebox/media/tv:/tv:ro
VPN Gluetun
Recommandé en production

Faire passer qBittorrent derrière Gluetun pour protéger l'IP du VPS. Sans VPN, l'IP publique est exposée lors des téléchargements.

# Ajouter à docker-compose.yml pour activer Gluetun
gluetun:
  image: qmcgaw/gluetun:latest
  container_name: gluetun
  cap_add: [NET_ADMIN]
  devices: [/dev/net/tun:/dev/net/tun]
  environment:
    - VPN_SERVICE_PROVIDER=mullvad   # ou nordvpn, expressvpn...
    - VPN_TYPE=wireguard
    - WIREGUARD_PRIVATE_KEY=${GLUETUN_WG_KEY}
    - SERVER_COUNTRIES=France
  ports:
    - "8080:8080"   # qBittorrent WebUI via Gluetun

# Modifier qBittorrent pour utiliser le réseau Gluetun
qbittorrent:
  network_mode: service:gluetun   # ← tout le trafic passe par Gluetun
  depends_on: [gluetun]
  # Retirer le block ports: (géré par Gluetun)
Backup automatique
#!/bin/bash
# /opt/daywatch/arr-stack/scripts/backup.sh
# Sauvegarde les config SQLite vers le Storage Box

BACKUP_DIR="/mnt/storagebox/backups/arr-stack/$(date +%Y-%m-%d)"
mkdir -p "$BACKUP_DIR"

for svc in radarr sonarr prowlarr bazarr; do
    tar -czf "$BACKUP_DIR/${svc}.tar.gz" /opt/daywatch/arr-stack/data/${svc}/
    echo "[OK] $svc sauvegardé → $BACKUP_DIR"
done

# Garder seulement les 7 derniers jours
find /mnt/storagebox/backups/arr-stack/ -maxdepth 1 -type d -mtime +7 -exec rm -rf {} \;

# Cron : chaque nuit à 2h
# 0 2 * * * /opt/daywatch/arr-stack/scripts/backup.sh >> /var/log/arr-backup.log 2>&1
Rotation des API keys
Ne jamais exposer les API keys dans Git

Les clés Radarr/Sonarr/Prowlarr sont dans .env (gitignored). Les tourner régulièrement via les UIs de chaque service.

ServiceOù trouver la cléVariable .env
RadarrSettings → General → API KeyRADARR_API_KEY
SonarrSettings → General → API KeySONARR_API_KEY
ProwlarrSettings → General → API KeyPROWLARR_API_KEY
BazarrSettings → General → API KeyBAZARR_API_KEY
Stockage VPS
CheminContenuMontage
/mnt/storagebox/media/moviesFilms téléchargésHetzner Storage Box BX31
/mnt/storagebox/media/tvSéries téléchargéesHetzner Storage Box BX31
/mnt/storagebox/media/downloadsEn cours + complétésHetzner Storage Box BX31
/opt/daywatch/arr-stack/dataConfig SQLite servicesVolume local VPS
# Vérifier le montage Storage Box
df -h | grep storagebox
mount | grep storagebox

# Si non monté : démarrer le service
systemctl start storagebox
systemctl status storagebox
Checklist mise en production
  • Stack démarrée et tous les services healthy
  • Storage Box montée sur /mnt/storagebox
  • Prowlarr : au moins 3 indexers configurés
  • Radarr : connecté à Prowlarr + qBittorrent
  • Sonarr : connecté à Prowlarr + qBittorrent
  • Bazarr : clés OpenSubtitles renseignées
  • Recyclarr : custom formats FR synchronisés
  • DayWatch API : teste /api/movies retourne des données
  • Backup cron configuré (2h)
  • .env hors Git (vérifié avec git status)
  • API keys tournées et copiées dans .env
  • VPN Gluetun activé pour qBittorrent (optionnel mais recommandé)
Dépannage

Service ne démarre pas

docker compose logs radarr --tail 50
docker compose ps
docker inspect radarr | jq '.[0].State'

Storage Box non montée

systemctl status storagebox
journalctl -u storagebox -n 30
# Remonter manuellement
systemctl restart storagebox

API DayWatch — films vides

# Vérifier que le volume est bien monté dans le container
docker exec daywatch-api ls /movies
# Vérifier la connexion Radarr
curl https://radarr.daywatch.online/api/v3/movie?apikey=VOTRE_CLE | jq length

Redémarrage propre de la stack

cd /opt/daywatch/arr-stack
docker compose down
docker compose up -d
docker compose ps