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

115 lines
6.2 KiB
Markdown

---
title: NzbDAV
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, downloads, usenet, webdav, nzb, streaming, python]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=downloads, https://github.com/nzbdav/nzbdav]
---
# 🗂️ NzbDAV
> **Serveur WebDAV qui transforme vos NZB Usenet en fichiers streamables** : montez votre bibliothèque Usenet comme un disque réseau, et **streammez directement** dans Jellyfin, Infuse, VLC ou même via Stremio/Symposium, **sans attendre la fin du téléchargement complet**. L'équivalent Usenet d'un *debrid* mais 100% self-hosted.
| Métadonnée | Valeur |
| :--- | :--- |
| **Site web** | [https://nzbdav.com](https://nzbdav.com) |
| **GitHub** | [https://github.com/nzbdav/nzbdav](https://github.com/nzbdav/nzbdav) |
| **License** | MIT |
| **Langage** | Go + WebAssembly (libpar2) |
| **Étoiles** | 96 ⭐ |
| **Dernière MAJ** | 2025-12 |
| **Catégorie** | [[cat-downloads\|Downloads]] |
## Description
**NzbDAV** s'attaque à un problème longtemps négligé côté Usenet : pour **streammer** un film ou une série, il fallait autrefois **attendre la fin du téléchargement** (paraboles SABnzbd/NZBGet), puis le déplacer dans la bibliothèque Jellyfin. C'est lent, ça bouffe du disque, et ça casse le confort du streaming.
**NzbDAV** change la donne en exposant un **serveur WebDAV** standard qui parle à un provider Usenet (via `NZBGet` ou un backend NNTP direct) et présente chaque NZB comme un **fichier virtuel** sur un montage WebDAV. Quand Jellyfin/Plex/Infuse demande la lecture, NzbDAV **télécharge en arrière-plan, décompresse, vérifie par2, et streame** la partie demandée dès qu'elle est prête. Le client croit lire un fichier local, alors qu'il est reconstitué à la volée depuis des segments NZB stockés chez votre provider Usenet.
L'architecture repose sur **libpar2** compilée en **WebAssembly** (Go) — c'est le seul projet Usenet à faire ça, ce qui élimine les libs natives capricieuses. Le binaire est un **statique Go** multi-plateforme qui tourne sur Linux, macOS, Windows, ARM (Raspberry Pi, Synology), avec un **auth WebDAV** par username/password (ou **SSO** via reverse-proxy), une **gestion fine du cache** (combien de Go conserver en local), un **dossier "incomplete"** purgé automatiquement, et une **API REST** pour scripter.
**Points forts** : révolutionne le streaming Usenet, **MIT**, multi-plateforme, intégration WebDAV universelle, **très léger** (1 seul binaire, pas de DB).
**Points faibles** : projet jeune (~96 ⭐), pas de gestion native de files de téléchargement multiples (1 NZB = 1 stream, pas de "queue"), pas d'UI web étoffée (administration via fichier YAML), bus factor à surveiller.
## Installation
### Via Docker (recommandé)
```yaml
# docker-compose.yml
services:
nzbdav:
image: ghcr.io/nzbdav/nzbdav:latest
container_name: nzbdav
restart: unless-stopped
environment:
- NZBDAV__BACKEND=NzbGet
- NZBDAV__NZBGET__URL=http://nzbget:6789
- NZBDAV__NZBGET__USERNAME=nzbget
- NZBDAV__NZBGET__PASSWORD=change...ng
- NZBDAV__CACHE__SIZE=20
- NZBDAV__WEBDAV__USERNAME=alice
- NZBDAV__WEBDAV__PASSWORD=change...ng
volumes:
- ./config:/config
- ./cache:/cache
ports:
- "8080:8080"
```
### Installation manuelle
Télécharger le binaire static depuis GitHub Releases (`wget ... && chmod +x nzbdav_linux_amd64`). Fichier `config.yaml` à côté, puis `./nzbdav_linux_amd64`. Service systemd trivial.
## Configuration
1. **Backend Usenet** : NzbDAV peut soit parler à un **NzbGet** local (recommandé), soit directement à un serveur NNTP (Eweka, Newshosting, etc.).
2. **Auth WebDAV** : créer un couple user/password par "membre de la famille" — chaque user a son propre dossier.
3. **Cache** : taille max en Go (20 par défaut) — au-delà, purge LRU.
4. **Monter dans Jellyfin** : ajouter une bibliothèque "Films" de type WebDAV HTTP, URL `http://nzbdav:8080/webdav/`, user/password.
5. **Monter dans Infuse/NV** : idem, URL locale ou publique (`https://nzbdav.example.com/webdav`).
6. **Reverse proxy** : `nzbdav.example.com` via Caddy/Traefik + HTTPS obligatoire (sinon credentials en clair).
## Alternatives
### Open source
- **NzbGet + Jellyfin "inotify"** — workflow classique : download complet → déplacement → scan. Plus lent, plus d'espace disque.
- **SABnzbd** — le "NzbGet-like" historique, sans WebDAV streaming.
- [[app-nzbget]] — le backend Usenet le plus utilisé avec NzbDAV.
- [[app-sabnzbd]] — alternative à NzbGet.
- [[app-jellyfin]] — le media server qui consomme le WebDAV.
- **Stremio + Symposium** — approche client-side équivalente pour torrent/usenet (propriétaire côté symposium).
### Propriétaires
- **Real-Debrid / AllDebrid** — services de "debrid" Usenet/torrent fermés, abonnement mensuel, **vous donnent accès à leur pool** mais stockent **votre historique** chez eux.
- **UsenetServer + Plex "Cloud Sync"** — pas de feature équivalente.
- **Plex Pass + IPTV** — hors sujet, autre écosystème.
## Sécurité
- ⚠️ **Credentials WebDAV** : transmis en clair sur HTTP — **HTTPS obligatoire** en exposition Internet.
- ⚠️ **Reverse proxy + auth** : NzbDAV n'a pas de SSO natif, comptez sur Authelia/Authentik en amont.
- ⚠️ **Provider Usenet** : choisir un fournisseur qui respecte la vie privée (pas de logs, paiement crypto possible : Eweka, Newshosting, BlockNews).
- ⚠️ **Cache disque** : contient des fragments de fichiers Usenet — chiffrer le volume au repos (LUKS).
-**Pas de DB** : rien à sauvegarder hormis `./config`.
-**Surface d'attaque minimale** : binaire Go statique, pas de dépendances runtime.
## Ressources
- [Site officiel](https://nzbdav.com)
- [Documentation](https://github.com/nzbdav/nzbdav/wiki)
- [GitHub](https://github.com/nzbdav/nzbdav)
- [selfh.st — Downloads](https://selfh.st/apps/?tag=downloads)
## Pages Liées
- [[cat-downloads]] — Catégorie parente
- [[app-nzbget]] — Backend Usenet typique
- [[app-sabnzbd]] — Backend Usenet alternatif
- [[app-jellyfin]] — Media server qui consomme le WebDAV
- [[app-plex]] — Media server alternatif
- [[recettes-docker-compose]] — Templates Docker
- [[securisation-home-lab]] — Bonnes pratiques