Installation de la stack "Édition-Vidéos"
============

Bienvenue sur mon nouveau tutoriel. Celui-ci, je l'espere va vous apprendre à installer Handbrake, Mediainfo, Avidemux, MakeMKV et MKVToolNix simplement via docker.

Cette stack docker-compose contient les logiciels suivants :
| Nom du service | Site Officiel | Dépot utilisé* |
| ------ | ------ | ------ |
| Handbrake | [Handbrake.fr](https://handbrake.fr/) | [jlesage](https://github.com/jlesage/docker-handbrake) |
| Mediainfo | [MediaArea](https://mediaarea.net/fr/MediaInfo) | [jlesage](https://github.com/jlesage/docker-mediainfo) |
| Avidemux | [Fixounet](http://fixounet.free.fr/avidemux/) | [jlesage](https://github.com/jlesage/docker-avidemux) |
| MakeMKV | [GuinpinSoft](http://makemkv.com/) | [jlesage](https://github.com/jlesage/docker-makemkv) |
| MKVToolNix | [Moritz Bunkus](https://mkvtoolnix.download/) | [jlesage](https://github.com/jlesage/docker-mkvtoolnix) |

## Table des matières 
- 1. [Prérequis](#1-prérequis)
  - 1.a [Création des dossiers](#1-a-création-des-dossiers)
  - 1.b [Modifications du .env](#1-b-modifications-du-env)
  - 1.c [Transfert des fichiers dans /edition-videos](#1-c-transfert-des-fichiers-dans-edition-videos)
- 2. [Création des conteneurs](#2-création-des-conteneurs)
  - 2.a [Création du réseau](#2-a-création-du-réseau)
  - 2.b [Création des conteneurs](#2-b-création-des-conteneurs)
- 3. [Les Bases](#3-les-bases)
  - 3.a [Commandes de bases ( Docker )](#3-a-commandes-de-bases-docker)
  - 3.b [Accès aux interfaces ( WebUI )](#3-b-accès-aux-interfaces-webui)
- 4. Dépannage ( Ce construira au fur et a mesure des questions )

## 1. Prérequis

- Cette stack est concu pour fonctionner dans un dossier `edition-videos`, avec l'architecture suivante :
```
edition-videos ---- handbrake ------- config
                 |                 |_ watch
                 |                 |_ output
                 |
                 |-- mediainfo ------ config
                 |
                 |-- avidemux ------- config
                 |
                 |-- makemkv -------- config
                 |                 |_ output
                 |
                 |-- mkvtoolnix ----- config
```

- Dans le paragraphe 1.a nous allons les créer avec une ligne de commande, et dans le paragraphe 1.b nous allons modifier le .env afin qu'il utilise bien ces dossiers ( en fonction de leurs localisation sur votre machine ).

### 1.a. Création des dossiers

- Avec `cd` aller dans le dossier de votre choix, par exemple "docker".
Exemple : Si votre dossier "docker" ce trouve dans /volume1, alors la commande sera :
`cd /volume1/docker`

- Maintenant que nous sommes dans le bon dossier, nous allons executer la commande suivante pour créer d'un coup, toute l'architecture nécessaire :

`mkdir -p edition-videos/handbrake/{config,watch,output} edition-videos/mediainfo/config edition-videos/avidemux/config edition-videos/makemkv/{config,output} edition-videos/mkvtoolnix/config`

### 1.b. Modifications des .env
- Récupérer sur votre machine les fichiers [.env](https://gitea.zoz-serv.org/Zoz/plex_fr_discord_repo/src/branch/master/docker-compose/handbrake-mediainfo-avidemux-makemkv-mkvtoolnix/.env) et [docker-compose.yml](https://gitea.zoz-serv.org/Zoz/plex_fr_discord_repo/src/branch/master/docker-compose/handbrake-mediainfo-avidemux-makemkv-mkvtoolnix/docker-compose.yml).

> Vous pouvez faire un clic droit - Enregistrer sous ... sur les liens ci-dessus pour télécharger les fichiers.

- Dans le fichier `.env` vous allez devoir modifier plusieurs chose :

**PUID et PGID** devront correspondre aux ID de votre utilisateurs, plus d'info ici : [Connaitre le PUID / PGID d'un utilisateur](https://www.forum-nas.fr/viewtopic.php?f=56&t=13213)

**RACINE** correspond au chemin vers le dossier edition-videos créé a l'étape 1.a. 
Dans ce cas, c'est : `/volume1/docker/edition-videos`

**RACINE** correspond au chemin vers votre dossiers de médias.
Dans ce cas, c'est : `/storage`


### 1.c Transfert des fichiers dans /edition-videos
- Une fois les modifications effectuées, il faut transfert tous les fichiers ( .env et docker-compose.yml ) dans le dossier `/edition-videos` précédemment créé ! Par exemple, avec FileZilla.

## 2. Création des conteneurs
### 2.a Création du réseau
- On créé le reseau `edition-videos-network` necesaire au fonctionnement du conteneurs VPN :

```
docker network create edition-videos-network
```

### 2.b Création des conteneurs
Maintenant que votre "stack" est prete rendez-vous dans le dossier `edition-videos`, dans mon cas `/volume1/docker/edition-videos` :
```
cd /volume1/docker/edition-videos
```

## 3. Les Bases
Il est possible d'utilise n'importe qu'elle interface de gestion de conteneur*, ou SSH.

Voici quelques commandes de base :

**[Portainer](https://www.forum-nas.fr/viewtopic.php?f=56&t=14030) par exemple.*

### 3.a Commandes de bases ( Docker )
- Arreter un conteneur : `docker stop <nom_du_conteneur>`
Exemple pour le conteneur **edition-video_handbrake** : `docker stop edition-video_handbrake`

- Redémarrer un conteneur : `docker restart <nom_du_conteneur>`
Exemple pour le conteneur **edition-video_handbrake** : `docker restart edition-video_handbrake`

- Démarrer un conteneur : `docker start <nom_du_conteneur>`
Exemple pour le conteneur **edition-video_handbrake** : `docker start edition-video_handbrake`

- Supprimer un conteneur : `docker rm <nom_du_conteneur>`
Exemple pour le conteneur **edition-video_handbrake** : `docker rm edition-video_handbrake`

- Créer / Mettre à jour la "stack" : `docker-compose up -d`
Cette commande permet de créer la stack présent dans le fichier docker-compose.yml, les conteneurs non-existant seront créés, les modifiés seront mis à jour. 
> Note : Vous devez etre dans la dossier contenant le fichier docker-compose.yml pour que cette commande fonctionne.

### 3.b Accès aux interfaces ( WebUI )

- L'acces à chaque service se fait via une WebUI ( Interface Web ), sur un port quil lui est propre.
- Pour Handbrake, c'est le port `6800`. Donc l'adresse sera sous la forme : `http://IP_DE_LA_MACHINE:6800`
Exemple : Si l'adresse IP de votre machine est `192.168.1.10`, alors l'adresse d'accès sera : `http://192.168.1.10:6800`

- Ci-dessus la liste des ports des interfaces de chaque service :
| Service | Port |
| ------ | ------ |
| Handbrake | 6800 |
| Mediainfo | 6801 |
| Avidemux | 6802 |
| MakeMKV | 6803 |
| MKVToolNix | 6804 |

## 6. Aller plus loin
- Retrouvez ici des astuces pour aller "un peu plus loin" dans la configurations de vos conteneurs, avec par exemple, la méthode pour rajouter des montages ( dossier de votre serveur dans le conteneur ), ou régler la mise à jour automatique de vos conteneurs.

/!\ Depuis l'interface SSH, les commandes ci-dessous sont à executer en étant à la racine de votre dossier `edition-videos`.

A VENIR ...
