Sonerezh ist ein selbst gehosteter, webbasierter Musik-Streaming-Server, der in PHP und HTML5 geschrieben ist. Es ist leicht im Vergleich zu Subsonic, das in Java geschrieben ist. Sonerezh ist Open-Source-Software, die unter den Bedingungen von AGPL vertrieben wird. Dieses Tutorial zeigt Ihnen, wie Sie Sonerezh auf Ubuntu 16.04 mit Apache oder Nginx installieren.
Sonerezh-Funktionen:
- Moderne und einfach zu bedienende Weboberfläche
- Playlist-Verwaltung:Fügen Sie Titel, Alben und Künstler zu Ihren Playlists hinzu.
- Musik über das Benutzerverwaltungssystem teilen
- Automatische Metadatenextraktion und Dateiimport
- Automatische Transcodierung in MP3
- Einfache Suchmaschine
Mit Sonerezh können Sie Ihre Musik überall mit einem Webbrowser und einer Internetverbindung hören.
Um diesem Tutorial zu folgen, müssen Sie LAMP oder LEMP auf Ubuntu 16.04 installiert haben. Wenn Sie dies noch nicht getan haben, sehen Sie sich bitte die folgenden Tutorials an.
- So installieren Sie LAMP (Apache, MariaDB, PHP7) unter Ubuntu 16.04
- So installieren Sie LEMP (Nginx, MariaDB, PHP7-FPM) auf Ubuntu 16.04
Sobald LAMP oder LEMP installiert ist, kommen Sie hierher zurück und lesen Sie weiter.
Installieren von Sonerezh auf Ubuntu 16.04
Die neueste stabile Version ist Sonerezh 1.1.3, veröffentlicht am 19. Dezember 2016. Sie können sie mit Git aus dem Github-Repository herunterladen.
Wechseln Sie in das Verzeichnis /var/www/
.
cd /var/www/
Installieren Sie git
und verwenden Sie git, um Sonerezh von Github zu klonen.
sudo apt install git sudo git clone --branch master https://github.com/Sonerezh/sonerezh.git
Webserver einstellen (www-data
) als Eigentümer des neuen Verzeichnisses.
sudo chown www-data:www-data /var/www/sonerezh/ -R
MariaDB/MySQL-Datenbank für Sonerezh erstellen
Melden Sie sich mit dem folgenden Befehl beim MariaDB/MySQL-Datenbankserver an:
mysql -u root -p
Erstellen Sie dann eine Datenbank für Sonerezh. Dieses Tutorial nennt die Datenbank sonerezh
. Sie können einen beliebigen Namen verwenden.
create database sonerezh;
Erstellen Sie den Datenbanknutzer und gewähren Sie diesem Nutzer alle Berechtigungen für die Sonerezh-Datenbank. Ersetzen Sie your-password
mit Ihrem bevorzugten Passwort.
grant all privileges on sonerezh.* to sonerezh@localhost identified by 'your-password';
Berechtigungen leeren und beenden.
flush privileges; exit;
Apache Virtual Host einrichten
Wir werden eine sonerezh.conf
erstellen Datei in /etc/apache2/sites-available/
Verzeichnis.
sudo nano /etc/apache2/sites-available/sonerezh.conf
Kopieren Sie die folgenden Zeilen und fügen Sie sie in die Datei ein. Ersetzen Sie den roten Text durch Ihren bevorzugten Domainnamen. Sie müssen auch einen A-Eintrag für den Domänennamen erstellen. Wenn Sie Sonerezh auf Ihrem Heimserver installieren, müssen Sie auch die Portweiterleitung im Router konfigurieren.
<VirtualHost *:80> ServerName music.your-domain.com DocumentRoot /var/www/sonerezh <Directory /var/www/sonerezh> Options -Indexes AllowOverride All # Apache 2.2.x <IfModule !mod_authz_core.c> Order Allow,Deny Allow from all </IfModule> # Apache 2.4.x <IfModule mod_authz_core.c> Require all granted </IfModule> </Directory> CustomLog /var/log/apache2/sonerezh-access.log "Combined" ErrorLog /var/log/apache2/sonerezh-error.log </VirtualHost>
Speichern und schließen Sie die Datei.
sudo a2ensite sonerezh.conf
Aktivieren Sie dann das Modul mod_rewrite und laden Sie den Apache-Webserver neu, damit die Änderungen wirksam werden.
sudo a2enmod rewrite sudo systemctl reload apache2
Gehen Sie nun zu music.your-domain.com/install
. Sie sehen den Sonerezh-Webinstaller, der einige Anforderungen auflistet. Um diese Anforderungen zu erfüllen, führen Sie den folgenden Befehl aus.
sudo apt install php7.0-gd libav-tools
HTTPS (Apache) aktivieren
Um die Installation abzuschließen, müssen Sie die Datenbankdetails eingeben und ein Administratorkonto erstellen. Aber bevor wir das tun, installieren wir ein kostenloses TLS-Zertifikat von Let’s Encrypt, damit Ihre Eingaben im Web-Installer nicht ausgespäht werden.
Installieren Sie den Certbot-Client (Let’s Encrypt).
sudo apt install letsencrypt python-letsencrypt-apache
Geben Sie nun den folgenden Befehl aus, um ein kostenloses TLS/SSL-Zertifikat zu erhalten. Ersetzen Sie den roten Text durch Ihre tatsächlichen Daten.
sudo letsencrypt --apache --agree-tos --redirect --hsts --email your-email-address -d music.your-domain.com
Erklärung:
- –apache :Verwenden Sie das Apache-Plugin, um das Zertifikat automatisch zu erhalten und zu installieren.
- –stimme zu :Akzeptieren Sie die Nutzungsbedingungen.
- –Weiterleitung :Den gesamten HTTP-Datenverkehr für den virtuellen Host auf HTTPS umleiten
- –hsts :Browser dazu zwingen, immer TLS zu verwenden.
Innerhalb weniger Sekunden sollte Folgendes angezeigt werden, was bedeutet, dass ein kostenloses TLS/SSL-Zertifikat abgerufen und auf Ihrem Apache-Server installiert wurde.
Die standardmäßigen TLS/SSL-Konfigurationen erzielen im SSL Labs-Test A+.
Einrichten des Nginx-Serverblocks
Wenn Sie Nginx anstelle von Apache verwenden, erstellen Sie eine Nginx-Serverblockdatei.
sudo nano /etc/nginx/conf.d/sonerezh.conf
Kopieren Sie die folgenden Zeilen und fügen Sie sie in die Datei ein. Ersetzen Sie den roten Text durch Ihren bevorzugten Domainnamen. Sie müssen auch einen A-Eintrag für den Domänennamen erstellen. Wenn Sie Sonerezh auf Ihrem Heimserver installieren, müssen Sie auch die Portweiterleitung im Router konfigurieren.
server { listen 80; server_name music.your-domain.com; root /var/www/sonerezh/app/webroot; index index.php; location / { try_files $uri $uri/ /index.php?$args; expires 14d; add_header Cache-Control 'public'; } # The section below handle the thumbnails cache, on the client (browser) # side (optional but recommended) location ~* /([^/]+_[0-9]+x[0-9]+(@[0-9]+x)?\.[a-z]+)$ { try_files /img/resized/$1 /index.php?$args; add_header Cache-Control 'public'; expires 14d; access_log off; } location ~ \.php$ { try_files $uri =404; fastcgi_index index.php; fastcgi_pass unix:/run/php/php7.0-fpm.sock; include fastcgi.conf; # If fastcgi.conf is not available on your platform you may want to # uncomment the following line #fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
Speichern und schließen Sie die Datei. Testen Sie dann die Konfiguration.
sudo nginx -t
Wenn der Test erfolgreich ist, laden Sie Nginx neu.
sudo systemctl reload nginx
Gehen Sie nun zu music.your-domain.com/install
. Sie sehen den Sonerezh-Webinstaller, der einige Anforderungen auflistet. Um diese Anforderungen zu erfüllen, führen Sie den folgenden Befehl aus.
sudo apt install php7.0-gd libav-tools
HTTPS (Nginx) aktivieren
Um die Installation abzuschließen, müssen Sie die Datenbankdetails eingeben und ein Administratorkonto erstellen. Aber bevor wir das tun, installieren wir ein kostenloses TLS-Zertifikat von Let’s Encrypt, damit Ihre Eingaben im Web-Installer nicht ausgespäht werden.
Installieren Sie den Certbot-Client (Let’s Encrypt).
sudo apt install letsencrypt
Geben Sie nun den folgenden Befehl aus, um ein kostenloses TLS/SSL-Zertifikat zu erhalten. Ersetzen Sie den roten Text durch Ihre tatsächlichen Daten.
sudo letsencrypt certonly --webroot --agree-tos --email your-email-address -d music.your-domain.com -w /var/www/sonerezh/app/webroot/
Innerhalb weniger Sekunden sollten Sie Folgendes sehen, was bedeutet, dass ein kostenloses TLS/SSL-Zertifikat erhalten wurde.
Bearbeiten Sie nun die Sonerezh-Serverblockdatei, um TLS zu konfigurieren.
sudo nano /etc/nginx/conf.d/sonerezh.conf
Ändern Sie die Konfigurationen wie folgt.
server { listen 80; server_name music.your-domain.com; return 301 https://$server_name$request_uri; } server { listen 443 ssl http2; server_name music.your-domain.com; root /var/www/sonerezh/app/webroot; ssl_certificate /etc/letsencrypt/live/music.your-domain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/music.your-domain.com/privkey.pem; ssl_session_timeout 1d; ssl_session_cache shared:SSL:50m; ssl_session_tickets off; # modern configuration. tweak to your needs. ssl_protocols TLSv1.2; ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256'; ssl_prefer_server_ciphers on; # HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months) add_header Strict-Transport-Security max-age=15768000; # OCSP Stapling --- # fetch OCSP records from URL in ssl_certificate and cache them ssl_stapling on; ssl_stapling_verify on; index index.php; location / { try_files $uri $uri/ /index.php?$args; expires 14d; add_header Cache-Control 'public'; } # The section below handle the thumbnails cache, on the client (browser) # side (optional but recommended) location ~* /([^/]+_[0-9]+x[0-9]+(@[0-9]+x)?\.[a-z]+)$ { try_files /img/resized/$1 /index.php?$args; add_header Cache-Control 'public'; expires 14d; access_log off; } location ~ \.php$ { try_files $uri =404; fastcgi_index index.php; fastcgi_pass unix:/run/php/php7.0-fpm.sock; include fastcgi.conf; # If fastcgi.conf is not available on your platform you may want to # uncomment the following line #fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
Speichern und schließen Sie die Datei. Testen Sie dann die Konfiguration.
sudo nginx -t
Wenn der Test erfolgreich ist, laden Sie Nginx neu.
sudo systemctl reload nginx
Installation beenden
Jetzt ist Ihre Verbindung HTTPS-fähig, Sie können Ihre Datenbankdetails im Web-Installer eingeben. Erstellen Sie außerdem ein Administratorkonto und geben Sie den Musikordner an.
Webbasierter Musik-Streaming-Server von Sonerezh
Zertifikat automatisch erneuern
Um das Let’s Encrypt-Zertifikat automatisch zu erneuern, bearbeiten Sie die Crontab-Datei des Root-Benutzers.
sudo crontab -e
Fügen Sie die folgende Zeile am Ende der Datei hinzu.
@daily letsencrypt renew --quiet && systemctl reload apache2
Wenn Sie Nginx verwenden, ersetzen Sie apache2 durch nginx.
@daily letsencrypt renew --quiet && systemctl reload nginx
Das Neuladen ist erforderlich, damit der Webserver das neue Zertifikat abholen kann.
Das ist es! Ich hoffe, dieses Tutorial hat Ihnen geholfen, den Sonerezh-Musik-Streaming-Server auf Ubuntu 16.04 mit Apache oder Nginx zu installieren. Sehen Sie sich auch an, wie der Subsonic-Musik-Streaming-Server installiert wird.