Tujuan
Instal layanan media Serviio di Raspberry Pi
Persyaratan
- Raspberry Pi dengan instalasi Raspbian "Stretch" yang berfungsi
- Hak istimewa root
Kesulitan
MUDAH
Konvensi
- # – memerlukan perintah linux yang diberikan untuk dieksekusi dengan hak akses root baik
langsung sebagai pengguna root atau dengan menggunakansudo
perintah - $ – membutuhkan perintah linux yang diberikan untuk dieksekusi sebagai pengguna biasa yang tidak memiliki hak istimewa
Pengantar
Serviio adalah server media yang ditulis dalam java. Ini tersedia dalam dua versi:yang gratis (sayangnya gratis seperti dalam bir), dan versi "pro", yang dilengkapi dengan beberapa fitur tambahan seperti akses jarak jauh. Dalam tutorial ini kita akan membahas instalasi Serviio pada Raspberry Pi yang menjalankan versi minimal Raspbian “Stretch”.
Menginstal dependensi
Serviio ditulis dalam java, oleh karena itu kita harus menginstal kit pengembangan java untuk dapat menggunakannya. Ada dua versi JDK di repositori Raspbian Stretch:versi open source, dirilis di bawah GPLv2
lisensi, disebut OpenJDK
, dan versi komersial berpemilik dari Oracle (paket ini sebenarnya disebut Oracle-Java8-jdk). Keduanya harus bekerja dengan benar, tetapi dalam tutorial ini kita akan menggunakan yang pertama.
# apt-get update && apt-get install --no-install-recommends openjdk-8-jdk ffmpeg x264
Ambil dan instal Serviio
Sekarang kita telah menginstal semua paket yang diperlukan, kita harus mengambil tarball Serviio:karena kita bekerja pada mesin tanpa kepala, kita akan menggunakan wget
untuk menyelesaikan tugas. Oleh karena itu, kami menjalankan:
wget http://download.serviio.org/releases/serviio-1.9-linux.tar.gz
Setelah unduhan selesai, kita dapat melanjutkan ke instalasi Serviio yang sebenarnya. Kami akan mengekstrak konten tarball di dalam /opt
direktori:jelas Anda dapat memilih yang lain, tetapi /opt secara konvensional digunakan untuk meng-host aplikasi pihak ketiga mandiri. Mari kita lanjutkan:
# tar -xvzf serviio-1.9-linux.tar.gz -C /opt
-C
opsi (kependekan dari --directory
) menginstruksikan tar untuk mengubah direktori ke direktori yang diberikan, sebelum melakukan operasi.
Buat layanan systemd untuk Serviio
Setelah Serviio terinstal, Anda dapat mengamati bahwa ada dua skrip di dalam /opt/serviio-1.9/bin
direktori:serviio.sh
dan serviio-console.sh. Yang pertama meluncurkan server sedangkan yang kedua adalah antarmuka untuk mengontrolnya.
Pada titik ini, kita memiliki semua yang kita perlukan untuk membuat layanan systemd untuk meluncurkan serviio ketika sistem melakukan booting. Untuk menyelesaikan tugas ini, kita harus menulis file layanan kecil. Seperti yang Anda pasti tahu, systemd adalah sistem init linux baru, sekarang diadopsi oleh semua distribusi utama. Ini telah menjadi sumber dari banyak diskusi di komunitas open source, tetapi tidak diragukan lagi telah menjadi standar. Untuk membuat layanan, jalankan editor favorit Anda dan buat file bernama serviio.service yang berisi teks di bawah ini:
[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
Menjelaskan sintaks file layanan systemd bukanlah tujuan dari tutorial ini, tetapi harap perhatikan baris yang berisi User=serviio
petunjuk. Apa yang ingin kita peroleh dengannya, adalah menentukan bahwa daemon harus dijalankan dengan serviio
hak pengguna dan bukan sebagai root, untuk alasan keamanan. serviio
pengguna belum ada, jadi mari kita buat dan berikan kepemilikan direktori /opt/serviio-1.9 dan semua file di dalamnya:
# useradd -r -U -s /sbin/nologin serviio && chown -R serviio:serviio /opt/serviio-1.9
Anda mungkin familiar dengan useradd
perintah, tetapi untuk kejelasan, mari kita tentukan untuk apa opsi yang disediakan. -r
opsi menentukan bahwa kita ingin membuat system account
. Akun sistem tidak memiliki informasi penuaan dan uid
dengan nilai <1000; untuk akun seperti itu tidak ada direktori home yang dibuat. -U
opsi akan menginstruksikan program untuk membuat juga grup dengan nama yang sama dengan pengguna, dan secara otomatis menambahkan pengguna ke grup tersebut. Akhirnya dengan -s
, kami menentukan shell untuk pengguna. Dalam hal ini kami menggunakan /sbin/nologin
yang merupakan fake shell
. Kami menggunakannya untuk alasan keamanan:dengan cara ini pengguna, layanan yang berjalan, tidak akan pernah bisa menggunakan shell yang sebenarnya untuk menjalankan perintah.
Itu dia:kami telah membuat pengguna serviio dan menulis file layanan kami. Sekarang kita harus menyalinnya ke /usr/systemd/system
direktori:
# cp serviio.service /etc/systemd/system
Untuk mengaktifkan layanan yang sekarang kita jalankan:
# systemctl enable serviio.service
Sekarang, reboot sistem:jika semuanya berjalan dengan baik, layanan serviio akan sudah aktif ketika proses boot selesai. Anda dapat memverifikasi statusnya dengan menjalankan:
$ systemctl status serviio.service
Systemd akan memberi tahu Anda tentang status daemon, misalnya:
● 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 [...]
Seperti yang Anda lihat, layanan ini aktif dan berjalan, jadi semuanya berjalan seperti yang diharapkan. Jika terjadi kesalahan dan ada masalah saat meluncurkan layanan, Anda dapat menggunakan log yang disediakan oleh perintah yang sama untuk menyelesaikan masalah.
Jika Anda menjalankan firewall di mesin Anda, Anda juga harus membuka port 8895/tcp
, 1900/udp
, 23423/tcp
dan 23424/tcp
. Dua port terakhir diperlukan masing-masing untuk mengontrol konsol dan mengakses browser media
Kontrol layanan
Untuk mengontrol serviio, kami memiliki beberapa opsi. Karena kami menjalankan mesin tanpa kepala, kami tidak dapat mengakses konsol grafis, tetapi kami dapat mengakses antarmuka web, dengan menavigasi ke http://yourmachineip:23423/console/
dari komputer lain di lan yang sama atau menggunakan aplikasi pihak ketiga seperti aplikasi android “ServiiDroid”.
Daftar lengkap opsi yang memungkinkan tersedia di sini:http://serviio.org/apps"
. Jika Anda menjalankan layanan versi “pro”, Anda juga dapat menjelajahi katalog Anda dengan menggunakan browser media terintegrasi yang dapat diakses di http://yourmachineip:23424/mediabrowser/
.