Cómo instalar Airsonic Media Server en Ubuntu 18.04 LTS
Airsonic es un servidor multimedia gratuito y de código abierto. Es un streamer multimedia autoalojado basado en la web que proporciona un acceso ubicuo a tu música, lo que hace que sea fácil compartir tu música con amigos o escuchar tu música mientras estás en el trabajo. Airsonic ha sido creado con Java como una bifurcación completa del Subsonic, y está diseñado para manejar colecciones de música muy grandes y optimizado para el flujo de MP3. Airsonic funciona con cualquier formato de audio o vídeo que pueda transmitirse a través del protocolo HTTP, incluyendo WMA, FLAC, APE, etc.
En este tutorial, te mostraré paso a paso cómo instalar Airsonic en Ubuntu 18.04. Te mostraremos cómo desplegar la instalación independiente de Airsonic utilizando el paquete .WAR, ejecutar Airsonic como servicio y, a continuación, configurar el servidor web Nginx como proxy inverso para Airsonic.
Requisitos previos
- Ubuntu 18.04
- Privilegios de root
¿Qué vamos a hacer?
- Instalar Java OpenJDK
- Instalar y configurar AirSonic
- Generar un nuevo certificado SSL Letsencrypt
- Configurar Nginx como Proxy Inverso
- Configurar el Firewall UFW
- Prueba de
Paso 1 – Instalar Java OpenJDK
Airsonic es un software de aplicación basado en Java, por lo que necesitamos instalar Java en el servidor, y requiere la instalación de la serie OpenJDK 1.8x. En este primer paso, instalaremos Java OpenJDK desde el repositorio PPA webupd8team.
Instala los paquetes ‘software-properties-common’ y luego añade el repositorio PPA de Java OpenJDK.
Ejecuta los siguientes comandos apt.
sudo apt install software-properties-common apt-transport-https -y
sudo add-apt-repository ppa:webupd8team/java -y
Ahora instala el Java OpenJDK.
sudo apt install oracle-java8-installer -y
Y una vez completada la instalación, comprueba la versión de Java OpenJDK.
java -version
Ahora obtendrás la serie Java OpenJDK 1.8 ha sido instalada en el sistema Ubuntu 18.04.
Paso 2 – Instalar y configurar Airsonic
Airsonic proporciona diferentes paquetes de instalación, para esta guía, vamos a utilizar la «instalación WAR independiente».
Crea un nuevo usuario llamado ‘airsonic’, y crea un nuevo directorio ‘/opt/airsonic’.
useradd airsonic
mkdir -p /opt/airsonic
Ahora ve al directorio ‘/opt/airsonic’ y descarga el archivo del paquete ‘.WAR’ de Airsonic utilizando wget.
cd /opt/airsonic
wget https://github.com/airsonic/airsonic/releases/download/v10.1.1/airsonic.war
Y cambia el propietario del directorio ‘/opt/airsonic’ al usuario y grupo ‘airsonic’.
chown -R airsonic:airsonic /opt/airsonic
El paquete binario ‘.WAR’ de Airsonic se ha descargado.
A continuación, tenemos que crear un nuevo archivo de servicio para Airsonic, ve al directorio ‘/etc/systemd/system’ y crea un nuevo archivo de servicio ‘airsonic.service’.
cd /etc/systemd/system/
vim airsonic.service
Pega allí la siguiente configuración del servicio Airsonic.
[Unit] Description=Airsonic Media Server After=remote-fs.target network.target AssertPathExists=/opt/airsonic [Service] Type=simple Environment="JAVA_JAR=/opt/airsonic/airsonic.war" Environment="JAVA_OPTS=-Xmx700m" Environment="AIRSONIC_HOME=/opt/airsonic" Environment="PORT=8080" Environment="CONTEXT_PATH=/airsonic" Environment="JAVA_ARGS=" EnvironmentFile=-/etc/sysconfig/airsonic ExecStart=/usr/bin/java \ $JAVA_OPTS \ -Dairsonic.home=${AIRSONIC_HOME} \ -Dserver.context-path=${CONTEXT_PATH} \ -Dserver.port=${PORT} \ -jar ${JAVA_JAR} $JAVA_ARGS User=airsonic Group=airsonic [Install] WantedBy=multi-user.target
Guarda y sal.
Recarga el sistema systemd y crea un nuevo archivo de configuración por defecto de airsonic en el directorio ‘/etc/default’.
sudo systemctl daemon-reload
vim /etc/default/airsonic
Pega allí la siguiente configuración por defecto de airsonic.
# Set the location of the standalone war to use JAVA_JAR=/opt/airsonic/airsonic.war # Set any java opts separated by spaces JAVA_OPTS=-Xmx700m # Set a different location for the airsonic home. # If this path is /opt/libresonic or even contains "libresonic", # the data from a previous libresonic can be used as is (i.e. without # renaming libresonic.properties,db/libresonic*, etc AIRSONIC_HOME=/opt/airsonic # Change the port to listen on PORT=8080 # Change the path that is listened to on CONTEXT_PATH=/airsonic # Add any java args. These are different than JAVA_OPTS in that # they are passed directly to the program. The default is empty: #JAVA_ARGS= # Note that there are several settings for spring boot, not explicitly listed # here, but can be used in either JAVA_OPTS or JAVA_ARGS. The full list # can be found here: # https://docs.spring.io/spring-boot/docs/1.4.5.RELEASE/reference/htmlsingle/#common-application-properties # For example to set debug across the board: #JAVA_ARGS=--debug # Or to change the IP address that is listened to: JAVA_ARGS=--server.address=127.0.0.1
Guarda y sal.
Ahora inicia el servicio Airsonic y habilítalo para que se inicie siempre al arrancar el sistema.
systemctl start airsonic
systemctl enable airsonic
La instalación de airsonic ‘stand-alone’ se ha completado, y ahora está en marcha, compruébalo con el comando netstat.
netstat -plntu
Y obtendrás el puerto por defecto Airsonic ‘8080’ en estado ‘LISTEN’, utilizado por el servicio Java Airsonic.
Paso 3 – Generar un nuevo certificado SSL Letsencrypt
En este tutorial, desplegaremos Airsonic bajo la conexión HTTPS del proxy inverso Nginx con el nombre de dominio ‘music.hakase-labs.io’.
Y para este paso, generaremos los certificados SSL de Letsencrypt. Instala la herramienta Letsencrypt con el siguiente comando apt.
sudo apt install letsencrypt -y
La herramienta Letsencrypt ha sido instalada.
A continuación, tenemos que generar los nuevos certificados SSL para el dominio «music.hakase-labs.io» utilizando el siguiente comando.
certbot certonly --standalone -d music.hakase-labs.io
Se te pedirá la dirección de correo electrónico, que se utilizará para la notificación de renovación. Para el acuerdo de las condiciones de servicio de Letsencrypt, escribe «A» para estar de acuerdo y para la dirección de correo electrónico de uso compartido, puedes escribir «N» para no.
Cuando todo esté completo, obtendrás el resultado que se muestra a continuación.
Se ha generado Letsencrypt SSL para el dominio ‘music.hakase-labs.io’, todos los certificados se encuentran en el directorio ‘/etc/letsencrypt/live/domain’.
Paso 4 – Instalar y configurar Nginx como proxy inverso
En este paso, instalaremos el servidor web Nginx y lo configuraremos como proxy inverso para el software Airsonic en el puerto 8080.
Instala el servidor web Nginx con el siguiente comando apt.
sudo apt install nginx -y
Ahora ve al directorio ‘/etc/nginx’ y crea un nuevo archivo de host virtual ‘airsonic’.
cd /etc/nginx/
vim sites-available/airsonic
Pega allí la siguiente configuración.
server { listen 80; listen [::]:80; server_name music.hakase-labs.io; # enforce https return 301 https://$server_name$request_uri; } server { listen 443 ssl; server_name music.hakase-labs.io; ssl_certificate /etc/letsencrypt/live/music.hakase-labs.io/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/music.hakase-labs.io/privkey.pem; location /airsonic { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; proxy_set_header X-Forwarded-Host $http_host; proxy_set_header Host $http_host; proxy_max_temp_file_size 0; proxy_pass http://127.0.0.1:8080; proxy_redirect http:// https://; } }
Guarda y sal.
Activa el archivo de host virtual ‘airsonic’ y prueba la configuración.
ln -s /etc/nginx/sites-available/airsonic /etc/nginx/sites-enabled/
nginx -t
Asegúrate de que no hay ningún error, y a continuación reinicia el servicio nginx y habilítalo para que se inicie siempre al arrancar el sistema.
systemctl restart nginx
systemctl enable nginx
El servidor web Nginx se ejecuta ahora como proxy inverso para el Airsonic en el puerto 8080, y se ejecuta bajo la conexión segura https.
Compruébalo utilizando el comando netstat que aparece a continuación.
netstat -plntu
Paso 5 – Configurar el cortafuegos UFW
En este tutorial, vamos a activar el cortafuegos, y vamos a utilizar el cortafuegos UFW para Ubuntu.
Abre el servicio SSH, HTTP y HTTPS en la lista del cortafuegos UFW ejecutando los siguientes comandos.
ufw allow ssh
ufw allow http
ufw allow https
Ahora activa el cortafuegos ufw.
ufw enable
Escribe ‘y’ y pulsa Enter para iniciar y habilitar el cortafuegos UFW.
Y el cortafuegos ufw ha sido habilitado.
Paso 6 – Prueba
Abre tu navegador web y escribe la URL de instalación de Airsonic en la barra de direcciones. La mía es
https://music.hakase-labs.io/airsonic/
Ahora se te mostrará la página de inicio de sesión de Airsonic.
Entra como usuario por defecto ‘admin’ con la contraseña ‘admin’, y pulsa el botón ‘Iniciar sesión’.
Cuando hayas iniciado la sesión, verás el panel de control de Airsonic.
– Cambiar la contraseña por defecto
Pulsa el botón ‘Cambiar la contraseña del administrador’.
Ahora selecciona el usuario ‘admin’ y marca la opción ‘Cambiar contraseña’, luego escribe la nueva contraseña de administrador y haz clic en ‘Guardar’.
La contraseña de administrador por defecto de Airsonic ha sido cambiada.
– Configurar las carpetas multimedia
Vuelve al servidor del terminal, crea manualmente nuevas carpetas multimedia y cambia el propietario del directorio de carpetas multimedia al usuario ‘airsonic’.
mkdir -p /var/music
chown -R airsonic:airsonic /var/music
Ahora, en el panel de administración de Airsonic, haz clic en el botón «Configuración» y en la pestaña «Carpetas multimedia».
Asegúrate de que las carpetas multimedia de «Música» están activadas por defecto y haz clic en el botón «Guardar».
Ahora ve a la pestaña «Usuario», selecciona el usuario «admin» y comprueba la carpeta multimedia «Música» como se indica a continuación.
La carpeta multimedia «Música» por defecto ha sido habilitada, y el usuario «admin» tiene ahora acceso a las carpetas multimedia.
A continuación se muestra mi panel de control de Airsonic después de realizar algunos cambios.
La instalación de Airsonic media streamer con Nginx como proxy inverso en Ubuntu 18.04 se ha completado con éxito.