Cómo instalar Airsonic Media Server en Ubuntu 18.04 LTS

Instalar Java OpenJDK

Airsonic es un servidor multimedia gratuito y de código abierto. Es un transmisor de medios basado en la web autohospedado que brinda acceso ubicuo a su música, facilita compartir su música con amigos o escuchar su música mientras está en el trabajo. Airsonic se creó con Java como una bifurcación completa de Subsonic y se diseñó para manejar colecciones de música muy grandes y se optimizó para la transmisión de MP3. Airsonic funciona con cualquier formato de audio o video que pueda transmitirse a través del protocolo HTTP, incluidos WMA, FLAC, APE, etc.

En este tutorial, le mostraré paso a paso cómo instalar Airsonic en Ubuntu 18.04. Le mostraremos cómo implementar la instalación independiente de Airsonic usando el paquete .WAR, ejecutar Airsonic como un servicio y luego configurar el servidor web Nginx como un proxy inverso para Airsonic.

requisitos previos

  • Ubuntu 18.04
  • Privilegios de raíz

¿Lo que haremos?

  1. Instalar Java OpenJDK
  2. Instalar y configurar AirSonic
  3. Generar nuevo certificado SSL Letsencrypt
  4. Configurar Nginx como proxy inverso
  5. Configurar el cortafuegos UFW
  6. Pruebas

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 de PPA webupd8team.

Instale los paquetes ‘software-properties-common’ y luego agregue el repositorio Java OpenJDK PPA.

Ejecute los siguientes comandos apt.

sudo apt install software-properties-common apt-transport-https -y
sudo add-apt-repository ppa:webupd8team/java -y

Ahora instale Java OpenJDK.

sudo apt install oracle-java8-installer -y

Y una vez completada la instalación, verifique la versión de Java OpenJDK.

java -version

Ahora obtendrá la serie Java OpenJDK 1.8 instalada en el sistema Ubuntu 18.04.

Instalar Java OpenJDK

Paso 2: instalar y configurar Airsonic

Airsonic proporciona diferentes paquetes de instalación, para esta guía, usaremos la ‘instalación independiente de WAR’.

Cree un nuevo usuario llamado ‘airsonic’ y cree un nuevo directorio ‘/opt/airsonic’.

useradd airsonic
mkdir -p /opt/airsonic

Ahora vaya al directorio ‘/opt/airsonic’ y descargue el archivo del paquete Airsonic ‘.WAR’ usando wget.

cd /opt/airsonic
wget https://github.com/airsonic/airsonic/releases/download/v10.1.1/airsonic.war

Y cambie el propietario del directorio ‘/opt/airsonic’ al usuario y grupo ‘airsonic’.

chown -R airsonic:airsonic /opt/airsonic

El paquete binario Airsonic ‘.WAR’ ha sido descargado.

Instalar y configurar Airsonic

A continuación, debemos crear un nuevo archivo de servicio para Airsonic, ir al directorio ‘/etc/systemd/system’ y crear un nuevo archivo de servicio ‘airsonic.service’.

cd /etc/systemd/system/
vim airsonic.service

Pegue la siguiente configuración del servicio Airsonic allí.

[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

Guardar y Salir.

Vuelva a cargar el sistema systemd y cree un nuevo archivo de configuración predeterminado de airsonic en el directorio ‘/etc/default’.

sudo systemctl daemon-reload
vim /etc/default/airsonic

Pegue la siguiente configuración airsonic predeterminada allí.

# 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

Guardar y Salir.

Ahora inicie el servicio Airsonic y permita que se inicie cada vez que se inicie el sistema.

systemctl start airsonic
systemctl enable airsonic

Iniciar servicio airsonic

La instalación ‘independiente’ de airsonic está completa y ahora está funcionando, verifíquela con el comando netstat.

netstat -plntu

Y obtendrá el puerto predeterminado Airsonic ‘8080’ en el estado ‘LISTEN’, utilizado por el servicio Java Airsonic.

Comprobar la red con netstat

Paso 3: generar un nuevo certificado SSL Letsencrypt

En este tutorial, implementaremos 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 desde Letsencrypt. Instale la herramienta Letsencrypt usando el siguiente comando apt.

sudo apt install letsencrypt -y

La herramienta Letsencrypt ha sido instalada.

A continuación, debemos generar los nuevos certificados SSL para el dominio ‘music.hakase-labs.io’ usando el siguiente comando.

certbot certonly --standalone -d music.hakase-labs.io

Se le pedirá la dirección de correo electrónico y se utilizará para la notificación de renovación. Para el acuerdo de TOS de Letsencrypt, escriba ‘A’ para aceptar y para la dirección de correo electrónico compartida, puede escribir ‘N’ para No.

Crear certificado SSL

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

Se ha emitido el certificado Letsencrypt SSL

SSL Letsencrypt para el dominio ‘music.hakase-labs.io’ ha sido generado, todos los certificados ubicados en el directorio ‘/etc/letsencrypt/live/domain’.

Paso 4: instale y configure 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.

Instale el servidor web Nginx usando el siguiente comando apt.

sudo apt install nginx -y

Ahora vaya al directorio ‘/etc/nginx’ y cree un nuevo archivo de host virtual ‘airsonic’.

cd /etc/nginx/
vim sites-available/airsonic

Pegue la siguiente configuración allí.

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://;
    }
}

Guardar y Salir.

Active el archivo de host virtual ‘airsonic’ y pruebe la configuración.

ln -s /etc/nginx/sites-available/airsonic /etc/nginx/sites-enabled/
nginx -t

Asegúrese de que no haya ningún error, luego reinicie el servicio nginx y permita que se inicie cada vez que se inicie el sistema.

systemctl restart nginx
systemctl enable nginx

Instale Nginx y configúrelo como proxy inverso

El servidor web Nginx ahora se ejecuta como un proxy inverso para Airsonic en el puerto 8080 y se ejecuta bajo la conexión segura https.

Compruébalo usando el comando netstat a continuación.

netstat -plntu

Compruebe el puerto nginx

Paso 5: configurar el cortafuegos UFW

En este tutorial, activaremos el firewall y usaremos el firewall UFW para Ubuntu.

Abra el servicio SSH, HTTP y HTTPS en la lista de firewalls de UFW ejecutando los comandos a continuación.

ufw allow ssh
ufw allow http
ufw allow https

Ahora habilite el firewall ufw.

ufw enable

Escriba ‘y’ y presione Entrar para iniciar y habilitar el firewall UFW.

Y el firewall ufw ha sido habilitado.

Configurar el cortafuegos UFW

Paso 6 – Prueba

Abra su navegador web y escriba la URL de instalación de Airsonic en la barra de direcciones. El mio es:

https://music.hakase-labs.io/airsonic/

Ahora se le mostrará la página de inicio de sesión de Airsonic.

inicio de sesión airsónico

Inicie sesión como usuario predeterminado ‘admin’ con la contraseña ‘admin’ y presione el botón ‘Iniciar sesión’.

Y cuando haya iniciado sesión, verá el panel Airsonic.

– Cambiar contraseña predeterminada

Haga clic en el botón ‘Cambiar contraseña de administrador’.

cambiar la contraseña

Ahora seleccione el usuario ‘admin’ y marque ‘Cambiar contraseña’, luego escriba la nueva contraseña de administrador y haga clic en ‘Guardar’.

Configuración de administrador

Se ha cambiado la contraseña de administrador predeterminada para Airsonic.

– Configurar carpetas multimedia

Vuelva al servidor terminal shell, cree nuevas carpetas de medios manualmente y cambie el propietario del directorio de carpetas de medios al usuario ‘airsonic’.

mkdir -p /var/music
chown -R airsonic:airsonic /var/music

Ahora, en el panel de administración de Airsonic, haga clic en el botón ‘Configuración’ y haga clic en la pestaña ‘Carpetas multimedia’.

Configurar carpeta multimedia

Asegúrese de que las carpetas multimedia predeterminadas de ‘Música’ estén habilitadas, luego haga clic en el botón ‘Guardar’.

Ahora muévase a la pestaña ‘Usuario’, seleccione el usuario ‘administrador’ y verifique la carpeta de medios ‘Música’ como se muestra a continuación.

Pestaña de usuario

La carpeta de medios ‘Música’ predeterminada se ha habilitado y el usuario ‘admin’ ahora tiene acceso a las carpetas de medios.

A continuación se muestra mi tablero Airsonic después de hacer algunos cambios.

salpicadero aerosónico

La instalación del transmisor de medios Airsonic con Nginx como proxy inverso en Ubuntu 18.04 se completó con éxito.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *