Complete the French mirror of the remaining articles
This commit is contained in:
@@ -21,23 +21,28 @@ Nous monterons ici le système ci-dessous :
|
||||

|
||||
|
||||
## Configuration
|
||||
Structure des dossiers
|
||||
|
||||
```text [Arborescence]
|
||||
root
|
||||
├── docker
|
||||
│ └── seedbox
|
||||
│ ├── qbittorrent
|
||||
│ │ └── config
|
||||
│ ├── gluetun
|
||||
│ ├── compose.yaml
|
||||
│ └── .env
|
||||
│
|
||||
└── media #relié à plex et Qbittorrent
|
||||
├── downloads #vos téléchargements génériques, à selectionner dans les parametres
|
||||
├── movies #à selectionner dans l'interface pour télécharger vos films
|
||||
└── tvseries #à selectionner dans l'interface pour télécharger vos séries
|
||||
```
|
||||
::file-tree
|
||||
---
|
||||
tree:
|
||||
/:
|
||||
- srv:
|
||||
- docker:
|
||||
- seedbox:
|
||||
- qbittorrent:
|
||||
- config/
|
||||
- gluetun/
|
||||
- compose.yaml
|
||||
- .env
|
||||
- "media # relié à Jellyfin et Qbittorrent":
|
||||
- "downloads/ # téléchargements génériques, choisis dans les réglages"
|
||||
- "movies/ # utilisé pour télécharger les films"
|
||||
- "tvseries/ # utilisé pour télécharger les séries"
|
||||
---
|
||||
::
|
||||
|
||||
::steps{level="3"}
|
||||
### Créer les dossiers média
|
||||
|
||||
Si ce n'est pas déjà fait, créez le dossier `downloads` dans `/media` :
|
||||
|
||||
@@ -45,7 +50,9 @@ Si ce n'est pas déjà fait, créez le dossier `downloads` dans `/media` :
|
||||
mkdir -P /media/downloads
|
||||
```
|
||||
|
||||
Ouvrez Dockge, cliquez sur `compose` et nommez la stack `seedbox`. Collez la config ci-dessous :
|
||||
### Déployer la stack
|
||||
|
||||
Ouvrez Dockge, cliquez sur `compose`, et nommez la stack `seedbox`. Collez la configuration suivante :
|
||||
|
||||
```yaml [compose.yaml]
|
||||
---
|
||||
@@ -94,157 +101,182 @@ services:
|
||||
- WIREGUARD_PRIVATE_KEY=${PR_KEY}
|
||||
- SERVER_COUNTRIES=France
|
||||
- PORT_FORWARD_ONLY=on
|
||||
|
||||
```
|
||||
|
||||
::tip{icon=""}
|
||||
✨ __Astuce :__ ajoutez le label de watchtower dans chaque conteneur afin d'automatiser les mises à jour
|
||||
✨ __Astuce :__ ajoutez le label Watchtower dans chaque conteneur pour automatiser les mises à jour
|
||||
|
||||
```yaml [compose.yaml]
|
||||
services:
|
||||
qbittorrent:
|
||||
#...
|
||||
labels:
|
||||
|
||||
- com.centurylinklabs.watchtower.enable=true
|
||||
gluetun:
|
||||
#...
|
||||
labels:
|
||||
|
||||
- com.centurylinklabs.watchtower.enable=true
|
||||
```
|
||||
```yaml [compose.yaml]
|
||||
---
|
||||
services:
|
||||
qbittorrent:
|
||||
#...
|
||||
labels:
|
||||
- com.centurylinklabs.watchtower.enable=true
|
||||
gluetun:
|
||||
#...
|
||||
labels:
|
||||
- com.centurylinklabs.watchtower.enable=true
|
||||
```
|
||||
::
|
||||
|
||||
Avant de renseigner le `.env` dans Dockge, nous allons configurer la mise à jour du port de téléchargement. En effet, Proton, et la plupart des VPN, changent régulièrement le port de téléchargement, et celui-ci doit etre communiqué à Qbitorrent.
|
||||
### Configurer la mise à jour du port de téléchargement
|
||||
|
||||
Pour ce faire, nous avons ajouté le mod `ghcr.io/t-anc/gsp-qbittorent-gluetun-sync-port-mod` dans le conteneur.
|
||||
Avant de renseigner le `.env` dans Dockge, configurons la mise à jour du port de téléchargement. Proton et la plupart des VPN font tourner le port de redirection, qui doit être communiqué à Qbittorrent.
|
||||
|
||||
Il faut à présent permettre au mod de récupérer l'information via Gluetun, qui n'accepte que les communications chiffrées via son API.
|
||||
Nous avons ajouté le mod `ghcr.io/t-anc/gsp-qbittorent-gluetun-sync-port-mod` au conteneur.
|
||||
|
||||
A cet effet, ouvrez un terminal. Nous allons à présent générer une clé d'authentification :
|
||||
Il faut maintenant permettre au mod de récupérer les informations de Gluetun, qui n'autorise qu'une communication chiffrée via son API.
|
||||
|
||||
Ouvrez un terminal pour générer la clé d'authentification :
|
||||
|
||||
```bash [Terminal]
|
||||
sudo docker run --rm qmcgaw/gluetun genkey
|
||||
```
|
||||
|
||||
Notez la clé. Puis créez le dossier `/srv/docker/gluetun`
|
||||
Notez la clé, puis créez le dossier `/srv/docker/gluetun` :
|
||||
|
||||
```bash [Terminal]
|
||||
sudo mkdir /srv/docker/gluetun
|
||||
```
|
||||
|
||||
Et créez le fichier `config.toml`
|
||||
Créez le fichier `config.toml` :
|
||||
|
||||
```bash [Terminal]
|
||||
sudo nano /srv/docker/gluetun/config.toml
|
||||
```
|
||||
|
||||
Éditez le comme suit en ajoutant la clée que vous avez générée :
|
||||
Saisissez :
|
||||
|
||||
```toml [config.toml]
|
||||
[[roles]]
|
||||
name = "t-anc/GSP-Qbittorent-Gluetun-sync-port-mod"
|
||||
routes = ["GET /v1/portforward"]
|
||||
auth = "apikey"
|
||||
apikey = "votre_clée" # clée que vous avez générée précédemment
|
||||
apikey = "votre_cle_ici" # la clé que vous venez de générer
|
||||
```
|
||||
|
||||
Enregistrez avec :kbd{value="Ctrl+O"} puis :kbd{value="Entrée"}, puis quittez avec :kbd{value="Ctrl+X"}. Rendez-vous dans Dockge, et renseignez les variables dans `.env`:
|
||||
Appuyez sur :kbd{value="Ctrl+O"}, puis :kbd{value="Enter"} pour enregistrer, et :kbd{value="Ctrl+X"} pour quitter.
|
||||
|
||||
### Renseigner vos variables d'environnement
|
||||
|
||||
Dans Dockge, renseignez les variables du `.env` :
|
||||
|
||||
```properties [.env]
|
||||
PUID=
|
||||
GUID=
|
||||
UI_PORT=
|
||||
PR_KEY=
|
||||
GSP_KEY= # la clé que vous avez générée et renseignée dans config.toml
|
||||
GSP_KEY= # la clé générée et saisie dans config.toml
|
||||
ID=
|
||||
PW=
|
||||
```
|
||||
|
||||
En détails :
|
||||
Détail :
|
||||
|
||||
| Variable | Valeur | Exemples |
|
||||
|-----------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------|
|
||||
| `PUID`{lang=properties} | A renseigner avec les infos de votre user (trouvables via la commande `id nomdutilisateur`{lang=shell}) | `1000` |
|
||||
| `GUID`{lang=properties} | A renseigner avec les infos de votre user (trouvables via la commande `id nomdutilisateur`{lang=shell}) | `1000` |
|
||||
| `UI_PORT`{lang=properties} | Le port d'accès à la web ui, elle sera joignable via `http//ipduserveur:port` | `5695` |
|
||||
| `PR_KEY`{lang=properties} | La clée privée fournie par Proton | `buKsjNHLyzKMM1qYnzOy4s7SHfly` |
|
||||
| `GSP_KEY`{lang=properties} | Clé que vous avez générée pour la mise à jour du port | `MnBa47MeVmk7xiv` |
|
||||
| `ID`{lang=properties} | username que vous utilisez pour vous logger dans l'interface de Qbittorrent | `user` |
|
||||
| `PW`{lang=properties} | mot de passe que vous utilisez pour vous logger dans l'interface de Qbittorrent | `password` |
|
||||
| Variable | Description | Exemple |
|
||||
|------------|-------------|---------|
|
||||
| `PUID` | ID utilisateur (`id votreutilisateur`) | `1000` |
|
||||
| `GUID` | ID de groupe (`id votreutilisateur`) | `1000` |
|
||||
| `UI_PORT` | Port d'accès à l'interface web | `5695` |
|
||||
| `PR_KEY` | Clé privée fournie par Proton | `buKsjNHLyzKMM1qYnzOy4s7SHfly` |
|
||||
| `GSP_KEY` | Clé générée pour la mise à jour du port | `MnBa47MeVmk7xiv` |
|
||||
| `ID` | Identifiant de connexion à l'interface Qbittorrent | `user` |
|
||||
| `PW` | Mot de passe de l'interface Qbittorrent | `password` |
|
||||
|
||||
## Déploiement
|
||||
Une fois fait, déployez le conteneur.
|
||||
|
||||
::warning
|
||||
|
||||
**Dans les logs de lancement, vous trouverez un mot de passe temporaire pour l'utilisateur `admin`**
|
||||
### Terminé !
|
||||
::
|
||||
|
||||
Loggez vous sur `http://ipduserveur:5695` (ou le port que vous avez configuré).
|
||||
## Déploiement
|
||||
|
||||
::steps{level="3"}
|
||||
### Déployer le conteneur
|
||||
|
||||
Une fois fait, déployez le conteneur.
|
||||
|
||||
::note{to="/serveex/core/docker/#dockge"}
|
||||
|
||||
**Les logs de démarrage affichent un mot de passe temporaire pour l'utilisateur `admin`.**
|
||||
Consultez les logs dans **Dockge** pour le récupérer, ou tapez cette commande dans un terminal :
|
||||
```bash [Terminal]
|
||||
docker logs qbittorrent 2>&1 | grep -i "temporary password"
|
||||
```
|
||||
::
|
||||
|
||||
### Se connecter et sécuriser son compte
|
||||
|
||||
Connectez-vous sur `http://ipduserveur:5695` (ou le port que vous avez défini).
|
||||
|
||||
::caution
|
||||
|
||||
__En cas d'échec :__ vérifiez les règles de votre pare-feu.
|
||||
__Si la connexion échoue :__ vérifiez les règles de votre pare-feu.
|
||||
::
|
||||
|
||||
Changez votre nom d'utilisateur et votre mot de passe dans les paramètres "webui".
|
||||
Changez votre identifiant et votre mot de passe dans les réglages « webui ».
|
||||
|
||||
Et voilà ! Dans les paramètres de Qbittorrent, dans "téléchargements" selectionnez `/media/downloads` comme chemin par défaut pour télécharger vos media.
|
||||
### Terminé !
|
||||
::
|
||||
|
||||
Lorsque vous lancez un téléchargement, n'oubliez pas de préciser le bon répertoire de téléchargement afin que Plex puisse synchroniser correctement sa bibliothèque (`/media/movies` et `/media/tvseries`). Vous pouvez aussi l'automatiser en créant une catégorie et un répertoire associé.
|
||||
C'est terminé ! Dans les réglages de Qbittorrent, section « Téléchargements », définissez `/media/downloads` comme dossier par défaut.
|
||||
|
||||
Lors de l'ajout d'un téléchargement, pensez à choisir le bon dossier pour que Jellyfin se synchronise correctement (`/media/movies` ou `/media/tvseries`). Vous pouvez aussi automatiser cela avec des catégories et des dossiers.
|
||||
|
||||
## Exposer la webui
|
||||
|
||||
::warning
|
||||
|
||||
Qbitorrent n'utilise pas d'authentification multifacteur. Exposer Qbitorrent sur internet pourrait compromettre les machines auxquelles il est relié. Ne le faite que si vous utilisez un systeme d'authentification multifacteur comme [Authentik](/serveex/advanced/authentik). Sinon, n'exposez pas avec SWAG et utilisez plutôt un VPN comme [Wireguard](/serveex/core/wireguard).
|
||||
Qbittorrent ne gère pas l'authentification multifacteur. L'exposer sur internet peut mettre votre système en danger. Ne le faites que si vous utilisez du MFA via [TinyAuth](/serveex/security/tinyauth) ou [Authentik](/serveex/advanced/authentik/). Sinon, ne l'exposez pas avec SWAG. Utilisez plutôt un VPN comme [Wireguard](/serveex/core/wireguard).
|
||||
::
|
||||
|
||||
Afin de lancer des téléchargement hors de chez vous, sans VPN, vous pouvez exposer la webui de Qbittorrent.
|
||||
Pour lancer des téléchargements depuis l'extérieur, sans VPN, vous pouvez exposer l'interface web de Qbittorrent.
|
||||
|
||||
::note
|
||||
|
||||
Nous partons du principe que vous avez le sous-domaine `seedbox.mondomaine.fr` avec un `CNAME` qui pointe vers `mondomaine.fr` dans [zone DNS](/general/networking/dns). Et que bien sûr, [à moins que vous utilisiez Cloudflare Zero Trust](/serveex/security/cloudflare), le port `443` de votre box pointe bien sur le port `443` de votre serveur dans [les règles NAT](/general/networking/nat).
|
||||
Nous partons du principe que vous avez le sous-domaine `seedbox.mondomaine.fr` avec un `CNAME` pointant vers `mondomaine.fr` dans la [zone DNS](/general/networking/dns). Et que le port `443` de votre box est redirigé vers votre serveur dans les [règles NAT](/general/networking/nat), à moins d'utiliser Cloudflare Zero Trust.
|
||||
::
|
||||
|
||||
Rendez-vous dans dockge, et éditez le compose de SWAG en ajoutant le réseau de Gluetun :
|
||||
::steps{level="3"}
|
||||
### Ajouter le réseau de Gluetun à SWAG
|
||||
|
||||
Dans Dockge, modifiez le fichier compose de SWAG et ajoutez le réseau de Gluetun :
|
||||
|
||||
```yaml [compose.yaml]
|
||||
---
|
||||
services:
|
||||
swag:
|
||||
container_name: # ...
|
||||
# ...
|
||||
networks: # Relie le conteneur au réseau custom
|
||||
# ...
|
||||
- seedbox # Nom du réseau déclaré dans la stack
|
||||
container_name: # ...
|
||||
# ...
|
||||
networks:
|
||||
# ...
|
||||
- seedbox
|
||||
|
||||
networks: # Définit le réseau custom
|
||||
networks:
|
||||
# ...
|
||||
seedbox: # Nom du réseau déclaré dans la stack
|
||||
name: seedbox_default # Nom véritable du réseau externe
|
||||
external: true # Précise que c'est un réseau à rechercher en externe
|
||||
seedbox:
|
||||
name: seedbox_default
|
||||
external: true
|
||||
```
|
||||
|
||||
Relancez la stack en cliquant sur "déployer" et patientez le temps que SWAG soit complètement opérationnel.
|
||||
Cliquez sur « Deploy » et attendez que SWAG soit complètement initialisé.
|
||||
|
||||
::note
|
||||
|
||||
Ici nous partons du principe que le nom du réseau de la seedbox est `seedbox_default`. Vous pouvez vérifier que la connexion est opérationnelle en visitant le dashboard de SWAG en tapant http://ipduserveur:81.
|
||||
Nous partons du principe que le nom du réseau est `seedbox_default`. Vous pouvez le confirmer en consultant le tableau de bord de SWAG sur http://ipduserveur:81.
|
||||
::
|
||||
|
||||
Puis nous allons créer et éditer le fichier `seedbox.subdomain.conf`.
|
||||
### Créer le fichier subdomain.conf
|
||||
|
||||
Créez ou modifiez maintenant `seedbox.subdomain.conf`.
|
||||
|
||||
::tip{icon="" to="/serveex/files/file-browser-quantum"}
|
||||
✨ __Astuce pour les allergiques au terminal :__ vous pouvez utiliser **File Browser Quantum** pour naviguer dans vos fichier et éditer vos documents au lieu d'utiliser les commandes du terminal.
|
||||
✨ __Astuce pour les allergiques au terminal :__ utilisez **File Browser Quantum** pour modifier les fichiers plutôt que le terminal.
|
||||
::
|
||||
|
||||
```bash [Terminal]
|
||||
sudo nano /srv/docker/swag/config/nginx/proxy-confs/seedbox.subdomain.conf
|
||||
```
|
||||
|
||||
Copiez la configuration ci-dessous, en prenant soin de vérifier le port :
|
||||
Collez la configuration suivante (vérifiez le port) :
|
||||
|
||||
```nginx [seedbox.subdomain.conf]
|
||||
## Version 2023/12/19
|
||||
@@ -296,14 +328,94 @@ server {
|
||||
}
|
||||
}
|
||||
```
|
||||
::tip{icon=""}
|
||||
✨ Vous pouvez protéger cette app avec Authentik en retirant les `#` devant `include /config/nginx/authentik-server.conf;`{lang=nginx} et `include /config/nginx/authentik-location.conf;`{lang=nginx}. N'oubliez pas de [créer une application et un fournisseur dans Authentik](/serveex/advanced/authentik#protéger-une-app-par-reverse-proxy).
|
||||
|
||||
Appuyez sur :kbd{value="Ctrl+O"}, puis :kbd{value="Enter"} pour enregistrer, et :kbd{value="Ctrl+X"} pour quitter.
|
||||
|
||||
### Terminé !
|
||||
::
|
||||
|
||||
Enregistrez avec :kbd{value="Ctrl+O"} puis :kbd{value="Entrée"}, puis quittez avec :kbd{value="Ctrl+X"}.
|
||||
Attendez quelques minutes, puis allez sur `https://seedbox.mondomaine.fr`. Vous devriez arriver sur l'interface de Qbittorrent.
|
||||
|
||||
Patientez quelques minutes puis tapez dans votre navigateur `https://seedbox.mondomaine.fr`, vous arriverez sur l'interface de Qbittorrent.
|
||||
## Protéger Qbittorrent avec TinyAuth
|
||||
Ajoutez la vérification forward-auth de [TinyAuth](/serveex/security/tinyauth) directement dans `seedbox.subdomain.conf`, de la même façon que dans [le tutoriel TinyAuth](/serveex/security/tinyauth#protecting-an-app-via-reverse-proxy) :
|
||||
|
||||
Et voilà, vous avez un mediacenter pret à l'emploi !
|
||||
```nginx [seedbox.subdomain.conf]{26-38,41-42}
|
||||
## Version 2023/12/19
|
||||
|
||||
server {
|
||||
listen 443 ssl;
|
||||
listen [::]:443 ssl;
|
||||
|
||||
server_name seedbox.*;
|
||||
|
||||
include /config/nginx/ssl.conf;
|
||||
|
||||
client_max_body_size 0;
|
||||
|
||||
#if ($lan-ip = yes) { set $geo-whitelist yes; }
|
||||
#if ($geo-whitelist = no) { return 404; }
|
||||
if ($geo-blacklist = no) { return 404; }
|
||||
|
||||
# enable for ldap auth (requires ldap-location.conf in the location block)
|
||||
#include /config/nginx/ldap-server.conf;
|
||||
|
||||
# enable for Authelia (requires authelia-location.conf in the location block)
|
||||
#include /config/nginx/authelia-server.conf;
|
||||
|
||||
# enable for Authentik (requires authentik-location.conf in the location block)
|
||||
#include /config/nginx/authentik-server.conf;
|
||||
|
||||
location /tinyauth {
|
||||
internal;
|
||||
proxy_pass http://tinyauth:3000/api/auth/nginx;
|
||||
proxy_pass_request_body off;
|
||||
proxy_set_header Content-Length "";
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header X-Forwarded-Host $http_host;
|
||||
proxy_set_header X-Forwarded-Uri $request_uri;
|
||||
}
|
||||
|
||||
location @tinyauth_login {
|
||||
return 302 https://tinyauth.mondomaine.fr/login?redirect_uri=$scheme://$http_host$request_uri;
|
||||
}
|
||||
|
||||
location / {
|
||||
auth_request /tinyauth;
|
||||
error_page 401 = @tinyauth_login;
|
||||
|
||||
# enable the next two lines for http auth
|
||||
#auth_basic "Restricted";
|
||||
#auth_basic_user_file /config/nginx/.htpasswd;
|
||||
|
||||
# enable for ldap auth (requires ldap-server.conf in the server block)
|
||||
#include /config/nginx/ldap-location.conf;
|
||||
|
||||
# enable for Authelia (requires authelia-server.conf in the server block)
|
||||
#include /config/nginx/authelia-location.conf;
|
||||
|
||||
# enable for Authentik (requires authentik-server.conf in the server block)
|
||||
#include /config/nginx/authentik-location.conf;
|
||||
|
||||
include /config/nginx/proxy.conf;
|
||||
include /config/nginx/resolver.conf;
|
||||
set $upstream_app gluetun;
|
||||
set $upstream_port 5555;
|
||||
set $upstream_proto http;
|
||||
proxy_pass $upstream_proto://$upstream_app:$upstream_port;
|
||||
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
::note{to="/serveex/security/tinyauth#exposing-tinyauth-with-swag"}
|
||||
|
||||
Le bloc `location /tinyauth` s'exécute dans le conteneur de SWAG lui-même, SWAG doit donc être sur le réseau Docker de TinyAuth pour le joindre par son nom (`tinyauth` ici). Cela devrait déjà être en place depuis **l'exposition de TinyAuth**. Si vous rencontrez une erreur, revérifiez que le fichier compose de SWAG a toujours ce réseau rattaché.
|
||||
::
|
||||
|
||||
::tip{icon=""}
|
||||
✨ Vous pouvez sécuriser cette application avec [Authentik](/serveex/advanced/authentik) plutôt que TinyAuth, en décommentant les lignes `authentik-server.conf` et `authentik-location.conf`. N'oubliez pas de [créer une application et un provider dans Authentik](/serveex/advanced/authentik#protecting-an-app-via-reverse-proxy).
|
||||
::
|
||||
|
||||
Et voilà ! Vous avez maintenant un media center prêt à l'emploi.
|
||||
|
||||

|
||||
|
||||
@@ -1,96 +1,79 @@
|
||||
---
|
||||
title: Automatisation
|
||||
description: Automatiser les téléchargements de médias avec la suite Servarr, Radarr, Sonarr, Bazarr, Prowlarr et Overseerr pour films et séries.
|
||||
description: Automatiser les téléchargements de médias avec la suite Servarr, Radarr, Sonarr, Bazarr, Prowlarr et Seerr, pour les films et les séries.
|
||||
---
|
||||
|
||||
|
||||
:ellipsis{left=0px width=40rem top=10rem blur=140px zIndex=60}
|
||||
|
||||
[Servarr](https://wiki.servarr.com/) est une collection d'applications développées dans le but d'automatiser le téléchargement, la mise à jour et la gestions des media. Ici nous allons porter notre attention sur les films et séries avec comme objectif :
|
||||
[Servarr](https://wiki.servarr.com/) est une suite d'applications conçues pour automatiser le téléchargement, la mise à jour et la gestion des médias. Ici, nous nous concentrerons sur les films et les séries avec pour objectif :
|
||||
|
||||
- Pouvoir choisir un film dans un catalogue via une interface web
|
||||
- N'avoir plus rien à faire à part en profiter quelques minutes plus tard sur Plex
|
||||
- Choisir un film dans un catalogue via une interface web.
|
||||
- Se poser dans son canapé et le regarder sur Jellyfin quelques minutes plus tard.
|
||||
|
||||
Simple.
|
||||
|
||||

|
||||
|
||||
Je vous propose de déployer la stack puis nous verrons par la suite la configuration de chacune des apps et leur fonctionnement.
|
||||
Nous commencerons par déployer la stack, puis nous configurerons chaque application et verrons comment elles fonctionnent.
|
||||
|
||||
## Installer les apps
|
||||
|
||||
### Docker compose
|
||||
|
||||
Structure des dossiers :
|
||||
|
||||
```text [Arborescence]
|
||||
root
|
||||
├── docker
|
||||
│ ├── plex
|
||||
│ │ ├── compose.yml
|
||||
│ │ ├── config
|
||||
│ │ └── transcode
|
||||
│ ├── tautulli
|
||||
│ │ └── config
|
||||
│ ├── sonarr
|
||||
│ │ └── config
|
||||
│ ├── radarr
|
||||
│ │ └── config
|
||||
│ ├── bazarr
|
||||
│ │ └── config
|
||||
│ ├── prowlarr
|
||||
│ │ └── config
|
||||
│ └── overseerr
|
||||
│ └── config
|
||||
└── media
|
||||
├── downloads
|
||||
├── tvseries
|
||||
├── movies
|
||||
└── library
|
||||
```
|
||||
::file-tree
|
||||
---
|
||||
tree:
|
||||
/:
|
||||
- srv:
|
||||
- docker:
|
||||
- jellyfin:
|
||||
- compose.yml
|
||||
- .env
|
||||
- config/
|
||||
- sonarr:
|
||||
- config/
|
||||
- radarr:
|
||||
- config/
|
||||
- bazarr:
|
||||
- config/
|
||||
- prowlarr:
|
||||
- config/
|
||||
- seerr:
|
||||
- config/
|
||||
- media:
|
||||
- downloads/
|
||||
- tvseries/
|
||||
- movies/
|
||||
- library/
|
||||
---
|
||||
::
|
||||
|
||||
::warning
|
||||
|
||||
__Attention :__ Respectez bien ce type de structure de fichier, notamment le dossier `media`. Ce dossier doit etre monté de la même manière dans les compose de _Qbittorrent_ (`/votre/chemin/media:/media`) et des _arr_. Sans cela, les _arr_ risquent de ne pas trouver le chemin fourni par Qbittorrent et de ne pas créer de _hardlinks_. Sans hardlink, les _arr_ copieront les films et cela doublera l'espace utilisé sur votre stockage.
|
||||
__Attention :__ respectez bien cette structure de fichiers, en particulier le dossier `media`. Ce dossier doit être monté **exactement de la même façon** dans le fichier compose de _Qbittorrent_ (`/votre/chemin/media:/media`) et dans les applications _arr_. Sinon, les applications _arr_ risquent de ne pas reconnaître le chemin fourni par Qbittorrent et ne créeront pas de _hardlinks_. Sans hardlinks, les applications _arr_ copieront les fichiers, ce qui **doublera l'espace utilisé** sur votre stockage.
|
||||
::
|
||||
|
||||
Ouvrez dockge et votre stack `plex`. Modifiez le compose comme ceci :
|
||||
::steps{level="3"}
|
||||
### Déployer la stack
|
||||
|
||||
Ouvrez Docker et votre stack `jellyfin`. Modifiez le fichier compose comme suit :
|
||||
```yaml [compose.yaml]
|
||||
---
|
||||
services:
|
||||
linuxserver_plex:
|
||||
image: ghcr.io/linuxserver/plex:latest
|
||||
container_name: plex
|
||||
network_mode: host
|
||||
jellyfin:
|
||||
image: lscr.io/linuxserver/jellyfin:latest
|
||||
container_name: jellyfin
|
||||
environment:
|
||||
- PUID=${PUID}
|
||||
- PGID=${PGID}
|
||||
- TZ=Europe/Paris
|
||||
- VERSION=docker
|
||||
- PLEX_CLAIM= #optional
|
||||
volumes:
|
||||
- /srv/docker/plex/config:/config
|
||||
- /srv/docker/plex/transcode:/transcode #optional
|
||||
- /srv/docker/jellyfin/config:/config
|
||||
- ${MEDIA_PATH}:/media
|
||||
labels:
|
||||
- com.centurylinklabs.watchtower.enable=true
|
||||
restart: unless-stopped
|
||||
mem_limit: 4096m
|
||||
mem_reservation: 2048m
|
||||
devices:
|
||||
- /dev/dri:/dev/dri
|
||||
|
||||
tautulli:
|
||||
image: lscr.io/linuxserver/tautulli:latest
|
||||
container_name: tautulli
|
||||
environment:
|
||||
- TZ=Europe/Paris
|
||||
volumes:
|
||||
- /srv/docker/tautulli/config:/config
|
||||
ports:
|
||||
- 8181:8181
|
||||
restart: unless-stopped
|
||||
- 8096:8096
|
||||
|
||||
sonarr:
|
||||
image: lscr.io/linuxserver/sonarr:latest
|
||||
@@ -133,18 +116,14 @@ services:
|
||||
- 9696:9696
|
||||
restart: unless-stopped
|
||||
|
||||
overseerr:
|
||||
image: lscr.io/linuxserver/overseerr:latest
|
||||
container_name: overseerr
|
||||
dns:
|
||||
- 1.1.1.1
|
||||
- 8.8.8.8
|
||||
seerr:
|
||||
image: ghcr.io/seerr-team/seerr:latest
|
||||
container_name: seerr
|
||||
environment:
|
||||
- PUID=${PUID}
|
||||
- PGID=${PGID}
|
||||
- LOG_LEVEL=info
|
||||
- TZ=Europe/Paris
|
||||
volumes:
|
||||
- /srv/docker/overseerr/config:/config
|
||||
- /srv/docker/seerr/config:/app/config
|
||||
ports:
|
||||
- 5055:5055
|
||||
restart: unless-stopped
|
||||
@@ -154,7 +133,7 @@ services:
|
||||
container_name: bazarr
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- TZ=Europe/Paris
|
||||
volumes:
|
||||
@@ -165,25 +144,21 @@ services:
|
||||
```
|
||||
|
||||
::tip{icon=""}
|
||||
✨ Ajoutez le label de watchtower dans chaque conteneur afin d'automatiser les mises à jour
|
||||
✨ Ajoutez le label Watchtower à chaque conteneur pour automatiser les mises à jour
|
||||
|
||||
```yaml [compose.yaml]
|
||||
services:
|
||||
plex:
|
||||
#...
|
||||
labels:
|
||||
|
||||
- com.centurylinklabs.watchtower.enable=true
|
||||
|
||||
tautulli:
|
||||
#...
|
||||
labels:
|
||||
|
||||
- com.centurylinklabs.watchtower.enable=true
|
||||
```
|
||||
```yaml [compose.yaml]
|
||||
---
|
||||
services:
|
||||
jellyfin:
|
||||
#...
|
||||
labels:
|
||||
- com.centurylinklabs.watchtower.enable=true
|
||||
```
|
||||
::
|
||||
|
||||
Renseignez le `.env` avec les variables ci-dessous
|
||||
### Renseigner vos variables d'environnement
|
||||
|
||||
Renseignez votre fichier `.env` avec les variables ci-dessous :
|
||||
|
||||
```properties [.env]
|
||||
PUID=
|
||||
@@ -191,202 +166,241 @@ GUID=
|
||||
MEDIA_PATH=
|
||||
```
|
||||
|
||||
| Variable | Valeur | Exemples |
|
||||
|-----------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------|
|
||||
| `PUID`{lang=properties} | A renseigner avec les infos de votre user (trouvables via la commande `id nomdutilisateur`{lang=shell}) | `1000` |
|
||||
| `GUID`{lang=properties} | A renseigner avec les infos de votre user (trouvables via la commande `id nomdutilisateur`{lang=shell}) | `1000` |
|
||||
| `MEDIA_PATH`{lang=properties} | le chemin vers votre dossier media, ici : `/media`. Attention, il doit correspondre aussi à celui qu'utilise Qbittorrent. | `/media` |
|
||||
|
||||
Déployez la stack.
|
||||
|
||||
### Paramétrer Radarr
|
||||
Radarr est une app qui permet de requêter à votre place vos sources de torrent et de définir quel type de release vous souhaitez télécharger en priorité. Radarr permet aussi de mettre à jour vos films si une meilleure version est disponible.
|
||||
|
||||
Maintenant que vous avez déployé la stack, vous pouvez vous rendre sur `http://ipduserveur:7878`.
|
||||
|
||||
::caution
|
||||
|
||||
__En cas d'échec :__ vérifiez les règles de votre pare-feu.
|
||||
::
|
||||
|
||||
Créez vous un compte, choisissez bien *forms login*.
|
||||
|
||||
##### Ajouter un *root folder*
|
||||
|
||||
- Dans le menu à gauche, cliquez sur *Settings > Media Management*.
|
||||
- Ajoutez un *root folder*, choisisez `/media/movies`
|
||||
|
||||
::warning
|
||||
|
||||
__Attention :__ Si vous avez déjà des films dans `movies` issus de Qbittorrent, ne les ajoutez pas dans Sonarr si ce dernier vous le propose. Radarr risque de les modifier ce qui entrainerait l'arrêt du seed par Qbittorrent.
|
||||
::
|
||||
|
||||
##### Configurer les profils
|
||||
|
||||
Dans le menu *Settings > Profiles*, vous trouverez les profils par défaut de Radarr. Comprendre que lorsque vous faites une requete, vous demandez un de ces profils. Ainsi, radarr va chercher en priorité le parametre le plus élevé, puis s'il ne trouve pas, il va passer à celui d'en dessous etc. Vous pouvez par exemple régler comme ceci pour le profile "any", en décochant tout sauf ce qui est sur l'image, et en les mettant dans le même ordre. Avec ce profil "any", Radarr va chercher en priorité du 4K REMUX (meilleure qualité), puis s'il ne trouve pas, il va passer au critère du dessous.
|
||||
|
||||

|
||||
|
||||
##### Ajouter Qbittorrent
|
||||
|
||||
Dans *Settings > Downloads Clients* vous allez ajouter Qbittorrent.
|
||||
|
||||
- Renseignez le *Host* avec l'IP de votre serveur et précisez le port de la webui, si vous avez suivi mon tuto c'est le `5695`.
|
||||
- Renseignez le *Username* et le *Password* de votre interface Qbittorrent.
|
||||
- Cliquez sur *test*.
|
||||
- Si tout est ok, cliquez sur *save*.
|
||||
|
||||
##### Connecter à Plex
|
||||
|
||||
Dans *Settings > Connect*, ajoutez une nouvelle connexion, choisissez *Plex Media Server*.
|
||||
|
||||
- Dans *Host* mettez `plex` ou l'adresse IP de votre serveur.
|
||||
- Dans port mettez `32400`.
|
||||
- Cliquez sur le bouton bleu "authenticate with Plex.tv" et authentifiez vous avec votre compte Plex.
|
||||
- Appuyez sur le bouton *test*.
|
||||
- Si tout est ok, appuyez sur le bouton *save*.
|
||||
|
||||
##### Récupérer la clé API pour Prowlarr et Overserr
|
||||
|
||||
- Dans *Settings > General*, copiez la *API Key* et notez la précieusement.
|
||||
|
||||
### Paramétrer Sonarr
|
||||
Sonarr est une app qui permet de requêter à votre place vos sources de torrent et de définir quel type de release vous souhaitez télécharger en priorité. Radarr permet aussi de mettre à jour vos séries si une meilleure version est disponible.
|
||||
|
||||
- Rendez-vous sur `http://ipduserveur:8989`.
|
||||
- Suivez exactement les mêmes étapes que pour Radarr, et en *root folder* mettez `/media/tvseries`.
|
||||
|
||||
::caution
|
||||
|
||||
__En cas d'échec :__ vérifiez les règles de votre pare-feu.
|
||||
::
|
||||
|
||||
### Paramétrer Prowlarr
|
||||
Prowlarr est un proxy qui permet de gérer vos sources de torrents et de les passer à Radarr et Sonarr.
|
||||
|
||||
Rendez-vous sur `http://ipduserveur:9696` et créez vous un compte en choisissant bien *forms login*.
|
||||
|
||||
::caution
|
||||
|
||||
__En cas d'échec :__ vérifiez les règles de votre pare-feu.
|
||||
::
|
||||
|
||||
##### Ajouter une source
|
||||
|
||||
- Dans la section *Indexers*, ajoutez l'indexer de votre source de torrent.
|
||||
|
||||
##### Ajouter Radarr et Sonarr
|
||||
|
||||
Dans la section *Settings > Apps*, ajoutez Radarr et Sonarr avec les informations ci-dessous :
|
||||
|
||||
- Prowlarr Server : `http://prowlarr:9696` (ou remplacez prowlarr par l'IP de votre serveur)
|
||||
- Sonarr / Radarr Server : `http://sonarr:8989` ou `http://radarr:7878`(ou remplacez sonarr/radarr par l'IP de votre serveur)
|
||||
- API Key, la clé que vous avez notée pour Radarr et celle de Sonarr.
|
||||
- Appuyez sur *Test*.
|
||||
- Si tout va bien, appuyez sur *Save*.
|
||||
|
||||
### Paramétrer Bazarr
|
||||
Bazarr est une app qui permet de chercher automatiquement les bons sous-titre dans les langues souhaitez pour tout les films et séries que Radarr et Sonarr ajoutent pour vous.
|
||||
|
||||
Rendez-vous sur `http://ipduserveur:6767`.
|
||||
|
||||
::caution
|
||||
|
||||
__En cas d'échec :__ vérifiez les règles de votre pare-feu.
|
||||
::
|
||||
|
||||
Rendez-vous dans *Settings > General* et créez un identifiant et un mot de passe en utilisant le *forms login*.
|
||||
|
||||
#### Ajouter un profil de langage
|
||||
|
||||
- Dans *Settings > Languages* cliquez sur le bouton rose *Add new profile* et nommez le.
|
||||
- Cliquez sur le bouton rose *Add Languages* et ajoutez les langues que vous souhaitez, par exemple *French* et *English*.
|
||||
- Sauvegardez et quittez.
|
||||
- En bas de l'ecran dans *Default Language For Newly Added Show*, cochez les deux cases et renseignez le profil que vous venez de créer.
|
||||

|
||||
|
||||
- Enregistrez avec le bouton tout en haut de l'écran.
|
||||
|
||||
#### Ajouter des fournisseurs de sous-titre
|
||||
|
||||
- Dans *Settings > Providers*, ajoutez vos fournisseurs favoris, comme par exemple :
|
||||
|
||||

|
||||
|
||||
- Enregistrez avec le bouton tout en haut de l'écran.
|
||||
|
||||
#### Ajouter Radarr et Sonarr
|
||||
|
||||
- Rendez-vous dans *Settings > Sonarr*
|
||||
- Dans *Adress*, mettez `sonarr` ou l'adresse IP du serveur.
|
||||
- Dans *Port* mettez `8989`.
|
||||
- Dans *API Key* mettez la clé API de Sonarr.
|
||||
- Cliquez sur *Test*.
|
||||
- Enregistrez avec le bouton tout en haut de l'écran.
|
||||
|
||||
Faites de même avec Radarr.
|
||||
|
||||
### Paramétrer Overseerr
|
||||
|
||||
[Overseerr](https://overseerr.dev/) est une application qui permet de naviguer dans un catalogue de film et de faire des requetes à Sonarr et à Radarr. Il suffit de naviguer dans les films ou séries, puis de cliquer sur *Demander*, et le film ou la série sera automatiquement téléchargée selon les paramètres de Radarr ou de Sonarr. Si le film ou la série n'est pas sortie, cela sera automatiquement téléchargé lorsque cela sera disponible. Ainsi, les épisodes d'une séerie arrivent automatiquement au fur et à mesure dans Plex sans aucune intervention manuelle.
|
||||
|
||||

|
||||
|
||||
Rendez-vous sur `http://ipduserveur:5055` et authentifiez vous avec votre compte Plex.
|
||||
|
||||
::caution
|
||||
|
||||
__En cas d'échec :__ vérifiez les règles de votre pare-feu.
|
||||
::
|
||||
|
||||
#### Ajouter Radarr et Sonarr
|
||||
|
||||
Lorsque cela vous est demandé, ajoutez un serveur radarr :
|
||||
|
||||
- Cochez *serveur par défaut*.
|
||||
- __Nom du serveur :__ Radarr
|
||||
- __Nom d'hôte ou adresse IP :__ `radarr` ou l'adresse IP de votre serveur
|
||||
- __Port :__ `7878`.
|
||||
- __Clé d'API :__ la clé API de Radarr.
|
||||
- Cliquez sur *Tester* en bas.
|
||||
|
||||
Si tout va bien, continuez à renseigner les champs.
|
||||
|
||||
- __Profil de qualité :__ celui que vous avez configuré (par exemple, `any`).
|
||||
- __Dossier racine :__ le dossier de plex. Dans nos exemples : `/media/movies`.
|
||||
- __Disponibilité minimale :__ `Annoncé`. Ainsi, si un film n'est pas sorti, vous pouvez le demander et il sera automatiquement récupéré à sa sortie.
|
||||
- Cochez les 3 cases du bas.
|
||||
- Sauvegardez et continuez.
|
||||
|
||||
Puis faites de même avec Sonarr :
|
||||
|
||||
- Cochez *serveur par défaut*.
|
||||
- __Nom du serveur :__ Radarr
|
||||
- __Nom d'hôte ou adresse IP :__ `sonarr` ou l'adresse IP de votre serveur
|
||||
- __Port :__ `8989`.
|
||||
- __Clé d'API :__ la clé API de Sonarr.
|
||||
- Cliquez sur *Tester* en bas.
|
||||
|
||||
Si tout va bien, continuez à renseigner les champs.
|
||||
|
||||
- __Profil de qualité :__ celui que vous avez configuré (par exemple, `any`).
|
||||
- __Dossier racine :__ le dossier de plex. Dans nos exemples : `/media/tvseries`.
|
||||
- __Profil de langue :__ `Deprecated`.
|
||||
- Cochez les 4 cases du bas.
|
||||
- Sauvegardez et continuez.
|
||||
|
||||
Et voilà ! Vous n'avez plus qu'à faire une demande d'un film et d'une serie, puis de vérifier dans qbittorrent ou dans radarr/sonarr que tout va bien. Dans quelques minutes, votre media sera sur Plex !
|
||||
|
||||
## Exposer Overseerr avec Swag
|
||||
|
||||
Il peut etre intéressant d'exposer Overseerr, si vous souhaitez pouvoir faire des requêtes depuis l'exterieur sans VPN, ou si vous avez partagé votre Bibliothèque Plex à des utilisateurs et que vous souhaitez qu'ils aient accès à Overseerr.
|
||||
| Variable | Description | Exemple |
|
||||
|----------------|-------------------------------------------------------------------------------------------------|-------------|
|
||||
| `PUID` | À renseigner avec vos informations utilisateur (à vérifier avec `id votreutilisateur`) | `1000` |
|
||||
| `GUID` | Idem | `1000` |
|
||||
| `MEDIA_PATH` | Chemin de votre dossier média, ici `/media`. Il doit correspondre à celui utilisé par Qbittorrent. | `/media` |
|
||||
|
||||
::note
|
||||
|
||||
Nous partons du principe que vous avez le sous-domaine `films.mondomaine.fr` avec un `CNAME` qui pointe vers `films.fr` dans [zone DNS](/general/networking/dns). Et que bien sûr, [à moins que vous utilisiez Cloudflare Zero Trust](/serveex/security/cloudflare), le port `443` de votre box pointe bien sur le port `443` de votre serveur dans [les règles NAT](/general/networking/nat).
|
||||
Contrairement aux autres conteneurs présentés ici, l'image de Seerr n'utilise pas `PUID`/`PGID`, elle tourne toujours en UID `1000`. Assurez-vous que `/srv/docker/seerr/config` appartient bien à cet utilisateur, sinon Seerr ne pourra pas y écrire :
|
||||
|
||||
```bash [Terminal]
|
||||
sudo chown -R 1000:1000 /srv/docker/seerr/config
|
||||
```
|
||||
::
|
||||
|
||||
Rendez-vous dans dockge, et éditez le compose de SWAG en ajoutant le réseau d'overseer, qui est celui de Plex car dans la stack Plex :
|
||||
Déployez la stack.
|
||||
|
||||
### Terminé !
|
||||
::
|
||||
|
||||
### Paramétrer Radarr
|
||||
|
||||
Radarr interroge vos sources torrent et permet de définir le type de releases à privilégier. Il peut aussi mettre à niveau vos films si une meilleure version est disponible.
|
||||
|
||||
Une fois déployé, allez sur `http://ipdevotreserveur:7878`.
|
||||
|
||||
::caution
|
||||
|
||||
__Si ça ne marche pas :__ vérifiez les règles de votre pare-feu.
|
||||
::
|
||||
|
||||
Créez un compte et choisissez *forms login*.
|
||||
|
||||
::steps{level="4"}
|
||||
#### Ajouter un *root folder*
|
||||
|
||||
- Allez dans *Settings > Media Management*.
|
||||
- Ajoutez un root folder et sélectionnez `/media/movies`.
|
||||
|
||||
::warning
|
||||
|
||||
__Attention :__ si vous avez déjà des films dans `movies` provenant de Qbittorrent, ne laissez pas Radarr les ajouter. Radarr pourrait les modifier, ce qui interromprait le seed dans Qbittorrent.
|
||||
::
|
||||
|
||||
#### Configurer les profils
|
||||
|
||||
Allez dans *Settings > Profiles*. Ce sont vos profils de qualité par défaut. Quand vous faites une demande, vous en choisissez un. Par exemple, configurez le profil « any » en décochant tout sauf ce qui apparaît sur l'image, et en les ordonnant en conséquence. Radarr cherchera ainsi d'abord du 4K REMUX, puis descendra dans la liste si ce n'est pas disponible.
|
||||
|
||||

|
||||
|
||||
#### Ajouter Qbittorrent
|
||||
|
||||
Dans *Settings > Download Clients*, ajoutez Qbittorrent.
|
||||
|
||||
- Utilisez l'IP de votre serveur comme *Host* et le port `5695` si vous suivez ce guide.
|
||||
- Renseignez vos *Username* et *Password* Qbittorrent.
|
||||
- Cliquez sur *Test*.
|
||||
- Si le test réussit, cliquez sur *Save*.
|
||||
|
||||
#### Connecter à Jellyfin
|
||||
|
||||
Récupérez d'abord une clé API dans Jellyfin : connectez-vous en administrateur, allez dans *Dashboard > Advanced > API Keys*, et ajoutez-en une nouvelle.
|
||||
|
||||
Puis, dans Radarr, allez dans *Settings > Connect*, ajoutez une nouvelle connexion et choisissez *Jellyfin*.
|
||||
|
||||
- Utilisez `jellyfin` ou l'IP de votre serveur comme *Host*.
|
||||
- Port : `8096`
|
||||
- Collez la clé API générée.
|
||||
- Cliquez sur *Test*, puis sur *Save* si le test réussit.
|
||||
|
||||
#### Récupérer la clé API pour Prowlarr et Seerr
|
||||
|
||||
- Allez dans *Settings > General* et copiez votre *API Key* pour plus tard.
|
||||
|
||||
#### Terminé !
|
||||
::
|
||||
|
||||
### Paramétrer Sonarr
|
||||
|
||||
Sonarr interroge les sources torrent et définit le type de releases de séries à privilégier. Il met aussi à niveau les séries quand de meilleures versions sont disponibles.
|
||||
|
||||
- Allez sur `http://ipdevotreserveur:8989`.
|
||||
- Suivez les mêmes étapes que pour Radarr, mais avec `/media/tvseries` comme root folder.
|
||||
|
||||
::caution
|
||||
|
||||
__Si ça ne marche pas :__ vérifiez les règles de votre pare-feu.
|
||||
::
|
||||
|
||||
### Paramétrer Prowlarr
|
||||
|
||||
Prowlarr sert de proxy pour gérer vos indexeurs torrent et les relier à Radarr et Sonarr.
|
||||
|
||||
Allez sur `http://ipdevotreserveur:9696` et créez un compte, en utilisant *forms login*.
|
||||
|
||||
::caution
|
||||
|
||||
__Si ça ne marche pas :__ vérifiez les règles de votre pare-feu.
|
||||
::
|
||||
|
||||
::steps{level="4"}
|
||||
#### Ajouter une source
|
||||
|
||||
- Allez dans la section *Indexers* et ajoutez votre indexeur torrent.
|
||||
|
||||
#### Ajouter Radarr et Sonarr
|
||||
|
||||
Dans *Settings > Apps*, ajoutez Radarr et Sonarr avec les informations suivantes :
|
||||
|
||||
- Serveur Prowlarr : `http://prowlarr:9696` (ou l'IP du serveur)
|
||||
- Serveur Sonarr / Radarr : `http://sonarr:8989` ou `http://radarr:7878`
|
||||
- API Key : celle copiée depuis Radarr et Sonarr.
|
||||
- Cliquez sur *Test*, puis sur *Save* si tout se passe bien.
|
||||
|
||||
#### Terminé !
|
||||
::
|
||||
|
||||
### Paramétrer Bazarr
|
||||
Bazarr est une application qui recherche automatiquement les bons sous-titres, dans les langues de votre choix, pour tous les films et séries ajoutés par Radarr et Sonarr.
|
||||
|
||||
Allez sur `http://ipdevotreserveur:6767`.
|
||||
|
||||
::caution
|
||||
|
||||
__Si ça ne marche pas :__ vérifiez les règles de votre pare-feu.
|
||||
::
|
||||
|
||||
Allez dans *Settings > General* et créez un identifiant et un mot de passe en utilisant *forms login*.
|
||||
|
||||
::steps{level="4"}
|
||||
#### Ajouter un profil de langage
|
||||
|
||||
- Dans *Settings > Languages*, cliquez sur le bouton rose *Add new profile* et nommez-le.
|
||||
- Cliquez sur le bouton rose *Add Languages* et ajoutez vos langues préférées, par exemple *French* et *English*.
|
||||
- Enregistrez et quittez.
|
||||
- En bas de l'écran, sous *Default Language For Newly Added Show*, cochez les deux cases et sélectionnez le profil que vous venez de créer.
|
||||

|
||||
|
||||
- Enregistrez avec le bouton en haut de l'écran.
|
||||
|
||||
#### Ajouter des fournisseurs de sous-titres
|
||||
|
||||
- Dans *Settings > Providers*, ajoutez vos fournisseurs préférés, par exemple :
|
||||
|
||||

|
||||
|
||||
- Enregistrez avec le bouton en haut de l'écran.
|
||||
|
||||
#### Ajouter Radarr et Sonarr
|
||||
|
||||
- Allez dans *Settings > Sonarr*
|
||||
- Dans *Address*, saisissez `sonarr` ou l'adresse IP de votre serveur.
|
||||
- Dans *Port*, saisissez `8989`.
|
||||
- Dans *API Key*, saisissez la clé API de Sonarr.
|
||||
- Cliquez sur *Test*.
|
||||
- Enregistrez avec le bouton en haut de l'écran.
|
||||
|
||||
Répétez les mêmes étapes pour Radarr.
|
||||
|
||||
#### Terminé !
|
||||
::
|
||||
|
||||
### Paramétrer Seerr
|
||||
|
||||
[Seerr](https://seerr.dev/) (le successeur unifié d'Overseerr et de Jellyseerr) est une application qui permet de parcourir un catalogue de films et d'envoyer des demandes à Sonarr et Radarr. Parcourez les films ou séries, cliquez sur *Request*, et le média sera automatiquement téléchargé selon vos réglages Radarr ou Sonarr. Si le titre n'est pas encore sorti, il sera téléchargé automatiquement dès sa disponibilité. Ainsi, les épisodes d'une série apparaissent dans Jellyfin sans aucune intervention manuelle.
|
||||
|
||||
Allez sur `http://ipdevotreserveur:5055`, choisissez *Jellyfin* comme serveur multimédia, et connectez-vous avec votre compte administrateur Jellyfin.
|
||||
|
||||
::caution
|
||||
|
||||
__Si ça ne marche pas :__ vérifiez les règles de votre pare-feu.
|
||||
::
|
||||
|
||||
::steps{level="4"}
|
||||
#### Ajouter Radarr
|
||||
|
||||
Quand la question est posée, ajoutez un serveur Radarr :
|
||||
|
||||
- Cochez *Default server*.
|
||||
- __Server name :__ Radarr
|
||||
- __Hostname or IP address :__ `radarr` ou l'IP de votre serveur
|
||||
- __Port :__ `7878`
|
||||
- __API Key :__ la clé API de Radarr
|
||||
- Cliquez sur *Test* en bas.
|
||||
|
||||
Si le test réussit, continuez de remplir les champs :
|
||||
|
||||
- __Quality Profile :__ celui que vous avez configuré (par exemple `any`)
|
||||
- __Root Folder :__ le dossier Jellyfin. Dans nos exemples : `/media/movies`
|
||||
- __Minimum Availability :__ `Announced`. Cela permet de demander des contenus non sortis et de les télécharger dès leur sortie.
|
||||
- Cochez les 3 cases en bas.
|
||||
- Enregistrez et continuez.
|
||||
|
||||
#### Ajouter Sonarr
|
||||
|
||||
Faites maintenant de même pour Sonarr :
|
||||
|
||||
- Cochez *Default server*.
|
||||
- __Server name :__ Sonarr
|
||||
- __Hostname or IP address :__ `sonarr` ou l'IP de votre serveur
|
||||
- __Port :__ `8989`
|
||||
- __API Key :__ la clé API de Sonarr
|
||||
- Cliquez sur *Test* en bas.
|
||||
|
||||
Si le test réussit, continuez de remplir les champs :
|
||||
|
||||
- __Quality Profile :__ celui que vous avez configuré (par exemple `any`)
|
||||
- __Root Folder :__ le dossier Jellyfin. Dans nos exemples : `/media/tvseries`
|
||||
- __Language Profile :__ `Deprecated`
|
||||
- Cochez les 4 cases en bas.
|
||||
- Enregistrez et continuez.
|
||||
|
||||
#### Terminé !
|
||||
::
|
||||
|
||||
Et voilà ! Demandez un film ou une série, puis regardez dans qBittorrent ou Radarr/Sonarr. En quelques minutes, votre média sera disponible sur Jellyfin !
|
||||
|
||||
## Exposer Seerr avec SWAG
|
||||
|
||||
Il peut être utile d'exposer Seerr si vous voulez envoyer des demandes depuis l'extérieur sans VPN, ou si vous avez partagé votre bibliothèque Jellyfin et voulez que vos proches aient accès à Seerr.
|
||||
|
||||
::warning
|
||||
|
||||
Seerr n'a pas d'authentification à deux facteurs intégrée. Ne l'exposez que si vous utilisez une solution d'authentification robuste comme [TinyAuth](/serveex/security/tinyauth) ou [Authentik](/serveex/advanced/authentik). Sinon, ne l'exposez pas avec SWAG, utilisez plutôt un VPN comme [Wireguard](/serveex/core/wireguard).
|
||||
::
|
||||
|
||||
::note
|
||||
|
||||
Nous partons du principe que vous avez le sous-domaine `films.mondomaine.fr` avec un `CNAME` pointant vers `films.fr` dans votre [zone DNS](/general/networking/dns). Et que, [à moins d'utiliser Cloudflare Zero Trust](/serveex/security/cloudflare), le port `443` de votre box est redirigé vers le port `443` de votre serveur via les [règles NAT](/general/networking/nat).
|
||||
::
|
||||
|
||||
::steps{level="3"}
|
||||
### Ajouter le réseau de Seerr à SWAG
|
||||
|
||||
Allez dans Dockge, modifiez le fichier compose de SWAG, et ajoutez le réseau de Seerr, qui est le même que celui de Jellyfin (puisqu'il est dans la stack Jellyfin) :
|
||||
|
||||
```yaml [compose.yaml]
|
||||
---
|
||||
@@ -394,40 +408,42 @@ services:
|
||||
swag:
|
||||
container_name: # ...
|
||||
# ...
|
||||
networks: # Relie le conteneur au réseau custom
|
||||
networks: # Connects the container to a custom network
|
||||
# ...
|
||||
- plex # Nom du réseau déclaré dans la stack
|
||||
|
||||
networks: # Définit le réseau custom
|
||||
- jellyfin # Name of the network declared in the stack
|
||||
|
||||
networks: # Defines the custom network
|
||||
# ...
|
||||
plex: # Nom du réseau déclaré dans la stack
|
||||
name: plex_default # Nom véritable du réseau externe
|
||||
external: true # Précise que c'est un réseau à rechercher en externe
|
||||
jellyfin: # Name of the declared network
|
||||
name: jellyfin_default # Actual name of the external network
|
||||
external: true # Indicates it’s an external network
|
||||
```
|
||||
|
||||
Relancez la stack en cliquant sur "déployer" et patientez le temps que SWAG soit complètement opérationnel.
|
||||
Redémarrez la stack en cliquant sur « Deploy » et attendez que SWAG soit pleinement opérationnel.
|
||||
|
||||
::note
|
||||
|
||||
Ici nous partons du principe que le nom du réseau de Tautulli est `plex_default`. Vous pouvez vérifier que la connexion est opérationnelle en visitant le dashboard de SWAG en tapant `http://ipduserveur:81`.
|
||||
Nous partons ici du principe que le réseau de Jellyfin s'appelle `jellyfin_default`. Vous pouvez vérifier que la connexion fonctionne en visitant le tableau de bord de SWAG sur `http://ipdevotreserveur:81`.
|
||||
::
|
||||
|
||||
Créez le fichier `films.subdomain.conf` et éditez le :
|
||||
### Créer le fichier subdomain.conf
|
||||
|
||||
Créez et modifiez le fichier `films.subdomain.conf` :
|
||||
|
||||
::tip{icon="" to="/serveex/files/file-browser-quantum"}
|
||||
✨ __Astuce :__ vous pouvez utiliser **File Browser Quantum** pour naviguer dans vos fichier et éditer vos documents au lieu d'utiliser les commandes du terminal.
|
||||
✨ __Astuce :__ vous pouvez utiliser **File Browser Quantum** pour naviguer et modifier vos fichiers plutôt que des commandes dans le terminal.
|
||||
::
|
||||
|
||||
```bash [Terminal]
|
||||
sudo nano /srv/docker/swag/config/nginx/proxy-confs/films.subdomain.conf
|
||||
```
|
||||
|
||||
Collez la configuration suivante :
|
||||
Collez ce qui suit :
|
||||
|
||||
```nginx [films.subdomain.conf]
|
||||
## Version 2024/07/16
|
||||
# make sure that your overseerr container is named overseerr
|
||||
# make sure that your dns has a cname set for overseerr
|
||||
# make sure that your seerr container is named seerr
|
||||
# make sure that your dns has a cname set for seerr
|
||||
|
||||
server {
|
||||
listen 443 ssl;
|
||||
@@ -464,17 +480,17 @@ server {
|
||||
|
||||
include /config/nginx/proxy.conf;
|
||||
include /config/nginx/resolver.conf;
|
||||
set $upstream_app overseerr;
|
||||
set $upstream_app seerr;
|
||||
set $upstream_port 5055;
|
||||
set $upstream_proto http;
|
||||
proxy_pass $upstream_proto://$upstream_app:$upstream_port;
|
||||
|
||||
}
|
||||
|
||||
location ~ (/overseerr)?/api {
|
||||
location ~ (/seerr)?/api {
|
||||
include /config/nginx/proxy.conf;
|
||||
include /config/nginx/resolver.conf;
|
||||
set $upstream_app overseerr;
|
||||
set $upstream_app seerr;
|
||||
set $upstream_port 5055;
|
||||
set $upstream_proto http;
|
||||
proxy_pass $upstream_proto://$upstream_app:$upstream_port;
|
||||
@@ -483,13 +499,104 @@ server {
|
||||
}
|
||||
```
|
||||
|
||||
Enregistrez avec :kbd{value="Ctrl+O"} puis :kbd{value="Entrée"}, puis quittez avec :kbd{value="Ctrl+X"}.
|
||||
Appuyez sur :kbd{value="Ctrl+O"}, puis :kbd{value="Enter"} pour enregistrer, et :kbd{value="Ctrl+X"} pour quitter.
|
||||
|
||||
Patientez quelques minutes puis tapez dans votre navigateur `http://films.mondomaine.fr`.
|
||||
Attendez quelques minutes, puis visitez `http://films.mondomaine.fr` dans votre navigateur.
|
||||
|
||||
### Terminé !
|
||||
::
|
||||
|
||||
::caution
|
||||
|
||||
__En cas d'échec :__ vérifiez les règles de votre pare-feu.
|
||||
__Si ça ne marche pas :__ vérifiez les règles de votre pare-feu.
|
||||
::
|
||||
|
||||
Et voilà, vous avez exposé Overseerr !
|
||||
Et voilà, Seerr est maintenant accessible publiquement !
|
||||
|
||||
## Protéger Seerr avec TinyAuth
|
||||
Ajoutez la vérification forward-auth de [TinyAuth](/serveex/security/tinyauth) directement dans `films.subdomain.conf`, de la même façon que dans [le tutoriel TinyAuth](/serveex/security/tinyauth#protecting-an-app-via-reverse-proxy). L'interface web (`/`) reçoit la vérification, `/api` en est exclu, puisque les appels d'API de Seerr (et tout ce qui s'y intègre) ne peuvent pas faire de connexion interactive dans un navigateur :
|
||||
|
||||
```nginx [films.subdomain.conf]{24-36,39-40}
|
||||
## Version 2024/07/16
|
||||
# make sure that your seerr container is named seerr
|
||||
# make sure that your dns has a cname set for seerr
|
||||
|
||||
server {
|
||||
listen 443 ssl;
|
||||
listen [::]:443 ssl;
|
||||
|
||||
server_name films.*;
|
||||
|
||||
include /config/nginx/ssl.conf;
|
||||
|
||||
client_max_body_size 0;
|
||||
|
||||
# enable for ldap auth (requires ldap-location.conf in the location block)
|
||||
#include /config/nginx/ldap-server.conf;
|
||||
|
||||
# enable for Authelia (requires authelia-location.conf in the location block)
|
||||
#include /config/nginx/authelia-server.conf;
|
||||
|
||||
# enable for Authentik (requires authentik-location.conf in the location block)
|
||||
#include /config/nginx/authentik-server.conf;
|
||||
|
||||
location /tinyauth {
|
||||
internal;
|
||||
proxy_pass http://tinyauth:3000/api/auth/nginx;
|
||||
proxy_pass_request_body off;
|
||||
proxy_set_header Content-Length "";
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header X-Forwarded-Host $http_host;
|
||||
proxy_set_header X-Forwarded-Uri $request_uri;
|
||||
}
|
||||
|
||||
location @tinyauth_login {
|
||||
return 302 https://tinyauth.mondomaine.fr/login?redirect_uri=$scheme://$http_host$request_uri;
|
||||
}
|
||||
|
||||
location / {
|
||||
auth_request /tinyauth;
|
||||
error_page 401 = @tinyauth_login;
|
||||
|
||||
# enable the next two lines for http auth
|
||||
#auth_basic "Restricted";
|
||||
#auth_basic_user_file /config/nginx/.htpasswd;
|
||||
|
||||
# enable for ldap auth (requires ldap-server.conf in the server block)
|
||||
#include /config/nginx/ldap-location.conf;
|
||||
|
||||
# enable for Authelia (requires authelia-server.conf in the server block)
|
||||
#include /config/nginx/authelia-location.conf;
|
||||
|
||||
# enable for Authentik (requires authentik-server.conf in the server block)
|
||||
#include /config/nginx/authentik-location.conf;
|
||||
|
||||
include /config/nginx/proxy.conf;
|
||||
include /config/nginx/resolver.conf;
|
||||
set $upstream_app seerr;
|
||||
set $upstream_port 5055;
|
||||
set $upstream_proto http;
|
||||
proxy_pass $upstream_proto://$upstream_app:$upstream_port;
|
||||
|
||||
}
|
||||
|
||||
location ~ (/seerr)?/api {
|
||||
include /config/nginx/proxy.conf;
|
||||
include /config/nginx/resolver.conf;
|
||||
set $upstream_app seerr;
|
||||
set $upstream_port 5055;
|
||||
set $upstream_proto http;
|
||||
proxy_pass $upstream_proto://$upstream_app:$upstream_port;
|
||||
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
::note{to="/serveex/security/tinyauth#exposing-tinyauth-with-swag"}
|
||||
|
||||
Le bloc `location /tinyauth` s'exécute dans le conteneur de SWAG lui-même, SWAG doit donc être sur le réseau Docker de TinyAuth pour le joindre par son nom (`tinyauth` ici). Cela devrait déjà être en place depuis **l'exposition de TinyAuth**. Si vous rencontrez une erreur, revérifiez que le fichier compose de SWAG a toujours ce réseau rattaché.
|
||||
::
|
||||
|
||||
::tip{icon=""}
|
||||
✨ Vous pouvez protéger cette application avec [Authentik](/serveex/advanced/authentik) plutôt que TinyAuth, en ouvrant `films.subdomain.conf` et en retirant le `#` devant `include /config/nginx/authentik-server.conf;`{lang=nginx} et `include /config/nginx/authentik-location.conf;`{lang=nginx}. N'oubliez pas de [créer une application et un provider dans Authentik](/serveex/advanced/authentik#protecting-an-app-via-reverse-proxy).
|
||||
::
|
||||
|
||||
Reference in New Issue
Block a user