De Rien/Documentation

Installation

Un fichier, une commande. De Rien tourne dans un seul conteneur Docker — aucune base à installer, aucune étape de build, migrations appliquées pour toi au premier démarrage.

Avant de commencer

Il te faut Docker et Docker Compose sur la machine qui hébergera ta bibliothèque, ainsi que tes fichiers multimédias quelque part sur cette machine. C'est tout.

1. Crée ton docker-compose.yml

Crée un dossier pour ton instance (par exemple ~/derien) et enregistre ceci en docker-compose.yml à l'intérieur. Il récupère l'image publique depuis le GitHub Container Registry — sans login, sans build.

services:
  app:
    image: ghcr.io/zabby-suite/de-rien:latest
    container_name: derien-app
    restart: unless-stopped
    ports:
      - "3000:3000"
    volumes:
      # Ta bibliothèque, montée en lecture seule dans le conteneur — remplace
      # par le chemin absolu sur l'hôte.
      - /chemin/vers/tes/medias:/media:ro
      # Données persistantes : la base SQLite + le cache des affiches.
      - derien-data:/app/data
    environment:
      # L'URL publique par laquelle on joint ton serveur. Sert aux e-mails de
      # connexion et aux callbacks OAuth — utilise http://localhost:3000 pour
      # tester sur la même machine.
      APP_URL: "http://localhost:3000"
      # Secret utilisé pour signer les sessions. Génère-le avec :
      # openssl rand -base64 32
      BETTER_AUTH_SECRET: "colle-ici-un-long-secret-aleatoire"
      # Nécessaire pour constituer ton catalogue — De Rien ne peut pas
      # analyser sans. Clé gratuite : https://www.themoviedb.org/
      TMDB_API_KEY: "ta_cle_tmdb"
      # Prêt pour le transcodage GPU NVIDIA — ajoute "gpus: all" et installe le
      # nvidia-container-toolkit sur l'hôte pour l'activer (CPU sinon).
      NVIDIA_VISIBLE_DEVICES: all
      NVIDIA_DRIVER_CAPABILITIES: all
    healthcheck:
      test: ["CMD", "curl", "-fsS", "http://localhost:3000/api/v1/health"]
      interval: 30s
      timeout: 10s
      start_period: 40s
      retries: 3

volumes:
  derien-data:

2. Renseigne tes valeurs

Tout ce qu'il faut à De Rien vit directement dans ce fichier — aucun .env à créer. Avant de le lancer, édite quatre choses :

  • APP_URL — l'URL publique par laquelle on joint ton serveur (https://derien.exemple.com une fois exposé ; garde http://localhost:3000 pour tester sur la même machine).
  • BETTER_AUTH_SECRET — une longue chaîne aléatoire ; génère-la avec openssl rand -base64 32.
  • TMDB_API_KEY — ta clé API TMDB.
  • Le volume des médias — le chemin absolu, sur l'hôte, vers ta bibliothèque (par ex. /mnt/nas/media:/media:ro).

Une TMDB_API_KEY est nécessaire : De Rien constitue son catalogue depuis TMDB et n'analysera pas ta bibliothèque sans elle (voir Configuration → TMDB). Tout le reste a une valeur par défaut raisonnable — voir Configuration pour les intégrations optionnelles (e-mail, téléchargements, GPU…). Il n'y a aucune base à configurer : SQLite est embarquée, et le schéma se migre tout seul au premier démarrage.

3. Lance-le

docker compose up -d

Au premier lancement, De Rien crée sa base, applique les migrations et se déclare « healthy » dès qu'il est prêt à répondre. Suis le démarrage avec :

docker compose logs -f app

4. Lance l'assistant de configuration

Ouvre ton APP_URL dans un navigateur. Comme la base n'a encore aucun utilisateur, tu arrives directement sur l'assistant de configuration, où tu :

  1. Nommes ton instance.
  2. Saisis le premier e-mail administrateur.
  3. Pointes vers tes dossiers de bibliothèque (le navigateur de dossiers est confiné à ton répertoire multimédia monté).

Voir Bibliothèque pour organiser ces dossiers.

5. Connecte-toi avec un lien magique

De Rien est sans mot de passe. Créer l'admin dans l'assistant ne te connecte pas — tu te connectes avec un lien magique à usage unique, pour prouver que tu possèdes bien cette adresse.

Si tu n'as pas encore configuré de serveur smtp, pas de souci : le lien est écrit dans les logs du conteneur au lieu d'être envoyé. Récupère-le avec :

docker compose logs app

Pour que les liens soient réellement envoyés par e-mail, configure le SMTP — voir Configuration → E-mail.

Et voilà. Tu es dedans.


Alternative : build depuis les sources

Tu préfères construire l'image toi-même plutôt que de la récupérer ? Clone le dépôt et utilise le fichier compose de production fourni :

git clone https://github.com/zabby-suite/de-rien-v2.git
cd de-rien-v2
docker compose -f docker-compose.prod.yml up -d --build

Contrairement au fichier compose plus haut, docker-compose.prod.yml lit sa configuration depuis un fichier .env : crée-le à côté avant de démarrer, avec les mêmes variables (APP_URL, BETTER_AUTH_SECRET, TMDB_API_KEY), plus MEDIA_HOST_PATH pour le volume des médias.