Koel è un'app di streaming audio personale basata sul Web scritta in Vue.js sul lato client e Laravel sul lato server. Questo tutorial tratterà come installare Koel su un server basato su Ubuntu 18.04.
Prerequisiti
-
Un server che esegue Ubuntu 18.04.
-
Un utente sudo non root.
-
Assicurati che tutto sia aggiornato.
$ sudo apt update &&sudo apt upgrade
-
Pochi pacchetti di cui il tuo sistema ha bisogno.
$ sudo apt install ca-certificates curl unzip build-essential libpng-dev gnupg2 lsb-release ufw -y
Alcuni di questi pacchetti potrebbero essere già installati sul tuo sistema.
Configura Firewall
Il primo passo è configurare il firewall. Prima di abilitare il firewall, dobbiamo consentire le porte SSH, altrimenti verremo bloccati dal nostro server.
$ sudo ufw consente OpenSSH
Abilita il firewall.
$ sudo ufw abilitato
Consenti porte HTTP e HTTPS.
$ sudo ufw consenti http
$ sudo ufw consenti https
Controlla lo stato del firewall.
Stato $ sudo ufw
Dovresti vedere un output simile.
Stato:attivo
all'azione da
------- ----
OpenSsh Consenti ovunque
80 /TCP Consenti ovunque
443 /TCP Consenti ovunque
opensssh (V6) consentire ovunque (V6)
80 /TCP (V6) consentire ovunque (V6)
443 /TCP (V6) consentire ovunque (V6)Installa Git
Inizieremo installando Git.
$ sudo apt install git -y
$ git config --global user.name "Il tuo nome"
$ git config --global user.email "[email protected]"Installa Node.js
Installeremo il Nodo 10.x invece dell'ultimo 12.x perché Koel impacchetta alcune librerie obsolete che non sono compatibili con il Nodo 12.
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt install -y nodejsControlla se Node è installato correttamente.
$ nodo --versioneDovresti vedere un output simile.
v10.17.0Installa il filato
Installa il gestore di pacchetti di filati.
$ 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 yarnControlla se il filato funziona correttamente.
$ filato --versioneDovresti vedere un output simile.
1.19.1Installa PHP
Installa PHP 7.2 con tutte le estensioni richieste.
$ sudo apt install -y php7.2-fpm php7.2-mbstring php7.2-bcmath php7.2-xml php7.2-mysql php7.2-curl php7.2-zipControlla se PHP funziona correttamente.
$ php --versioneDovresti vedere un output simile.
PHP 7.2.24-1+ubuntu18.04.1+deb.sury.org+1 (cli) (costruito:24 ottobre 2019 18:29:11) ( NTS )
Copyright (c) 1997-2018 Il gruppo PHP
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
con Zend OPcache v7.2.24-1+ubuntu18.04.1+deb.sury.org+1, Copyright (c ) 1999-2018, di Zend TechnologiesInstalla MariaDB
MariaDB è un sostituto drop-in di MySQL, il che significa che i comandi per eseguire e far funzionare MariaDB sono gli stessi di MySQL. Per installare MariaDB emettere i seguenti comandi.
$ sudo apt install mariadb-serverVerifica se MariaDB è stata installata correttamente.
$ mysql --versioneDovresti vedere il seguente output.
mysql Ver 15.1 Distrib 10.1.41-MariaDB, per debian-linux-gnu (x86_64) usando readline 5.2Eseguire il comando seguente per eseguire la configurazione predefinita, ad esempio fornire una password di root, rimuovere utenti anonimi, impedire l'accesso come root in remoto e eliminare le tabelle di test. Inserisci sì per tutto e imposta una password di root.
$ sudo mysql_secure_installationC'è un avvertimento con l'impostazione della password di root. MariaDB per impostazione predefinita consente agli utenti root del sistema di accedere a MariaDB senza password. Ma se hai intenzione di utilizzare un'applicazione di terze parti per accedere tramite root, una password è un must altrimenti app come PHPMyAdmin falliranno. Per questo, è necessario disabilitare l'autenticazione basata su plug-in che è l'opzione predefinita su MariaDB.
Per disabilitare l'autenticazione del plug-in e ripristinare la password di root, immettere prima il prompt di MySQL utilizzando il comando seguente.
$ sudo mysql -u rootOra inserisci i seguenti comandi per disabilitare l'autenticazione del plugin.
usa mysql;
update user set plugin='' where User='root';
flush privilegi;
exitDopodiché, riavvia il tuo servizio MariaDB.
$ sudo systemctl riavvia mariadb.serviceQuesto è tutto. La prossima volta che vuoi accedere a MySQL, usa il seguente comando
$ sudo mysql -u root -pInserisci la tua password di root quando richiesto.
Configura MariaDB per Koel
Ora dobbiamo configurare un database da utilizzare per l'applicazione Koel. Per farlo, accedi al prompt di MySQL. Assumiamo che tu stia utilizzando il metodo di autenticazione predefinito di MariaDB (cioè senza usare la password di root) per il resto del tutorial.
$ sudo mysql -u rootUna volta al prompt, inserisci i seguenti comandi che imposteranno un database chiamato koelmusic e un utente del database chiamato koeluser e concedigli l'accesso al database.
mysql> CREA DATABASE koelmusic;
mysql> CREA UTENTE 'koeluser'@'localhost' IDENTIFICATO DA 'yourpassword';
mysql> CONCEDI TUTTI I PRIVILEGI SU koelmusic.* A 'koeluser'@'localhost ';
mysql> PRIVILEGI FLUSH;
mysql> esciInstalla Nginx
Installa il server Nginx.
$ sudo apt install nginxControlla se funziona correttamente.
$ nginx -vDovresti vedere il seguente output.
versione nginx:nginx/1.14.0 (Ubuntu)Esegui il comando seguente per aggiungere un file di configurazione per Koel.
$ sudo nano /etc/nginx/sites-available/koel.confIncolla il codice seguente nell'editor.
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 solo index.php, robots.txt e alcuni percorsi speciali
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;
}
posizione / {
try_files $uri $uri/ /index.php?$args;
}
posizione ~ \.php$ {
file_prova $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;
include fastcgi_params;
}
}Questo file presuppone che installeremo Koel nel dominio
koel.example.com
e nella directory/var/www/koel
.Attiva questo file di configurazione collegandolo a
sites-enabled
directory.$ sudo ln -s /etc/nginx/sites-available/koel.conf /etc/nginx/sites-enabled/Testare la configurazione.
$ sudo nginx -tDovresti vedere il seguente output che indica che la tua configurazione è corretta.
nginx:la sintassi del file di configurazione /etc/nginx/nginx.conf è ok
nginx:il test del file di configurazione /etc/nginx/nginx.conf è riuscitoRicarica il servizio Nginx.
$ sudo systemctl ricarica nginxInstalla il compositore
Questa è l'ultima cosa di cui abbiamo bisogno prima di procedere con l'installazione.
Immettere i seguenti comandi per installare Composer.
$ 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/composerControlla se funziona correttamente.
$ compositore --versionDovresti vedere il seguente output.
Versione del compositore 1.9.1 2019-11-01 17:20:17Installa Koel
Crea una cartella radice del documento vuota per Koel.
$ sudo mkdir -p /var/www/koelIl -p argomento assicura che le directory padre
var
ewww
vengono creati automaticamente se non esistono.Vai alla cartella principale del documento.
$ cd /var/www/koelCambia la proprietà della radice del documento in
user
che è l'utente non root che abbiamo usato per il tutorial.$ sudo chown -R user:user /var/www/koelClona il repository Koel Git e controlla la sua ultima versione. Puoi controllare l'ultima versione dalla sua pagina delle versioni.
$ git clone --recurse-submodules https://github.com/phanan/koel.git .
$ git checkout v4.1.1Installa le dipendenze.
Installazione del compositore $Eseguire il comando seguente per configurare il database e l'account amministratore. Inserisci mysql come tipo di database, salta la porta e inserisci le credenziali del database che abbiamo creato sopra. Per la cartella multimediale, puoi inserire qualcosa come
/home/user/songs
.$ php craft koel:initModifica la proprietà della cartella principale del documento in
www-data
utente.$ sudo chown -R www-data:www-data /var/www/koelLa configurazione è ora completa. Apri
koel.example.com
nel tuo browser e accedi con le credenziali che hai creato sopra e avvia lo streaming. Il sito Web di Koel è accessibile anche tramite dispositivo mobile.Configura Koel
Ci sono ulteriori dettagli che puoi configurare modificando il
.env
file con il seguente comando.$ sudo nano /var/www/koel/.envQui puoi inserire i tuoi dettagli SMTP, configurare Youtube e Last.fm per Koel e fare molte altre cose.
Ricarica il server Nginx per implementare le modifiche.
Se vuoi reimpostare la tua password di amministratore, puoi farlo emettendo il seguente comando.
$ php craft koel:admin:change-passwordSe desideri eseguire la scansione del catalogo multimediale per i file aggiornati, puoi farlo con il seguente comando.
$ php craft koel:syncDovresti vedere il seguente output.
La sincronizzazione di Koel è iniziata.
953/953 [?????????????????????????????????] 100%
Completato! 944 brani nuovi o aggiornati, 0 brani non modificati e 9 file non validi.Aggiungi un suffisso al comando con -v flag che ti fornirà maggiori dettagli come gli errori di sincronizzazione.
Puoi anche impostare questo comando come cron job, ad esempio, da eseguire ogni mezzanotte. Per farlo, esegui il seguente comando.
$ crontab -eSeleziona 1(nano ) come editor.
Incolla la riga seguente alla fine del file.
0 0 * * * cd /var/www/koel &&/usr/bin/php craft koel:sync>/dev/null 2>&1Salva il file premendo Ctrl + X e inserendo Y quando richiesto. Ora, la tua libreria multimediale verrà sincronizzata ogni mezzanotte.
Per ulteriori informazioni fare riferimento alla documentazione ufficiale di Koel.
Configurazione di HTTPS utilizzando Let's Encrypt
Per utilizzare Let's encrypt, dobbiamo installare il Certbot pacchetto.
Aggiungi il repository.
$ sudo add-apt-repository ppa:certbot/certbotInstalla Certbot.
$ sudo apt install python-certbot-nginxInstalla il certificato.
$ sudo certbot --nginx -d koel.example.comSe è la prima volta che utilizzi lo strumento su questo server, devi accettare i termini e inserire il tuo indirizzo email. Dì no quando ti viene chiesto se desideri condividere la tua email con la fondazione EFF.
Se ha esito positivo,
certbot
ti chiederà come desideri configurare le tue impostazioni HTTPS.Scegli se reindirizzare o meno il traffico HTTP su HTTPS, rimuovendo l'accesso HTTP.
---------------------------- -------------------------------------------------- --
1:Nessun reindirizzamento:non apportare ulteriori modifiche alla configurazione del server web.
2:Reindirizzamento:reindirizzare tutte le richieste per proteggere l'accesso HTTPS. Scegli questa opzione per
nuovi siti o se sei sicuro che il tuo sito funzioni su HTTPS. Puoi annullare questa
modifica modificando la configurazione del tuo server web.
------------------------------ --------------------------------------------------
Selezionare il numero appropriato [1-2] quindi [invio] (premere 'c' per annullare):Seleziona 2 e poi premi
ENTER
. Il tuo certificato è ora installato e attivato. Il tuo certificato si rinnoverà automaticamente entro 90 giorni.Conclusione
Questo conclude il nostro tutorial. Puoi eseguire lo streaming di contenuti multimediali dal tuo server al contenuto del tuo cuore.