La gestion de sa librairie Kodi avec Docker.

Léger et efficace

Sommaire

Objectifs

  • Centraliser afin de synchroniser les éléments de sa médiathèque kodi

Prérequis: - Avoir une machine avec ip fixe qui accepte de lancer des containers docker - Utiliser un répertoire de stockage des media accessible par toutes les platines kodi (nfs, ftp, sftp, samba, etc…)

Je vous propose aujourd’hui un tuto pour barbus amateur de série et film. Je l’écris puisque je n’ai pas trouvé de réponse prête à appliquer sur la toile utilisant docker pour cet usage.

Mon hypothèse:

  • Le folk lambda hébergent ses vidéos et les gère avec plex/emby/jellyfin,
  • Le folks feignant installent docker-kodi-headless,
  • Les nerds n’ont pas besoin de ce tuto,
  • Reste quand même quelques autres qui doivent se débrouiller comme moi pour compiler différentes sources.

Je précise que je n’ai pas creusé la solution feignante, puisque je voulais passer sur docker tout en conservant ma base sql précédente voir ici pour en savoir plus sur la restauration d’une base sql.

Récupérer le container

Préparer le répertoire de son container mariadb, le lancer et autoriser un accès exterieur pour permettre à kodi de s’y connecter.

~$ mkdir -p /opt/kodi-mariadb
~$ chown -R DOCKER-USER:DOCKER-USER /opt/kodi-mariadb

Voir ici ou si vous avez des soucis de permission.

~$ docker create --name=mariadb -e PUID=1000 -e PGID=1000 -e MYSQL_ROOT_PASSWORD=XXXXXXXXXXXXXXXXXXXXX -e TZ=Europe/Paris -p 3306:3306 -v /opt/kodi-mariadb:/config --restart unless-stopped linuxserver/mariadb

Pour plus de détail c’est ici.

~$ docker ps -a

Mon container s’appelle d46737f22533, il faudra adapter à votre configuration.

~$ docker stop d46737f22533
~$ docker start d46737f22533
~$ nano /opt/kodi-mariadb/custom.cnf
      skip-grant-tables
      bind-address=0.0.0.0

~$ docker stop d46737f22533
~$ docker start d46737f22533

Configuration de mariadb

Créer la base qu’utilisera kodi, et informer les différentes platines de l’adresse de cette base sql.

~$ mysql -u root -p
      CREATE USER 'kodi' IDENTIFIED BY 'kodi';
      GRANT ALL ON *.* TO 'kodi';
      flush privileges;
~$ docker stop d46737f22533
~$ docker start d46737f22533

Configuration des platines Kodi

Cette dernière étape sera à reproduire sur toutes ses platines kodi (Voir ici).

~$ nano ~/.kodi/userdata/advancedsettings.xml
      <advancedsettings>
        <videodatabase>
          <type>mysql</type>
          <host>IP-DOCKER-MARIADB</host>
          <port>3306</port>
          <user>kodi</user>
          <pass>kodi</pass>
        </videodatabase>
        <musicdatabase>
          <type>mysql</type>
          <host>IP-DOCKER-MARIADB</host>
          <port>3306</port>
          <user>kodi</user>
          <pass>kodi</pass>
        </musicdatabase>
        <videolibrary>
          <importwatchedstate>true</importwatchedstate>
          <importresumepoint>true</importresumepoint>
        </videolibrary>
      </advancedsettings>