XBMC-Video-Server avec Docker

J’ai publié un nouveau conteneur. Celui-ci est directement lié à mon addiction aux films et aux séries. Comme tout addict qui se respecte je possède un serveur multimédia, matérialisé par un Raspberry Pi sur lequel j’ai installé la distribution OpenELEC basée sur XBMC.

Bien qu’OpenELEC offre le remote, cette fonctionnalité ne me convenait pas. Je cherchais un moyen pour streamer mes vidéos et je suis tombé sur le projet XBMC Video Server : qui permet de parcourir, télécharger et streamer les vidéos présentes sur le serveur.

Le conteneur embarque un serveur Apache avec PHP 5. L’installation suit à la lettre les instructions pour une Ubuntu 14.04.

Le démarrage d’Apache est orchestré par Supervisor.

Pour lancer le conteneur, il suffit de lancer la commande suivante:

docker run -d -P jahroots/docker-xbmc-video-server 

Le port 80 est le seul port exposé.

Les sources sont disponibles sur mon Github.

pyLoad avec Docker

Cela fait quelques temps déjà que je lis à droite et à gauche des articles sur Docker. Je trouve que c’est un outil très intéressant afin de tester des applications sans polluer sa machine.

Je me suis donc lancé sur un container plutôt simple. Ce dernier se contente de lancer pyLoad et un serveur ssh. Tout cela orchestré par Supervisor.

Pour mon container j’utilise une image Debian, sur laquelle je commence par installer:

RUN apt-get install -y python-crypto python-pycurl tesseract-ocr git openssh-server supervisor

J’ai décidé d’installer pyLoad depuis les sources disponibles sur Github.

RUN git clone https://github.com/pyload/pyload.git /opt/pyload

Ensuite j’ajoute :

  • le dossier de configuration de pyLoad, qui contient entre autres le fichier pyload.conf qui définit la configuration globale.

ADD pyload /opt/.pyload

  • le fichier de configuration de Supervisor: qui lance le server ssh et pyLoad en mode démon

ADD supervisord.conf /etc/supervisor/conf.d/supervisord.conf

Enfin :

  • Je crée un volume qui permettra à d’autres containers d’avoir accès aux fichiers téléchargés.

VOLUME ["/opt/downloads"]

  • J’expose les ports:
    • 8000: pour l’interface web de pyLoad
    • 7227: pour la remote
    • 22: pour les connexions ssh

 EXPOSE 22 8000 7227

  • La commande pour démarrer le service Supervisor:

CMD ["/usr/bin/supervisord","-c","/etc/supervisor/conf.d/supervisord.conf"]

 

Pour lancer le container, il suffit de lancer la commande suivante:

 docker run -d -P jahroots/docker-pyload

On peut ensuite vérifier que le container a été lancé avec: docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3ba228da04ad jahroots/docker-pyload:latest /usr/bin/supervisord 4 seconds ago Up 3 seconds 0.0.0.0:49165->22/tcp, 0.0.0.0:49166->7227/tcp, 0.0.0.0:49167->8000/tcp

On peut voir qu’on a une instance de l’image jahroots/docker-pyload:latest qui est lancée, et qu’on peut accéder à l’interface web de pyLoad à http://locahost:49167

 

Les sources sont disponibles sur mon Github.

Update: J’ai réalisé une mise à jour du conteneur afin de réduire un peu sur la taille de l’image. Il est désormais possible de se connecter en ssh[user:root,password:root].

 ssh -p 49165 root@[dockerIp]