Comment installer le serveur multimédia Serviio sur Raspberry Pi
Objectif
Installer le service multimédia Serviio sur Raspberry PiExigences
- Un Raspberry Pi avec une installation fonctionnelle de Raspbian "Stretch"
- Privilèges root
Difficulté
FACILEConventions
- # - nécessite que les commandes linux données soient exécutées avec les privilèges root soit directement en tant qu'utilisateur root, soit en utilisant la
sudo
commande - $ - nécessite que les commandes linux données soient exécutées en tant qu'utilisateur normal non privilégié
introduction
Serviio est un serveur multimédia écrit en java. Il est disponible en deux versions: la version gratuite (malheureusement gratuite comme dans la bière) et la version "pro", qui vient avec quelques fonctionnalités supplémentaires comme l'accès à distance. Dans ce tutoriel, nous couvrirons l'installation de Serviio sur un Raspberry Pi exécutant une version minimale de Raspbian "Stretch".Installation de dépendances
Serviio est écrit en java, donc nous devons installer le kit de développement java pour pouvoir l'utiliser. Il existe deux versions du JDK dans les référentiels Raspbian Stretch: la version open source, publiée sousGPLv2
licence, appelée OpenJDK
, et la version commerciale propriétaire d'Oracle (le package est en fait appelé oracle-java8-jdk). Les deux devraient fonctionner correctement, mais dans ce tutoriel, nous utiliserons le premier.# apt-get update && apt-get install --no-install-recommends openjdk-8-jdk ffmpeg x264
Prenez et installez Serviio
Maintenant que nous avons installé tous les packages nécessaires, nous devons saisir l'archive Serviio: puisque nous travaillons sur une machine sans tête, nous allons utiliserwget
pour accomplir la tâche. Par conséquent, nous exécutons:wget http://download.serviio.org/releases/serviio-1.9-linux.tar.gzUne fois le téléchargement terminé, nous pouvons procéder à l'installation réelle de Serviio. Nous allons extraire le contenu de l'archive tar à l'intérieur du
/opt
répertoire: vous pouvez évidemment en choisir un autre, mais / opt est classiquement utilisé pour héberger des applications tierces autonomes. Continuons:# tar -xvzf serviio-1.9-linux.tar.gz -C /optL'
-C
option (abréviation de --directory
) indique à tar de changer de répertoire pour le répertoire donné, avant d'effectuer les opérations.Créer le service systemd pour Serviio
Maintenant que Serviio est installé, vous pouvez observer que deux scripts existent à l'intérieur du/opt/serviio-1.9/bin
répertoire: serviio.sh
et serviio-console.sh. Le premier lance le serveur tandis que le second l'interface pour le contrôler.À ce stade, nous avons tout ce dont nous avons besoin pour créer le service systemd pour lancer serviio au démarrage du système. Pour accomplir cette tâche, nous devons écrire un petit fichier de service. Comme vous le savez sûrement, systemd est le nouveau système d'initialisation linux, maintenant adopté par toutes les principales distributions. Il a été la source de nombreuses discussions dans la communauté open source, mais il est sans aucun doute devenu la norme. Pour créer le service, lancez simplement votre éditeur préféré et créez un fichier appelé serviio.service contenant le texte ci-dessous:
[Unit]
Description=Serviio media Server
After=syslog.target network.target
[Service]
User=serviio
ExecStart=/opt/serviio-1.9/bin/serviio.sh
ExecStop=/opt/serviio-1.9/bin/serviio.sh -stop
[Install]
WantedBy=multi-user.target
Décrire la syntaxe d'un fichier de service systemd n'est pas le but de ce tutoriel, mais veuillez noter la ligne contenant l' User=serviio
instruction. Ce que nous voulons obtenir avec lui, c'est de spécifier que le démon doit s'exécuter avec les serviio
privilèges utilisateur et non en tant que root, pour des raisons de sécurité. L' serviio
utilisateur n'existe pas encore, nous allons donc le créer et lui donner la propriété du répertoire /opt/serviio-1.9 et de tous les fichiers qu'il contient:# useradd -r -U -s /sbin/nologin serviio && chown -R serviio:serviio /opt/serviio-1.9Vous connaissez probablement la
useradd
commande, mais pour plus de clarté, précisons à quoi servent les options fournies. L'
-r
option spécifie que nous voulons créer un fichier system account
. Les comptes système n'ont aucune information de vieillissement et un uid
avec une valeur <1000; pour ces comptes, aucun répertoire personnel n'est créé. L' -U
option demandera au programme de créer également un groupe avec le même nom que l'utilisateur et d'ajouter automatiquement l'utilisateur à ce groupe. Enfin avec
-s
, nous avons spécifié le shell pour l'utilisateur. Dans ce cas, nous avons utilisé /sbin/nologin
ce qui est un fake shell
. Nous l'avons utilisé pour des raisons de sécurité: de cette façon, l'utilisateur, le service s'exécutant sous, ne pourra jamais utiliser un véritable shell pour exécuter des commandes.Nous y sommes: nous avons créé l'utilisateur serviio et écrit notre dossier de service. Maintenant, nous devons le copier dans le
/usr/systemd/system
répertoire:# cp serviio.service /etc/systemd/systemPour activer le service que nous exécutons maintenant:
# systemctl enable serviio.serviceMaintenant, redémarrez le système: si tout se passe bien, le service serviio sera déjà actif lorsque le processus de démarrage sera terminé. Vous pouvez vérifier son état en exécutant:
$ systemctl status serviio.serviceSystemd vous informera de l'état du démon, par exemple:
● serviio.service - Serviio media Server Loaded: loaded (/etc/systemd/system/serviio.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2017-09-28 21:29:18 CEST; 31s ago Main PID: 420 (java) CGroup: /system.slice/serviio.service └─420 java -Xmx512M -Xms20M -XX:+UseG1GC -XX:GCTimeRatio=1 -XX:MinHeapFreeRatio=10 -XX:MaxHeapFreeRatio=20 -Djava.net.preferIPv4Stack=true [...]Comme vous pouvez le voir, le service est actif et fonctionne, tout s'est donc déroulé comme prévu. En cas de problème et de problème de lancement du service, vous pouvez utiliser les journaux fournis par la même commande pour résoudre les problèmes.
Si vous utilisez un pare - feu sur votre machine , vous devez également ouvrir les ports
8895/tcp
,
1900/udp
, 23423/tcp
et 23424/tcp
. Les deux derniers ports sont nécessaires respectivement pour contrôler la console et accéder au mediabrowserServio de contrôle
Pour contrôler serviio, nous avons peu d'options. Étant donné que nous fonctionnons sur une machine sans tête, nous ne pouvons pas accéder à la console graphique, mais nous pouvons accéder à l'interface Web, en naviguant vershttp://yourmachineip:23423/console/
une autre machine dans le même réseau local ou en utilisant des applications tierces telles que l'application Android "ServiiDroid".Une liste complète des options possibles sont disponibles ici:
http://serviio.org/apps"
. Si vous utilisez la version "pro" de serviio, vous pourrez également explorer votre catalogue en utilisant le mediabrowser intégré accessible à http://yourmachineip:23424/mediabrowser/
.