AirSonic adalah server media streaming berbasis web yang free dan open-source yang memungkinkan Anda mengakses musik dari lokasi terpusat. Airsonic kompatibel dengan format file audio/video dan juga dapat streaming melalui HyperText Transfer protocol.

Airsonic adalah media streamer yang di-hosting sendiri yang ditulis dalam bahasa Java dan mampu menangani koleksi musik yang sangat besar. Airsonic berjalan pada sebagian besar sistem operasi termasuk Windows, Linux dan Mac OS.

Dalam tutorial ini, kami akan menunjukkan kepada Anda cara menginstal server media streaming AirSonic di CentOS 8.

Prasyarat

Mulai

Secara default, SELinux diaktifkan di server CentOS 8. Jadi, Anda harus menonaktifkannya terlebih dahulu.

Anda dapat melakukan ini dengan mengedit file /etc/selinux/config

nano /etc/selinux/config

Buat perubahan berikut:

SELINUX=disabled

Simpan dan tutup file. Kemudian, restart sistem Anda untuk menerapkan perubahan.

Install Java

AirSonic didasarkan pada Java sehingga Anda harus menginstal Java ke sistem. Anda dapat menginstal Java dengan hanya menjalankan perintah berikut:

dnf install java-1.8.0-openjdk-devel

Setelah Java diinstal, Anda dapat memverifikasi versi Java dengan perintah berikut:

java -version

Anda akan melihat output berikut:

openjdk version "1.8.0_232"
OpenJDK Runtime Environment (build 1.8.0_232-b09)
OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)

Install AirSonic

Sebelum memulai, Anda harus membuat user untuk menjalankan AirSonic.

Pertama, buat user dengan perintah berikut:

useradd airsonic

Selanjutnya, buat direktori untuk AirSonic dengan perintah berikut:

mkdir /var/airsonic /var/media_files

Selanjutnya, download versi terbaru AirSonic dengan perintah wget dari repositori Git dengan perintah berikut:

wget https://github.com/airsonic/airsonic/releases/download/v10.4.1/airsonic.war --output-document=/var/airsonic/airsonic.war

Selanjutnya, berikan izin yang sesuai ke direktori airsonic dengan perintah berikut:

chown -R airsonic /var/airsonic
 chown -R airsonic /var/media_files

Selanjutnya, unduh file pre-configured systemd untuk AirSonic dengan perintah berikut:

wget https://raw.githubusercontent.com/airsonic/airsonic/master/contrib/airsonic.service -O /etc/systemd/system/airsonic.service
 wget https://raw.githubusercontent.com/airsonic/airsonic/master/contrib/airsonic-systemd-env -O /etc/sysconfig/airsonic

Selanjutnya, reload daemon systemd dengan perintah berikut:

systemctl daemon-reload

Selanjutnya, start layanan AirSonic dan aktifkan untuk memulai saat boot dengan perintah berikut:

systemctl start airsonic
 systemctl enable airsonic

Anda sekarang dapat memverifikasi status AirSonic dengan perintah berikut:

systemctl status airsonic

Anda akan mendapatkan output kurang lebih sebagai berikut :

? airsonic.service - Airsonic Media Server
   Loaded: loaded (/etc/systemd/system/airsonic.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2019-10-28 12:29:51 UTC; 2min 6s ago
 Main PID: 29564 (java)
    Tasks: 18 (limit: 5060)
   Memory: 315.0M
   CGroup: /system.slice/airsonic.service
           ??29564 /usr/bin/java -Xmx700m -Dairsonic.home=/var/airsonic -Dserver.context-path=/airsonic -Dserver.port=8080 -jar /var/airsonic/>

Oct 28 12:31:49 centos8 java[29564]: 2019-10-28 12:31:49.876  INFO --- l.c.StandardChangeLogHistoryService      : Reading from DATABASECHANGEL>
Oct 28 12:31:49 centos8 java[29564]: 2019-10-28 12:31:49.877  INFO --- l.executor.jvm.JdbcExecutor              : SELECT * FROM DATABASECHANGE>
Oct 28 12:31:49 centos8 java[29564]: 2019-10-28 12:31:49.969  INFO --- liquibase.changelog.ChangeSet            : Marking ChangeSet: classpath>
Oct 28 12:31:49 centos8 java[29564]:           classpath:liquibase/db-changelog.xml : Custom Precondition Failed: DBMS Major Version Precondit>
Oct 28 12:31:49 centos8 java[29564]: 2019-10-28 12:31:49.972  INFO --- l.executor.jvm.JdbcExecutor              : SELECT MAX(ORDEREXECUTED) FR>
Oct 28 12:31:50 centos8 java[29564]: 2019-10-28 12:31:50.017  INFO --- l.executor.jvm.JdbcExecutor              : INSERT INTO DATABASECHANGELO>
Oct 28 12:31:50 centos8 java[29564]: 2019-10-28 12:31:50.020  INFO --- l.l.StandardLockService                  : Successfully released change>
Oct 28 12:31:51 centos8 java[29564]: 2019-10-28 12:31:51.489  INFO --- o.airsonic.player.dao.PlayerDao          : Deleted 1 player(s) that hav>
Oct 28 12:31:52 centos8 java[29564]: 2019-10-28 12:31:52.424  INFO --- o.a.p.s.MediaScannerService              : Automatic media library scan>
Oct 28 12:31:53 centos8 java[29564]: 2019-10-28 12:31:53.093  INFO --- o.a.p.service.PodcastService             : Automa

Anda juga dapat memeriksa proses AirSonic yang berjalan dengan perintah ps :

ps -ef | grep airsonic

Anda akan melihat output berikut:

airsonic 29459     1 87 12:07 ?        00:02:08 /usr/bin/java -Xmx700m -Dairsonic.home=/var/airsonic -Dserver.context-path=/airsonic -Dserver.port=8080 -jar /var/airsonic/airsonic.war
root     29496  6103  0 12:10 pts/0    00:00:00 grep --color=auto airsonic

Akses Web Interface AirSonic

Sebelum mengakses antarmuka web AirSonic, Anda harus membuka port 80 dan 8080 dengan firewalld. Anda dapat melakukannya dengan perintah berikut:

firewall-cmd --zone=public --add-port=80/tcp --permanent
 firewall-cmd --zone=public --add-port=8080/tcp --permanent
 firewall-cmd --reload

Selanjutnya, buka browser web Anda dan ketik URL http://server_IP: 8080/airsonic. Anda akan diarahkan ke halaman berikut:

Airsonic Login

Berikan nama user admin dan kata sandi admin dan klik tombol Log in. Anda akan melihat halaman berikut:

Ganti Password Airsonic

Selanjutnya, Anda perlu mengubah kata sandi default administrator. Untuk melakukannya, klik pada Change administrator password. Anda akan melihat halaman berikut:

Pilih admin, tandai kotak centang change password, ketik kata sandi baru dan klik tombol Save untuk mengubah kata sandi default.

Selanjutnya, Anda perlu mengatur folder media untuk menyimpan musik dan video Anda. Untuk melakukannya, klik pada settings > Media folders. Anda akan melihat halaman berikut:

Sekarang, ketik /var/media_files di box Folder dan klik tombol Save.

Konfigurasikan Nginx sebagai Reverse Proxy

Selanjutnya, Anda perlu mengonfigurasi Nginx sebagai reverse proxy untuk Airsonic pada port 8080. Untuk melakukannya, install web server Nginx dengan perintah berikut:

dnf install nginx

Setelah diinstal, buat file konfigurasi virtual host Nginx:

nano /etc/nginx/conf.d/airsonic.conf

Tambahkan baris berikut:

server {
   listen 80;
   server_name server-ip-anda;
   access_log off;
   error_log off;
   location / {
      proxy_pass http://127.0.0.1:8080;
      proxy_redirect off;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_max_temp_file_size 0;
      client_max_body_size 10m;
      client_body_buffer_size 128k;
      proxy_connect_timeout 90;
      proxy_send_timeout 90;
      proxy_read_timeout 90;
      proxy_buffer_size 4k;
      proxy_buffers 4 32k;
      proxy_busy_buffers_size 64k;
      proxy_temp_file_write_size 64k;
}
}

Simpan dan tutup file setelah Anda selesai. Kemudian, tes pengaturan Nginx untuk setiap kesalahan sintaks dengan perintah berikut:

nginx -t

Anda akan melihat output berikut:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Selanjutnya, start Nginx service dan aktifkan untuk memulai setelah sistem reboot dengan perintah berikut:

systemctl start nginx
 systemctl enable nginx

Sekarang, Anda dapat mengakses AirSonic web interface dengan mengunjungi URL http://server-ip/airsonic.

Kesimpulan

Selamat! Anda telah berhasil menginstal AirSonic media server dengan Nginx sebagai reverse proxy pada CentOS 8. Sekarang Anda dapat meng-host media server Anda sendiri dan berbagi musik dengan teman atau keluarga Anda.