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?

  1. Instalar Java OpenJDK
  2. Instalar y configurar AirSonic
  3. Generar un nuevo certificado SSL Letsencrypt
  4. Configurar Nginx como Proxy Inverso
  5. Configurar el Firewall UFW
  6. 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.

Install Java OpenJDK

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.

Instalar y configurar Airsonic

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

Iniciar el servicio 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.

Comprueba la red con netstat

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.

Crear certificado SSL

Cuando todo esté completo, obtendrás el resultado que se muestra a continuación.

Se ha emitido el certificado SSL de Letsencrypt

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

Instala Nginx y configúralo como proxy inverso

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

Comprueba el puerto de nginx

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.

Configurar el cortafuegos UFW

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.

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’.

Cambia la contraseña

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’.

Configuración de la administración

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».

Configurar la carpeta de medios

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.

Ficha de usuario

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.

Cuadro de mandos Airsonic

La instalación de Airsonic media streamer con Nginx como proxy inverso en Ubuntu 18.04 se ha completado con éxito.

Referencia

También te podría gustar...