Koel adalah aplikasi streaming audio pribadi berbasis web yang ditulis dalam Vue.js di sisi klien dan Laravel di sisi server. Tutorial ini akan membahas cara menginstal Koel di server berbasis Ubuntu 18.04.
Prasyarat
-
Server yang menjalankan Ubuntu 18.04.
-
Pengguna sudo non-root.
-
Pastikan semuanya diperbarui.
$ sudo apt update &&sudo apt upgrade
-
Beberapa paket yang dibutuhkan sistem Anda.
$ sudo apt install ca-certificates curl unzip build-essential libpng-dev gnupg2 lsb-release ufw -y
Beberapa paket ini mungkin sudah diinstal pada sistem Anda.
Konfigurasi Firewall
Langkah pertama adalah mengkonfigurasi firewall. Sebelum mengaktifkan firewall, kita harus mengizinkan port SSH jika tidak, server kita akan terkunci.
$ sudo ufw izinkan OpenSSH
Aktifkan firewall.
$ sudo ufw aktifkan
Izinkan port HTTP dan HTTPS.
$ sudo ufw izinkan http
$ sudo ufw izinkan https
Periksa status firewall.
$ sudo ufw status
Anda akan melihat keluaran serupa.
Statusuntuk bertindak dari
------- ----
OpenSsh Izinkan di mana saja
80 /tcp memungkinkan di mana saja
443 /TCP Izinkan di mana saja
OpenSsh (v6) Izinkan Anywhere (v6)
80 /tcp (v6) Izinkan di mana saja (v6)
443 /tcp (v6) Izinkan di mana saja (v6)
Instal Git
Kita akan mulai dengan menginstal Git.
$ sudo apt install git -y
$ git config --global user.name "Nama Anda"
$ git config --global user.email "[email protected]"
Instal Node.js
Kami akan menginstal Node 10.x alih-alih 12.x terbaru karena Koel mengemas beberapa pustaka usang yang tidak kompatibel dengan Node 12.
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt install -y nodejs
Periksa apakah Node sudah terpasang dengan benar.
$ node --version
Anda akan melihat keluaran serupa.
v10.17.0
Pasang Benang
Instal manajer paket Benang.
$ 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 yarn
Periksa apakah Benang berfungsi dengan benar.
$ benang --version
Anda akan melihat keluaran serupa.
1.19.1
Instal PHP
Instal PHP 7.2 dengan semua ekstensi yang diperlukan.
$ 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
Periksa apakah PHP berfungsi dengan benar.
$ php --version
Anda akan melihat keluaran serupa.
PHP 7.2.24-1+ubuntu18.04.1+deb.sury.org+1 (cli) (dibuat:24 Okt 2019 18:29:11) ( NTS )
Hak Cipta (c) 1997-2018 Grup PHP
Zend Engine v3.2.0, Hak Cipta (c) 1998-2018 Zend Technologies
dengan Zend OPcache v7.2.24-1+ubuntu18.04.1+deb.sury.org+1, Hak Cipta (c ) 1999-2018, oleh Zend Technologies
Instal MariaDB
MariaDB adalah pengganti drop-in untuk MySQL yang berarti perintah untuk menjalankan dan mengoperasikan MariaDB sama dengan perintah untuk MySQL. Untuk menginstal MariaDB, jalankan perintah berikut.
$ sudo apt install mariadb-server
Periksa apakah MariaDB diinstal dengan benar.
$ mysql --version
Anda akan melihat output berikut.
mysql Ver 15.1 Distrib 10.1.41-MariaDB, untuk debian-linux-gnu (x86_64) menggunakan readline 5.2
Jalankan perintah berikut untuk melakukan konfigurasi default seperti memberikan kata sandi root, menghapus pengguna anonim, melarang login root dari jarak jauh dan menjatuhkan tabel pengujian. Masukkan ya untuk semuanya dan siapkan kata sandi root.
$ sudo mysql_secure_installation
Ada peringatan dengan menyiapkan kata sandi root. MariaDB secara default memungkinkan pengguna root sistem untuk masuk ke MariaDB tanpa kata sandi. Tetapi jika Anda akan menggunakan aplikasi pihak ke-3 untuk mengakses melalui root, kata sandi adalah suatu keharusan jika tidak, aplikasi seperti PHPMyAdmin akan gagal. Untuk ini, Anda perlu menonaktifkan otentikasi berbasis plugin yang merupakan opsi default di MariaDB.
Untuk Menonaktifkan otentikasi plugin dan memulihkan kata sandi root, masukkan prompt MySQL terlebih dahulu dengan menggunakan perintah berikut.
$ sudo mysql -u root
Sekarang masukkan perintah berikut untuk menonaktifkan otentikasi plugin.
gunakan mysql;
perbarui set pengguna plugin='' where User='root';
flush privileges;
keluar
Setelah ini restart layanan MariaDB Anda.
$ sudo systemctl restart mariadb.service
Itu dia. Lain kali Anda ingin login ke MySQL, gunakan perintah berikut
$ sudo mysql -u root -p
Masukkan kata sandi root Anda saat diminta.
Konfigurasi MariaDB untuk Koel
Sekarang kita perlu menyiapkan database yang akan digunakan untuk aplikasi Koel. Untuk melakukan itu login ke MySQL prompt. Kami akan berasumsi bahwa Anda menggunakan metode otentikasi default MariaDB (yaitu tanpa menggunakan kata sandi root) untuk sisa tutorial.
$ sudo mysql -u root
Setelah di prompt, masukkan perintah berikut yang akan mengatur database bernama koelmusic dan pengguna database bernama koeluser dan berikan akses ke database.
mysql> BUAT DATABASE koelmusic;
mysql> BUAT PENGGUNA 'koeluser'@'localhost' DIIDENTIFIKASI DENGAN 'yourpassword';
mysql> BERIKAN SEMUA HAK ISTIMEWA DI koelmusic.* KEPADA 'koeluser'@'localhost ';
mysql> HAK ISTIMEWA FLUSH;
mysql> keluar
Instal Nginx
Instal server Nginx.
$ sudo apt install nginx
Periksa apakah itu berfungsi dengan benar.
$ nginx -v
Anda akan melihat output berikut.
versi nginx:nginx/1.14.0 (Ubuntu)
Jalankan perintah berikut untuk menambahkan file konfigurasi untuk Koel.
$ sudo nano /etc/nginx/sites-available/koel.conf
Rekatkan kode berikut di 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;
# Hanya daftar putih index.php, robots.txt, dan beberapa rute khusus
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;
}
lokasi / {
try_files $uri $uri/ /index.php?$args;
}
lokasi ~ \.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./var/run/ fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_intercept_errors on;
include fastcgi_params;
}
}File ini mengasumsikan bahwa kita akan menginstal Koel ke domain
koel.example.com
dan di direktori/var/www/koel
.Aktifkan file konfigurasi ini dengan menautkannya ke
sites-enabled
direktori.$ sudo ln -s /etc/nginx/sites-available/koel.conf /etc/nginx/sites-enabled/Uji konfigurasi.
$ sudo nginx -tAnda akan melihat output berikut yang menunjukkan konfigurasi Anda benar.
nginx:file konfigurasi /etc/nginx/nginx.conf sintaks ok
nginx:file konfigurasi /etc/nginx/nginx.conf tes berhasilMuat ulang layanan Nginx.
$ sudo systemctl reload nginxInstal Komposer
Ini adalah hal terakhir yang kita butuhkan sebelum melanjutkan ke instalasi.
Masukkan perintah berikut untuk menginstal Komposer.
$ 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/composerPeriksa apakah itu berfungsi dengan benar.
$ komposer --versionAnda akan melihat output berikut.
Versi komposer 1.9.1 01-11-2019 17:20:17Instal Koel
Buat folder root dokumen kosong untuk Koel.
$ sudo mkdir -p /var/www/koel-p argumen memastikan bahwa direktori induk
var
danwww
secara otomatis dibuat jika tidak ada.Navigasikan ke folder root dokumen.
$ cd /var/www/koelUbah kepemilikan root dokumen menjadi
user
yang merupakan pengguna non-root yang kami gunakan untuk tutorial.$ sudo chown -R user:user /var/www/koelKloning repositori Koel Git dan checkout versi terbarunya. Anda dapat memeriksa versi terbaru dari halaman rilisnya.
$ git clone --recurse-submodules https://github.com/phanan/koel.git .
$ git checkout v4.1.1Instal dependensi.
$ instal komposerJalankan perintah berikut untuk mengatur database dan akun admin. Masukkan mysql sebagai tipe database, lewati port dan masukkan kredensial database yang kami buat di atas. Untuk folder media, Anda dapat memasukkan sesuatu seperti
/home/user/songs
.$ php artisan koel:initUbah kepemilikan folder root dokumen kembali ke
www-data
pengguna.$ sudo chown -R www-data:www-data /var/www/koelPengaturan sekarang selesai. Buka
koel.example.com
di browser Anda dan masuk dengan kredensial yang Anda buat di atas dan mulai streaming. Situs web Koel juga dapat diakses melalui seluler.Konfigurasi Koel
Ada detail lebih lanjut yang dapat Anda konfigurasikan dengan mengedit
.env
file dengan perintah berikut.$ sudo nano /var/www/koel/.envDi sini Anda dapat memasukkan detail SMTP Anda, mengonfigurasi Youtube dan Last.fm untuk Koel dan melakukan lebih banyak hal.
Muat ulang server Nginx untuk menerapkan perubahan.
Jika Anda ingin mengatur ulang kata sandi admin, Anda dapat melakukannya dengan mengeluarkan perintah berikut.
$ php artisan koel:admin:change-passwordJika Anda ingin memindai perpustakaan media untuk file yang diperbarui, Anda dapat melakukannya dengan perintah berikut.
$ php artisan koel:syncAnda akan melihat output berikut.
Sinkronisasi Koel dimulai.
953/953 [????????????????????????????????] 100%
Lengkap! 944 lagu baru atau yang diperbarui, 0 lagu yang tidak diubah, dan 9 file yang tidak valid.Akhiri perintah dengan -v tandai yang akan memberi Anda lebih banyak detail seperti kesalahan sinkronisasi.
Anda bahkan dapat mengatur perintah ini sebagai tugas cron, misalnya, untuk dijalankan setiap tengah malam. Untuk melakukannya jalankan perintah berikut.
$ crontab -ePilih 1(nano ) sebagai editor Anda.
Tempel baris berikut di akhir file.
0 0 * * * cd /var/www/koel &&/usr/bin/php artisan koel:sync>/dev/null 2>&1Simpan file dengan menekan Ctrl + X dan memasukkan Y ketika diminta. Sekarang, perpustakaan media Anda akan disinkronkan setiap tengah malam.
Untuk lebih banyak hal, lihat dokumentasi resmi Koel.
Menyiapkan HTTPS menggunakan Let's Encrypt
Untuk menggunakan Let's encrypt, kita perlu menginstal Certbot paket.
Tambahkan repositori.
$ sudo add-apt-repository ppa:certbot/certbotInstal Certbot.
$ sudo apt install python-certbot-nginxInstal sertifikat.
$ sudo certbot --nginx -d koel.example.comJika ini adalah pertama kalinya Anda menggunakan alat di server ini, Anda harus menyetujui persyaratan dan memasukkan alamat email Anda. Katakan tidak ketika ditanya apakah Anda ingin membagikan email Anda dengan yayasan EFF.
Jika berhasil,
certbot
akan menanyakan bagaimana Anda ingin mengonfigurasi setelan HTTPS.Silakan pilih apakah akan mengarahkan ulang lalu lintas HTTP ke HTTPS, menghapus akses HTTP.
--------------------------- -------------------------------------------------- --
1:Tanpa pengalihan - Jangan membuat perubahan lebih lanjut pada konfigurasi server web.
2:Pengalihan - Membuat semua permintaan dialihkan untuk mengamankan akses HTTPS. Pilih ini untuk
situs baru, atau jika Anda yakin situs Anda berfungsi di HTTPS. Anda dapat mengurungkan
perubahan ini dengan mengedit konfigurasi server web Anda.
------------------------------ --------------------------------------------------
Pilih nomor yang sesuai [1-2] lalu [enter] (tekan 'c' untuk membatalkan):Pilih 2 lalu tekan
ENTER
. Sertifikat Anda sekarang diinstal dan diaktifkan. Sertifikat Anda akan diperpanjang secara otomatis dalam 90 hari.Kesimpulan
Ini mengakhiri tutorial kami. Anda dapat mengalirkan media dari server Anda ke isi hati Anda.
Cara Menginstal Server Gitlab dengan Docker di Ubuntu 18.04 LTS Cara Menginstal Logstash di Ubuntu 18.04Ubuntu