Koel ist eine webbasierte persönliche Audio-Streaming-App, die clientseitig in Vue.js und serverseitig in Laravel geschrieben ist. Dieses Tutorial behandelt die Installation von Koel auf einem Ubuntu 18.04-basierten Server.
Voraussetzungen
-
Ein Server mit Ubuntu 18.04.
-
Ein Nicht-Root-Sudo-Benutzer.
-
Stellen Sie sicher, dass alles aktualisiert ist.
$ sudo apt update &&sudo apt upgrade
-
Einige Pakete, die Ihr System benötigt.
$ sudo apt install ca-certificates curl unzip build-essential libpng-dev gnupg2 lsb-release ufw -y
Einige dieser Pakete sind möglicherweise bereits auf Ihrem System installiert.
Firewall konfigurieren
Der erste Schritt besteht darin, die Firewall zu konfigurieren. Bevor wir die Firewall aktivieren, müssen wir SSH-Ports zulassen, sonst werden wir von unserem Server ausgeschlossen.
$ sudo ufw OpenSSH zulassen
Aktivieren Sie die Firewall.
$ sudo ufw aktivieren
HTTP- und HTTPS-Ports zulassen.
$ sudo ufw erlauben http
$ sudo ufw erlauben https
Überprüfen Sie den Status der Firewall.
$ sudo ufw-Status
Sie sollten eine ähnliche Ausgabe sehen.
Status:Active
zu Aktion von
------- ----
OpenSSH EINFACHEN
80 /TCP ENWEILT
443 Ermöglichen /TCP Ermöglichen Sie irgendwo
OpenSSH (v6) Anywhere (v6)
80 /tcp (v6) Ermöglichen>Git installieren
Wir beginnen mit der Installation von Git.
$ sudo apt install git -y
$ git config --global user.name "Ihr Name"
$ git config --global user.email "[email protected]"Installieren Sie Node.js
Wir werden Node 10.x anstelle des neuesten 12.x installieren, da Koel einige veraltete Bibliotheken enthält, die nicht mit Node 12 kompatibel sind.
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt install -y nodejsÜberprüfen Sie, ob Node richtig installiert ist.
$ node --versionSie sollten eine ähnliche Ausgabe sehen.
v10.17.0Garn installieren
Installieren Sie den Yarn-Paketmanager.
$ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
$ echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
$ sudo apt update &&sudo apt install -y GarnÜberprüfen Sie, ob Yarn richtig funktioniert.
$ Garn - VersionSie sollten eine ähnliche Ausgabe sehen.
1.19.1Installieren Sie PHP
Installieren Sie PHP 7.2 mit allen erforderlichen Erweiterungen.
$ sudo apt install -y php7.2-fpm php7.2-mbstring php7.2-bcmath php7.2-xml php7.2-mysql php7.2-curl php7.2-zipÜberprüfen Sie, ob PHP korrekt funktioniert.
$ php --versionSie sollten eine ähnliche Ausgabe sehen.
PHP 7.2.24-1+ubuntu18.04.1+deb.sury.org+1 (cli) (erstellt:24. Okt. 2019 18:29:11) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
mit Zend OPcache v7.2.24-1+ubuntu18.04.1+deb.sury.org+1, Copyright (c ) 1999-2018, von Zend TechnologiesInstallieren Sie MariaDB
MariaDB ist ein Drop-in-Ersatz für MySQL, was bedeutet, dass die Befehle zum Ausführen und Betreiben von MariaDB dieselben sind wie die für MySQL. Um MariaDB zu installieren, führen Sie die folgenden Befehle aus.
$ sudo apt install mariadb-serverÜberprüfen Sie, ob MariaDB korrekt installiert wurde.
$ mysql --versionSie sollten die folgende Ausgabe sehen.
mysql Ver 15.1 Distrib 10.1.41-MariaDB, für debian-linux-gnu (x86_64) unter Verwendung von readline 5.2Führen Sie den folgenden Befehl aus, um eine Standardkonfiguration durchzuführen, z. B. das Vergeben eines Root-Passworts, das Entfernen anonymer Benutzer, das Unterbinden der Root-Anmeldung aus der Ferne und das Löschen von Testtabellen. Geben Sie Ja ein für alles und richten Sie ein Root-Passwort ein.
$ sudo mysql_secure_installationEs gibt eine Einschränkung beim Einrichten des Root-Passworts. MariaDB erlaubt standardmäßig System-Root-Benutzern, sich ohne Passwort bei MariaDB anzumelden. Wenn Sie jedoch eine Anwendung eines Drittanbieters für den Zugriff über Root verwenden, ist ein Passwort ein Muss, da sonst Apps wie PHPMyAdmin fehlschlagen. Dazu müssen Sie die Plugin-basierte Authentifizierung deaktivieren, die die Standardoption von MariaDB ist.
Um die Plugin-Authentifizierung zu deaktivieren und das Root-Passwort wiederherzustellen, geben Sie zuerst die MySQL-Eingabeaufforderung ein, indem Sie den folgenden Befehl verwenden.
$ sudo mysql -u rootGeben Sie nun die folgenden Befehle ein, um die Plugin-Authentifizierung zu deaktivieren.
use mysql;
update user set plugin='' where User='root';
flushprivilegien;
exitStarten Sie danach Ihren MariaDB-Dienst neu.
$ sudo systemctl restart mariadb.serviceDas ist es. Wenn Sie sich das nächste Mal bei MySQL anmelden möchten, verwenden Sie den folgenden Befehl
$ sudo mysql -u root -pGeben Sie Ihr Root-Passwort ein, wenn Sie dazu aufgefordert werden.
MariaDB für Koel konfigurieren
Jetzt müssen wir eine Datenbank einrichten, die für die Koel-Anwendung verwendet werden soll. Melden Sie sich dazu bei der MySQL-Eingabeaufforderung an. Wir gehen davon aus, dass Sie für den Rest des Tutorials die Standard-Authentifizierungsmethode von MariaDB verwenden (d. h. ohne Verwendung des Root-Passworts).
$ sudo mysql -u rootGeben Sie an der Eingabeaufforderung die folgenden Befehle ein, die eine Datenbank mit dem Namen koelmusic einrichten und ein Datenbankbenutzer namens koeluser und ihm Zugriff auf die Datenbank gewähren.
mysql> DATENBANK ERSTELLEN koelmusic;
mysql> BENUTZER ERSTELLEN 'koeluser'@'localhost' IDENTIFIZIERT DURCH 'ihrpasswort';
mysql> GEWÄHREN SIE ALLE PRIVILEGIEN AUF koelmusic.* 'koeluser'@'localhost ';
mysql> FLUSH PRIVILEGES;
mysql> beendenInstallieren Sie Nginx
Nginx-Server installieren.
$ sudo apt install nginxÜberprüfen Sie, ob es richtig funktioniert.
$ nginx -vSie sollten die folgende Ausgabe sehen.
nginx-Version:nginx/1.14.0 (Ubuntu)Führen Sie den folgenden Befehl aus, um eine Konfigurationsdatei für Koel hinzuzufügen.
$ sudo nano /etc/nginx/sites-available/koel.confFügen Sie den folgenden Code in den Editor ein.
server {
listen *:80;
server_name koel.example.com;
root /var/www/koel;
index index.php;
gzip on;
gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript application/json;
gzip_comp_level 9;
# Whitelist nur index.php, robots.txt und einige spezielle Routen
if ($request_uri !~ ^/$|index\.php|robots\.txt|(public|api) /|remote|api-docs|sw\.js) {
return 404;
}
location /media/ {
internal;
alias $upstream_http_x_media_root;
access_log /var/log/nginx/koel.access.log;
error_log /var/log/nginx/koel.error.log;
}
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
try_files $uri $uri/ /index.php?$args;
fastcgi_param PATH_INFO $fastcgi_pat h_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_intercept_errors on;
fastcgi_params einschließen;
}
}Diese Datei geht davon aus, dass wir Koel in der Domäne
koel.example.com
installieren werden und im Verzeichnis/var/www/koel
.Aktivieren Sie diese Konfigurationsdatei, indem Sie sie mit
sites-enabled
verknüpfen Verzeichnis.$ sudo ln -s /etc/nginx/sites-available/koel.conf /etc/nginx/sites-enabled/Testen Sie die Konfiguration.
$ sudo nginx -tSie sollten die folgende Ausgabe sehen, die anzeigt, dass Ihre Konfiguration korrekt ist.
nginx:Die Syntax der Konfigurationsdatei /etc/nginx/nginx.conf ist in Ordnung
nginx:Der Test der Konfigurationsdatei /etc/nginx/nginx.conf ist erfolgreichLaden Sie den Nginx-Dienst neu.
$ sudo systemctl reload nginxComposer installieren
Das ist das Letzte, was wir brauchen, bevor wir mit der Installation fortfahren.
Geben Sie die folgenden Befehle ein, um Composer zu installieren.
$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$ php composer-setup.php
$ php - r "unlink('composer-setup.php');"
$ sudo mv composer.phar /usr/local/bin/composerÜberprüfen Sie, ob es richtig funktioniert.
$ composer --versionSie sollten die folgende Ausgabe sehen.
Composer-Version 1.9.1 2019-11-01 17:20:17Koel installieren
Erstellen Sie einen leeren Dokumentstammordner für Koel.
$ sudo mkdir -p /var/www/koelDas -p Argument stellt sicher, dass übergeordnete Verzeichnisse
var
undwww
werden automatisch erstellt, wenn sie nicht vorhanden sind.Navigieren Sie zum Stammordner des Dokuments.
$ cd /var/www/koelÄndern Sie den Besitz des Dokumentenstamms zu
user
Dies ist der Nicht-Root-Benutzer, den wir für das Tutorial verwendet haben.$ sudo chown -R Benutzer:Benutzer /var/www/koelKlonen Sie das Koel Git-Repository und checken Sie die neueste Version aus. Sie können die neueste Version auf der Veröffentlichungsseite überprüfen.
$ git clone --recurse-submodules https://github.com/phanan/koel.git .
$ git checkout v4.1.1Installieren Sie die Abhängigkeiten.
$ Composer installierenFühren Sie den folgenden Befehl aus, um die Datenbank und das Administratorkonto einzurichten. Geben Sie mysql ein Überspringen Sie als Datenbanktyp den Port und geben Sie die oben erstellten Datenbankanmeldeinformationen ein. Für den Medienordner können Sie so etwas wie
/home/user/songs
eingeben .$ php artisan koel:initÄndern Sie den Eigentümer des Dokumentenstammordners zurück zu
www-data
Benutzer.$ sudo chown -R www-data:www-data /var/www/koelDie Einrichtung ist nun abgeschlossen. Öffnen Sie
koel.example.com
in Ihrem Browser und melden Sie sich mit den oben erstellten Anmeldeinformationen an und starten Sie das Streaming. Die Website von Koel ist auch über Mobilgeräte zugänglich.Koel konfigurieren
Es gibt weitere Details, die Sie konfigurieren können, indem Sie die Datei
.env
bearbeiten Datei mit dem folgenden Befehl.$ sudo nano /var/www/koel/.envHier können Sie Ihre SMTP-Details eingeben, Youtube und Last.fm für Koel konfigurieren und vieles mehr.
Laden Sie den Nginx-Server neu, um die Änderungen zu implementieren.
Wenn Sie Ihr Admin-Passwort zurücksetzen möchten, können Sie dies tun, indem Sie den folgenden Befehl ausführen.
$ php artisan koel:admin:change-passwordWenn Sie die Medienbibliothek nach aktualisierten Dateien durchsuchen möchten, können Sie dies mit dem folgenden Befehl tun.
$ php artisan koel:syncSie sollten die folgende Ausgabe sehen.
Koel-Synchronisierung gestartet.
953/953 [????????????????????????????] 100 %
Abgeschlossen! 944 neue oder aktualisierte Songs, 0 unveränderte Songs und 9 ungültige Datei(en).Suffieren Sie den Befehl mit -v Flag, das Ihnen weitere Details wie Synchronisierungsfehler liefert.
Sie können diesen Befehl sogar als Cron-Job festlegen, sodass er beispielsweise jede Mitternacht ausgeführt wird. Führen Sie dazu den folgenden Befehl aus.
$ crontab -eWählen Sie 1 (nano ) als Ihr Bearbeiter.
Fügen Sie die folgende Zeile am Ende der Datei ein.
0 0 * * * cd /var/www/koel &&/usr/bin/php artisan koel:sync>/dev/null 2>&1Speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie dazu aufgefordert werden. Jetzt wird Ihre Medienbibliothek jede Mitternacht synchronisiert.
Weitere Informationen finden Sie in der offiziellen Koel-Dokumentation.
Einrichten von HTTPS mit Let's Encrypt
Für die Verwendung von Let's encrypt müssen wir den Certbot installieren Paket.
Repository hinzufügen.
$ sudo add-apt-repository ppa:certbot/certbotCertbot installieren.
$ sudo apt install python-certbot-nginxInstallieren Sie das Zertifikat.
$ sudo certbot --nginx -d koel.example.comWenn Sie das Tool zum ersten Mal auf diesem Server verwenden, müssen Sie den Bedingungen zustimmen und Ihre E-Mail-Adresse eingeben. Sag nein wenn Sie gefragt werden, ob Sie Ihre E-Mail mit der EFF-Stiftung teilen möchten.
Wenn das erfolgreich ist,
certbot
wird Sie fragen, wie Sie Ihre HTTPS-Einstellungen konfigurieren möchten.Bitte wählen Sie aus, ob der HTTP-Datenverkehr auf HTTPS umgeleitet werden soll oder nicht, wodurch der HTTP-Zugriff entfernt wird.
--------------------------- -------------------------------------------------- --
1:Keine Umleitung – Keine weiteren Änderungen an der Webserver-Konfiguration vornehmen.
2:Umleitung – Alle Anfragen auf sicheren HTTPS-Zugriff umleiten. Wählen Sie dies für
neue Websites oder wenn Sie sicher sind, dass Ihre Website mit HTTPS funktioniert. Sie können diese
Änderung rückgängig machen, indem Sie die Konfiguration Ihres Webservers bearbeiten.
------------------------------ -------------------------------------------------
Wählen Sie die entsprechende Nummer [1-2] und dann [enter] (drücken Sie 'c' zum Abbrechen):Wählen Sie 2 und drücken Sie dann
ENTER
. Ihr Zertifikat ist nun installiert und aktiviert. Ihr Zertifikat verlängert sich automatisch in 90 Tagen.Schlussfolgerung
Damit ist unser Tutorial abgeschlossen. Sie können nach Herzenslust Medien von Ihrem Server streamen.