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
- Ubuntu 18.04
- Privilegios de raíz
¿Qué haremos?
- Instalar Java OpenJDK
- Instalar y configurar AirSonic
- Generar nuevo certificado SSL Letsencrypt
- Configurar Nginx como proxy inverso
- Configurar el cortafuegos UFW
- 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.
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 '.WAR' de Airsonic ha sido descargado.
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
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.
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.
Cuando todo esté completo, obtendrá el resultado como se muestra a continuación.
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: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.
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 habilítelo para que se inicie cada vez que se inicie el sistema.
systemctl restart nginx
systemctl enable nginx
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
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 cortafuegos de UFW ejecutando los siguientes comandos.
ufw allow ssh
ufw allow http
ufw allow https
Ahora habilite el cortafuegos ufw.
ufw enable
Escriba 'y' y presione Entrar para iniciar y habilitar el firewall UFW.
Y el firewall ufw ha sido habilitado.
Paso 6 - Prueba
Abra su navegador web y escriba la URL de instalación de Airsonic en la barra de direcciones. El mío es:
https://music.hakase-labs.io/airsonic/
Ahora se le mostrará la página de inicio de sesión de Airsonic.
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'.
Ahora seleccione el usuario 'administrador' y marque 'Cambiar contraseña', luego escriba la nueva contraseña de administrador y haga clic en 'Guardar'.
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'.
Asegúrese de que las carpetas de medios de 'Música' predeterminadas estén habilitadas, luego haga clic en el botón 'Guardar'.
Ahora muévase a la pestaña 'Usuario', seleccione el usuario 'administrador' y marque la carpeta de medios 'Música' como se muestra a continuación.
La carpeta multimedia predeterminada "Música" se ha habilitado y el usuario "administrador" ahora tiene acceso a las carpetas multimedia.
A continuación se muestra mi tablero Airsonic después de hacer algunos cambios.
La instalación del transmisor de medios Airsonic con Nginx como proxy inverso en Ubuntu 18.04 se completó con éxito.