De Rien/Documentation

Configuration

De Rien se configure via des variables d'environnement. Une clé TMDB est nécessaire pour constituer ton catalogue ; tout le reste ci-dessous est optionnel — ajoute chaque intégration quand tu veux la fonctionnalité qu'elle débloque.

La configuration se fait via des variables d'environnement, définies dans le bloc environment: de ton docker-compose.yml (ou dans un fichier .env si tu préfères les garder à part). Change une valeur, puis docker compose up -d pour l'appliquer. Le guide Installation couvre la poignée de variables nécessaires à un premier démarrage.

TMDB — affiches & métadonnées

Nécessaire. De Rien constitue son catalogue à partir de TMDB — affiches, arrière-plans, résumés et casting — associés aux titres trouvés dans tes fichiers. Sans clé, il ne peut pas analyser ta bibliothèque du tout : c'est la seule intégration que tu dois configurer. Une clé gratuite depuis themoviedb.org suffit.

TMDB_API_KEY=ta_cle_tmdb

MDBList — notes Rotten Tomatoes

Affiche les notes critiques (Tomatometer) et public de Rotten Tomatoes sur la page de détail. Sans elle, De Rien retombe sur la note utilisateur TMDB. Récupère une clé gratuite (1 000 requêtes/jour) sur mdblist.com.

MDBLIST_API_KEY=ta_cle_mdblist

E-mail (SMTP) — liens magiques

De Rien connecte les gens avec des liens magiques sans mot de passe. Sans SMTP, ces liens sont écrits dans les logs du conteneur (docker compose logs app). Configure le SMTP pour les envoyer par e-mail :

SMTP_HOST=smtp.exemple.com
SMTP_PORT=587
SMTP_SECURE=false
SMTP_USER=ton-utilisateur
SMTP_PASS=ton-mot-de-passe
SMTP_FROM=De Rien <derien@exemple.com>

Connexion Google (OAuth)

Laisse les gens se connecter avec Google. Crée un client OAuth dans la Google Cloud Console et ajoute l'URI de redirection ${APP_URL}/api/auth/callback/google.

GOOGLE_CLIENT_ID=ton_client_id.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=ton_client_secret

Les nouvelles inscriptions (lien magique ou Google) passent par une file d'approbation admin avant de pouvoir utiliser le serveur — le premier admin, créé dans l'assistant, est approuvé automatiquement.

Transcodage GPU (NVIDIA NVENC)

L'image embarque un ffmpeg compatible NVENC. Le transcodage utilise ton CPU par défaut ; pour confier un GPU NVIDIA au conteneur, installe le nvidia-container-toolkit sur l'hôte et ajoute le GPU à ton service. Les deux formes marchent :

# Forme simple
services:
  app:
    gpus: all
    environment:
      NVIDIA_VISIBLE_DEVICES: all
      NVIDIA_DRIVER_CAPABILITIES: all
# Forme Compose Specification
services:
  app:
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]
    environment:
      NVIDIA_VISIBLE_DEVICES: all
      NVIDIA_DRIVER_CAPABILITIES: all

Si aucun GPU n'est visible, De Rien transcode sur le CPU automatiquement — rien ne casse.

Téléchargements (avancé)

Demande et télécharge des releases depuis l'app en branchant un client qBittorrent et un indexeur Torznab.

# qBittorrent
QBIT_URL=http://192.168.1.10:8080
QBIT_USER=admin
QBIT_PASS=ton-mot-de-passe
QBIT_MOVIE_CATEGORY=movies
QBIT_SERIES_CATEGORY=series
QBIT_DOC_CATEGORY=documentary

# Recherche de releases Torr9 / Torznab
TORR9_PASSKEY=ta_passkey
TORR9_TORZNAB_URL=https://api.torr9.net/api/v1/torznab
# Proxy optionnel pour les requêtes torr9 uniquement (le domaine est bloqué au
# niveau DNS dans certaines régions) :
# TORR9_HTTP_PROXY=http://proxy:8080

Hub, mises à jour & télémétrie

De Rien peut s'appairer à un hub central (pour lier des serveurs et partager des accès), vérifier les mises à jour, et envoyer un ping d'usage quotidien anonyme. Les trois sont optionnels et faciles à couper.

# Hub central à appairer. Par défaut le hub public De Rien — l'appairage exige
# quand même le flux de connexion approuvé par l'admin, donc la valeur par
# défaut seule ne lie rien. Mets-la vide (HUB_ORIGIN=) pour un mode 100% autonome.
HUB_ORIGIN=https://hub.de-rien.zabby.fr

# Vérification quotidienne « nouvelle version dispo » dans le tableau de bord
# admin. Mets false pour les installs coupées d'internet.
VERSION_CHECK_ENABLED=true

# Ping quotidien anonyme (des compteurs seulement — aucun titre, nom ou e-mail).
# Désinscris-toi ici.
TELEMETRY_ENABLED=true

Mettre à la fois HUB_ORIGIN= et TELEMETRY_ENABLED=false (et, pour un fork, ADMIN_ORIGIN=) empêche ton serveur de contacter quoi que ce soit d'externe.

Référence complète des variables

Le conteneur définit déjà NODE_ENV=production, DATA_ROOT=/app/data, MEDIA_ROOT=/media et PORT=3000 pour toi. Tout ce que l'app lit :

VariableRequiseDéfautRôle
APP_URLRecommandéehttp://localhost:3000URL publique ; sert aux e-mails de liens magiques et aux callbacks OAuth.
BETTER_AUTH_SECRETOui (prod)placeholder devSigne les sessions. Génère : openssl rand -base64 32.
DATA_ROOTNon/app/dataRacine de toutes les données persistantes (base + cache d'affiches).
DATABASE_PATHNon${DATA_ROOT}/derien.dbSurcharge le chemin du fichier SQLite.
IMAGE_CACHE_ROOTNon${DATA_ROOT}/imagesSurcharge le chemin du cache d'affiches.
MEDIA_ROOTNon/mediaOù la bibliothèque est montée dans le conteneur.
MEDIA_HOST_PATHNonChemin hôte monté sur MEDIA_ROOT ; affiché dans l'assistant.
TMDB_API_KEYNonEnrichissement affiches & métadonnées.
MDBLIST_API_KEYNonNotes critiques/public Rotten Tomatoes.
SMTP_HOSTNonServeur SMTP ; absent → liens magiques dans les logs.
SMTP_PORTNon587Port SMTP.
SMTP_SECURENonfalseTLS à la connexion.
SMTP_USERNonUtilisateur SMTP.
SMTP_PASSNonMot de passe SMTP.
SMTP_FROMNonDe Rien <derien@honnete.cloud>Adresse d'expédition des e-mails.
GOOGLE_CLIENT_IDNonOAuth Google (besoin de l'id + du secret).
GOOGLE_CLIENT_SECRETNonSecret OAuth Google.
QBIT_URLNonURL de l'interface web qBittorrent.
QBIT_USER / QBIT_PASSNonIdentifiants qBittorrent.
QBIT_MOVIE_CATEGORYNonmoviesCatégorie des téléchargements de films.
QBIT_SERIES_CATEGORYNonseriesCatégorie des téléchargements de séries.
QBIT_DOC_CATEGORYNondocumentaryCatégorie des téléchargements de documentaires.
TORR9_PASSKEYNonPasskey Torznab pour la recherche de releases.
TORR9_TORZNAB_URLNonhttps://api.torr9.net/api/v1/torznabEndpoint Torznab.
TORR9_HTTP_PROXYNonProxy pour les requêtes torr9 uniquement.
HUB_ORIGINNonhttps://hub.de-rien.zabby.frHub à appairer ; vide = autonome.
VERSION_CHECK_ENABLEDNontrueRecherche de nouvelles versions.
VERSION_MANIFEST_URLNonconsole adminManifeste de releases (à surcharger sur un fork).
TELEMETRY_ENABLEDNontruePing d'usage quotidien anonyme (désinscription).
ADMIN_ORIGINNonconsole adminCible télémétrie + rapports de bug ; vide désactive les deux.