Creation seedbox automatisation

De wiki mdd
Aller à la navigation Aller à la recherche
  • !*!*!*! BROUILLON *!*!*!*!*!

Nous allons utiliser à partir d'ici plusieurs outils, chacun ayant sa propre interface web. Il va donc commencer à jouer avec les noms de domaine. Normalement, il y a déjà un enregistrement au nom de seedbox.nomdomaine.com, pour l'adresse 1.2.3.4. Dans l'interface de gestion de votre domaine, nous allons rajouter un enregistrement rutorrent.mondomaine.com, qui sera un CNAME (un alias) de seedbox.nomdomaine.com.

Nginx proxy manager[modifier]

Afin de gérer toutes les interfaces web, nous allons utiliser un outil appelé nginx-proxy-manager, et pour la première fois, nous allons utiliser docker et docker-compose.
Basculez sur l'utilisateur seed : sudo su - seed Et créez un répertoire docker-compose mkdir ~/docker-compose cd ~/docker-compose Créez un fichier docker-compose.yml

version: '2'
services:
  proxymanager:
    container_name: proxymanager
    image: jc21/nginx-proxy-manager:latest
    ports:
      - 8080:81
      - 80:80
      - 443:443
    volumes:
      - ./config.json:/app/config/production.json
      - ./data:/data
      - /letsencrypt:/etc/letsencrypt
  db:
    container_name: proxymanager_db
    image: mariadb:latest
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: "npm"
      MYSQL_DATABASE: "npm"
      MYSQL_USER: "npm"
      MYSQL_PASSWORD: "npm"
    volumes:
      - ./data/mysql:/var/lib/mysql

Créez un autre fichier config.json

{
  "database": {
    "engine": "mysql",
    "host": "db",
    "name": "npm",
    "user": "npm",
    "password": "npm",
    "port": 3306
  }
}

Puis tapez la commande docker-compose up -d Docker-compose va aller chercher les bonnes images docker, et les lancer avec les paramètres donnés. Au bout de quelques minutes, la main vous sera rendue. Vous pouvez constater que deux containers tournent en lançant la commande docker ps Rendez vous sur l'adresse http://seedbox.mondomaine.com:8080. Il faut s'authentifier avec [email protected] et le password changeme. Lors de la première connexion, il vous sera demandé de changer l'adresse mail et le password.

Configuration[modifier]

access list[modifier]

Tout d'abord, nous allons créer une "access list". C'est un couple login/password qui permettra de protéger l'accès à vos données. Cliquez sur "access lists" dans le menu du haut, puis "add access list"
Choisissez un nom pour l'access list (par exemple seedbox), puis ajoutez un utilisateur et son mot de passe. Cochez la case "satisfy any".

proxy host[modifier]

Nous allons maintenant créer un "hôte proxy". Cette étape sera répétée à chaque outil, gardez la bien en tête !

Pour cela, cliquez dans le menu du haut sur "hosts", puis sur "proxy hosts", et enfin sur "add proxy host"
Dans domain name, mettez rutorrent.mondomaine.com
Dans scheme, laissez http
Dans Forward name/ip, mettez 172.17.0.1 (l'interface par défaut de l'hôte pour docker)
Dans Forward port, mettez 8082 (le port de nginx)
Dans access list, choisissez seedbox.
Sélectionnez toutes les cases à cocher (Cache assets, etc...)
Puis cliquez sur l'onglet SSL.
Dans SSL Certificate, choisissez Request a new certificate with let's encrypt, et Sélectionnez toutes les cases à cocher (Force SSL, etc...). Validez, puis rendez vous sur http://rutorrent.mondomaine.com Vous devriez voir votre interface rutorrent, protégée par mot de passe :)

Attention, quelquefois, la partie ssl n'est pas prise en compte au moment de la création d'un proxy host. Il faut dans ce cas retourner dans la conf du proxy host et faire les manipulations une deuxième fois.

Sécurité, le retour[modifier]

Maintenant qu'on a un reverse proxy, on va commencer à fermer certaines choses. En effet, l'interface de rutorrent est protégée par mot de passe si on passe par le proxy manager, mais pas si on y accède depuis le port 8082.
Pour cela, nous allons utiliser l'outil ufw. Sortez de l'utilisateur seed (exit) pour repasser sur votre user, et : sudo apt install ufw Puis créer un fichier /opt/myUfw.sh

#!/bin/bash
ufw reset     # On annule les règles existantes
ufw enable    # On autorise ufw

# Vous pouvez ajouter un ufw allow from x.x.x.x si vous avez une ip fixe chez vous
# si vous êtes en ipv6, pensez aussi à l'ajouter

ufw allow from 172.16.0.0/12 # on autorise le trafic docker, important pour le proxymanager

ufw allow ssh
ufw allow http
ufw allow https
ufw allow 8080 # pour l'acces au proxymanager
ufw allow 50000 # port pour rtorrent

ufw default deny incoming # on interdit toute ce qui est en entrée (sauf les règles précédentes)
ufw default allow outgoing # on autorise tout ce qui est en sortie

Puis chmod 755 /opt/myUfw.sh /opt/myUfw.sh Il y aura des messages d'alertes, validez les, et continuez. Vous pouvez maintenant vérifier que vous avez accès à tout, et que l'accès en port 8082 est bien bloqué.

Préparation de rtorrent pour les futurs outils[modifier]

Nous allons installer des outils pour récupérer automatiquement des séries et des films. Ces outils vont "pousser" les torrents dans rtorrent, mais il faudra que rtorrent les déplace dans un répertoire donné quand le téléchargement sera terminé. Cela permettra à ces outils de récupérer le fichier et de le traiter.
Tout d'abord, créez un répertoire de destination : mkdir -p ~/torrent/complete Pour cela, dans rutorrent, cliquez sur la roue crantée bleue en haut (préférences), puis sur 'autotools'
Cochez la case "activez la fonctionnalié automove" et dans le filtre saisissez /films|series/ et cochez "ajoutez le label du torrent au chemin"
Dans le champ "Chemin vers le répertoire des torrents terminés", mettez /home/seed/torrent/complete/
Grace à ça, quand un torrent ayant le lable series ou films, sera déplacé dans le répertoire /home/seed/torrent/complete/films (ou series) quand il sera terminé (c'est à dire quand on aura téléchargé l'intégralité des paquets du torrent). Il restera en seed depuis ce répertoire.

Medusa[modifier]

Medusa est un outil de téléchargement automatique d'épisodes de série.
Pour l'installer : cd /opt sudo git clone https://github.com/pymedusa/Medusa.git /opt/medusa sudo chown -R seed: /opt/medusa sudo cp -v /opt/medusa/runscripts/init.systemd /etc/systemd/system/medusa.service Editez le fichier /etc/systemd/system/medusa.service pour changer User et Group (mettez seed à la place de medusa), puis systemctl enable medusa systemctl start medusa Créez une entrée dns (par exemple medusa.mondomaine.com), et configurez un proxy host comme fait précédemment sur ce nouveau domaine. La seule différence est le port (8081 par défaut pour medusa). Vous pouvez maintenant accéder à medusa via http://medusa.mondomaine.com
Avant de passer à la configuration, avec le user seed, créez le répertoire /home/seed/data/series qui recevra les séries renommées.

Configuration[modifier]

Je ne vais pas m'étendre sur la configuration de medusa, cela dépend beaucoup de ce que vous cherchez. Je vais juste montrer les points spécifiques à notre configuration. Une fois dans medusa, vous devez tout d'abord configurer vos trackers (dans config => search providers). Sur ce point, chacun met ce qu'il peut/veut.
Puis, nous allons configurer rtorrent. Allez dans config => search settings => onglet torrent search.
Vérifier que "search torrent" est coché. Dans la partie "Send .torrent files to", choisissez rtorrent (quelle surprise...), et dans "rTorrent host:port", mettez "scgi://localhost:5000/"
Dans la partie "Add label to torrent", mettez "series" (ce qui autorisera le automove de rtorrent), puis cliquez sur "test connection" pour vérifier que tout est ok. Sauvegardez.

Dans la partie config => post processing, assurez vous que "Scheduled Postprocessor" est bien coché. Le psot processing dir doit être "/home/seed/torrent/complete/series/" (c'est le répertoire qui contiendra les séries dont le téléchargement est terminé, pour éviter de traiter des séries en cours de téléchargement).
En processing method, choisissez hard link. C'est la méthode la plus rapide, et elle permet d'économiser de l'espace disque. Concrètement, l'épisode traité par medusa aura le même inode sur le système que le fichier en cours de seed.
Cochez "Create missing show directories", cela nous servira par la suite

Pour finir, dans "config => general", onglet "misc", dans la zone "Show root directories", ajoutez le répertoire /home/seed/data/series

Couchpotato[modifier]

Couchpotato remplit le même rôle que medusa, mais pour les films
sudo git clone https://github.com/RuudBurger/CouchPotatoServer.git /opt/couchpotato sudo chown -R seed: /opt/couchpotato/ sudo cp /opt/couchpotato/init/couchpotato.service /etc/systemd/system/couchpotato.service Dans le fichier /etc/systemd/system/couchpotato.service, changez le user et group pour seed, et mettez le bon chemin pour le démarrage : ExecStart=/opt/couchpotato/CouchPotato.py sudo systemctl enable couchpotato sudo systemctl start couchpotato Créez une entrée dns (par exemple couchpotato.mondomaine.com), et configurez un proxy host comme fait précédemment sur ce nouveau domaine. La seule différence est le port (5050 par défaut pour couchpotato). Vous pouvez maintenant accéder à couchpotato via http://couchpotato.mondomaine.com
Avant de passer à la configuration, avec le user seed, créez le répertoire /home/seed/data/films qui recevra les films renommées.