Este tutorial le mostrará cómo instalar el servidor de medios Subsonic en Ubuntu 16.04 y cómo configurar un proxy inverso para Subsonic usando Nginx o Apache.
Subsonic es un transmisor de medios gratuito basado en la web escrito en Java, disponible para Linux, MacOS y Windows. Con Subsonic, puede transmitir su música desde la computadora de su hogar o cualquier computadora pública y escuchar su música desde cualquier lugar con un navegador web. Así que no tienes que sincronizar tu música con una aplicación de sincronización de archivos como Resilio Sync o Syncthing.
Funciones subsónicas
- Admite MP3, OGG, AAC y cualquier otro formato de audio o video que se transmita a través de HTTP.
- Funciona con cualquier reproductor multimedia habilitado para red, como Winamp, iTunes, XMMS, VLC, MusicMatch y Windows Media Player
- visualización de la carátula del álbum, listas de reproducción sobre la marcha, transcodificación sobre la marcha
- Aplicación móvil para Android, iPhone, Windows Phone y aplicación de escritorio para Mac, Windows y Chrome. La aplicación de Android admite la reproducción sin conexión.
- Escuche podcasts, asigne calificaciones, agregue comentarios y cree listas de reproducción.
- Comparte tu música con amigos y familiares.
- Transmitir videos (función premium)
- y más
Nota que Subsonic es de código cerrado desde la versión 6.0.
Cómo instalar Subsonic Media Server en Ubuntu 16.04
El servidor de medios subsónico está escrito en Java, por lo que debe instalar el entorno de tiempo de ejecución de Java para ejecutarlo. Puede instalar openjdk 8 con el siguiente comando.
sudo apt install openjdk-8-jre
Si ya instaló Oracle Java 8, entonces no es necesario instalar OpenJDK. A continuación, descargue el paquete Subsonic deb con el siguiente comando, que descarga la versión 6.1.5. Puede consultar la última versión en la página de descarga de Subsonic. Si hay una nueva versión disponible, simplemente reemplace 6.1.5 con el nuevo número de versión.
wget https://s3-eu-west-1.amazonaws.com/subsonic-public/download/subsonic-6.1.5.deb
Instálelo con dpkg
.
sudo dpkg -i subsonic-6.1.5.deb
Una vez que esté instalado, el demonio Subsonic se iniciará automáticamente.
systemctl status subsonic
Salida de muestra:
● subsonic.service - LSB: Subsonic daemon Loaded: loaded (/etc/init.d/subsonic; bad; vendor preset: enabled) Active: active (running) since Fri 2017-03-24 08:03:27 EDT; 7min ago Docs: man:systemd-sysv-generator(8) CGroup: /system.slice/subsonic.service └─3316 java -Xmx150m -Dsubsonic.home=/var/subsonic -Dsubsonic.host=0
Si no se está ejecutando, puede iniciarlo manualmente con
sudo systemctl start subsonic
Y habilite el inicio automático en el momento del arranque del sistema.
sudo systemctl enable subsonic
Por defecto, el subsónico escucha en 0.0.0.0:4040
, lo que significa que acepta solicitudes de la red local e Internet.
Si instaló Subsonic en una computadora Ubuntu local, escriba la siguiente dirección en el navegador para visitar la interfaz web de Subsonic.
http://localhost:4040
Si instaló Subsonic en un servidor Ubuntu con acceso a Internet, escriba la siguiente dirección en el navegador para visitar la interfaz web de Subsonic.
http://your-server-ip:4040
Tenga en cuenta que si instala el servidor de medios Subsonic en un servidor doméstico y desea acceder a él desde una red externa, deberá configurar el reenvío de puertos en su enrutador.
El nombre de usuario y la contraseña predeterminados son admin
. Después de iniciar sesión, debe ir a Configuración> Usuarios para cambiar la contraseña de administrador.
También agregue carpetas de medios en la página de configuración y haga clic en el botón Guardar. Tenga en cuenta que la carpeta debe ser accesible para el usuario con el que se ejecuta Subsonic. Después de agregar la carpeta, haga clic en el botón "Escanear carpeta de medios ahora" y podrá escuchar música en la página de índice.
Cambio de usuario
De forma predeterminada, el proceso Subsonic se ejecuta como usuario raíz. Por razones de seguridad, debe cambiarlo a un usuario normal, lo que se hace editando el /etc/default/subsonic
archivo.
sudo nano /etc/default/subsonic
Busque la siguiente línea:
SUBSONIC_USER=root
Cambie la raíz a su propia cuenta de usuario como linuxbabe
.
SUBSONIC_USER=linuxbabe
Guarde y cierre el archivo. Luego reinicie el demonio subsónico para que el cambio surta efecto.
sudo systemctl restart subsonic
Configurar Nginx Reverse Proxy para Subsonic
Si desea utilizar un nombre de dominio para la interfaz web de Subsonic, puede configurar el proxy inverso Nginx. Instale Nginx en Ubuntu 16.04 usando el siguiente comando.
sudo apt install nginx
Luego cree un archivo de bloque de servidor para proxy.
sudo nano /etc/nginx/conf.d/subsonic-proxy.conf
Coloque el siguiente texto en el archivo. Reemplace subsonic.your-domain.com
con su propio nombre de dominio. El bloque de ubicación {…} hará solicitudes de proxy Nginx al demonio subsónico. No olvide establecer un registro A para el subdominio.
server { listen 80; server_name subsonic.your-domain.com; location / { proxy_pass http://127.0.0.1:4040; proxy_set_header Host $http_host; 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 $scheme; } }
Guarde y cierre el archivo. Luego pruebe la configuración de Nginx.
sudo nginx -t
Si la prueba es exitosa, vuelva a cargar Nginx para que la nueva configuración surta efecto.
sudo systemctl reload nginx
Ahora el servidor de medios subsónico se coloca detrás de Nginx y puede acceder a la interfaz de usuario web de Subsonic usando un nombre de dominio (subsonic.your-domain.com
)
Habilitar HTTPS con Nginx
Para habilitar la conexión segura HTTPS, puede obtener e instalar un certificado TLS/SSL gratuito de Let's Encrypt. Instale el cliente Let's Encrypt (certbot) con:
sudo apt-get install software-properties-common sudo add-apt-repository ppa:certbot/certbot sudo apt-get update sudo apt-get install certbot python3-certbot-nginx
Luego emita el siguiente comando, que utiliza el complemento Certbot Nginx para obtener e instalar automáticamente el certificado TLS. Reemplace el texto rojo con sus datos reales.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email your-email-address --domain subsonic.your-domain.com
En unos segundos, debería ver un mensaje de felicitación como el siguiente, lo que significa que el certificado se obtuvo con éxito.
Vuelva a la interfaz web de su servidor de medios Subsonic, encontrará que la conexión HTTP se redirige automáticamente a Conexión segura HTTPS. A continuación, debemos modificar el archivo de configuración de Nginx.
sudo nano /etc/nginx/conf.d/subsonic-proxy.conf
Ahora hay dos bloques de servidor {...}, porque Certbot configuró automáticamente el bloque de servidor SSL (escucha 443 ssl). En el bloque del servidor SSL, agregue la siguiente línea en el bloque ubicación / {…}.
proxy_redirect http:// https://;
Esta línea redirigirá cualquier respuesta del servidor http a la respuesta del servidor https, que es necesaria para mostrar correctamente la página de configuración de Subsonic. Guarde y cierre el archivo. Pruebe la configuración de Nginx y vuelva a cargar.
sudo nginx -t sudo systemctl reload nginx
Configuración del proxy inverso de Apache
Si prefiere Apache a Nginx, instálelo con:
sudo apt install apache2
Para usar Apache como proxy inverso, debemos habilitar el proxy
módulos y el módulo de cabecera.
sudo a2enmod proxy proxy_http headers
Luego cree un archivo de host virtual para el servidor de medios Subsonic.
sudo nano /etc/apache2/sites-available/subsonic-proxy.conf
Coloque las siguientes configuraciones en el archivo. Reemplace subsonic.your-domain.com
con su nombre de dominio real. No olvide crear un registro DNS A para este subdominio.
<VirtualHost *:80> ServerName subsonic.your-domain.com ErrorDocument 404 /404.html DocumentRoot /var/www ProxyPass / http://localhost:4040/ ProxyPassReverse / http://localhost:4040/ Header always unset X-Frame-Options </VirtualHost>
Guarde y cierre el archivo. Luego habilite este servidor virtual.
sudo a2ensite subsonic-proxy.conf
Reiniciar Apache
sudo systemctl restart apache2
Ahora puede acceder a la interfaz de usuario web de Subsonic usando un nombre de dominio.
Habilitación de HTTPS con Apache
Para habilitar la conexión segura HTTPS, puede obtener e instalar un certificado TLS/SSL gratuito de Let's Encrypt. Instale el cliente Let's Encrypt (certbot) con:
sudo apt-get install software-properties-common sudo add-apt-repository ppa:certbot/certbot sudo apt-get update sudo apt install certbot python3-certbot-apache
Luego obtenga e instale un certificado usando el complemento de apache.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --must-staple --email your-email-address -d subsonic.your-domain.com
En unos segundos, debería ver un mensaje de felicitación como el siguiente, lo que significa que el certificado se obtuvo con éxito.
Su certificado TLS se instalará automáticamente. Vaya a la interfaz web de su servidor de medios Subsonic nuevamente, encontrará que la conexión HTTP se redirige automáticamente a la conexión segura HTTPS.
Cómo actualizar a la última versión
Es muy fácil actualizar el servidor Subsonic existente a la última versión. Primero vaya a la página de descarga de Subsonic y descargue el paquete Debian/Ubuntu más reciente (6.1.2 en este ejemplo). Puede obtener el enlace de descarga en el administrador de descargas de Firefox como se muestra en la siguiente captura de pantalla.
Luego, en la terminal, puede pegar el enlace de descarga después de wget para descargar Subsonic desde la línea de comandos.
wget https://s3-eu-west-1.amazonaws.com/subsonic-public/download/subsonic-6.1.2.deb
Luego, use dpkg para instalar el paquete deb.
sudo dpkg -i subsonic-6.1.2.deb
Reinicie el servicio Subsonic Systemd y listo.
sudo systemctl restart subsonic
Espero que este tutorial le haya ayudado a instalar el servidor de medios Subsonic en Ubuntu 16.04. Como siempre, si encuentra útil esta publicación, suscríbase a nuestro boletín gratuito. También puede seguirnos en Google+, Twitter o gustar en nuestra página de Facebook.