Cara Install Koel Music Streaming Server di Ubuntu 18.04

Koel adalah aplikasi streaming audio pribadi berbasis web yang ditulis dalam Vue.js di /client-side/ dan tekonologi Laravel di”  server-side. Tutorial ini akan membahas cara menginstal Koel di server berbasis Ubuntu 18.04.

*Persyaratan*

· Server yang menjalankan Ubuntu 18.04. · Masuk sebagai root atau user biasa dengan hak sudo

*Langkah Awal*

Siapkan zona waktu:

sudo dpkg-reconfigure tzdata

Perbarui paket sistem operasi Anda (software). Ini adalah langkah pertama yang penting karena memastikan Anda memiliki pembaruan terbaru dan perbaikan keamanan untuk paket perangkat lunak default sistem operasi Anda:

apt-get update && apt-get upgrade -y

Instal beberapa paket penting yang diperlukan untuk administrasi dasar sistem operasi Ubuntu:

$ sudo apt install ca-certificates curl unzip build-essential libpng-dev gnupg2 lsb-release ufw -y

Setelah server diperbarui,”  restart untuk menerapkan semua perubahan konfigurasi.

*Konfigurasi Firewall*

Langkah pertama adalah mengkonfigurasi firewall. Sebelum kita mengaktifkan firewall, kita perlu mengizinkan port SSH, jika tidak kita akan terkunci dan tidak bisa akses server dari jaringan eksternal.

$ sudo ufw allow OpenSSH

Enable firewall.

$ sudo ufw enable

Izinkan port HTTP dan HTTPS.

$ sudo ufw allow http $ sudo ufw allow https

Periksa status firewall.

$ sudo ufw status

Anda akan melihat output yang serupa.

Status: active To ”  ”  ”  ”  ”  ”  ”  ”  ”  ”  ”  ”  Action ”  ”  From — ”  ”  ”  ”  ”  ”  ”  ”  ”  ”  ”  ”  —— ”  ”  ” —- OpenSSH ”  ”  ”  ”  ”  ”  ”  ”  ”  ALLOW ”  ”  ”  Anywhere 80/tcp ”  ”  ”  ”  ”  ”  ”  ”  ”  ”  ALLOW ”  ”  ”  Anywhere 443/tcp ”  ”  ”  ”  ”  ”  ”  ”  ”  ALLOW ”  ”  ”  Anywhere OpenSSH (v6) ”  ”  ”  ”  ”  ”  ”  ALLOW ”  ”  ”  Anywhere (v6) 80/tcp (v6) ”  ”  ”  ”  ”  ”  ”  ALLOW ”  ”  ”  Anywhere (v6) 443/tcp (v6) ”  ”  ”  ”  ”  ”  ”  ALLOW ”  ”  ”  Anywhere (v6)

*Install Git di Server*

Kita akan mulai dengan install Git.

$ sudo apt install git -y $ git config –global user.name “Nama Anda” $ git config –global user.email “email_anda@domain.com”

*Install Node.js*

Kita akan menginstal Node 10.x daripada versi” terbaru 12.x , karena Koel mengemas beberapa libraries yang sudah” usang dan 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 diinstal dengan benar.

$ node –version

Anda akan melihat output seperti berikut

v10.17.0

*Install Yarn*

Gunakan perintah berikut untuk Install Yarn package manager.

$ 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 Yarn is berfungsi dengan benar.

$ yarn –version

Anda akan melihat output kurang lebih seperti berikut .

1.19.1

*Install PHP*

Install PHP dan semua PHP extensions yang di perlukan:

$ 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 versi PHP :

$ php –version PHP 7.2.24-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Oct 24 2019 18:29:11) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies ”  with Zend OPcache v7.2.24-1+ubuntu18.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies

*Install MariaDB*

MariaDB adalah pengganti untuk MySQL yang berarti perintah untuk menjalankan dan mengoperasikan MariaDB sama dengan yang untuk MySQL. Untuk menginstal MariaDB, gunakan”  perintah berikut.

$ sudo apt install mariadb-server

Check versi MariaDB :

$ mysql –version

Anda akan melihat output kurang lebih seperti berikut .

mysql Ver 15.1 Distrib 10.1.41-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Mulai dengan menjalankan script mysql_secure_installation untuk melakukan peningkatan keamanan dasar:

sudo mysql_secure_installation

Perintah ini akan mengubah kata sandi root, menghapus pengguna anonim, melarang login root dari jarak jauh dan menghapus database pengujian.

Jawab pertanyaan seperti yang ditunjukkan di bawah ini dan pastikan untuk memilih kata sandi yang aman untuk pengguna root:

Enter current password for root (enter for none): Set root password? [Y/n]: Y Remove anonymous users? [Y/n]: Y Disallow root login remotely? [Y/n]: Y Remove test database and access to it? [Y/n]: Y Reload privilege tables now? [Y/n]: Y

Setelah MariaDB diamankan, masuk ke shell MariaDB dengan perintah berikut:

mysql -u root -p

Berikan kata sandi root Anda, lalu buat database dan user database untuk Koel dengan perintah berikut: Pada contoh ini, kami menggunakan nama database *koelmusik” *dan nama user *koeluser*, ganti kata *koelmusik ,” koeluser,” *sesuai dengan keinginan Anda.

mysql> CREATE DATABASE koelmusik; mysql> CREATE USER ‘koeluser’@’localhost’ IDENTIFIED BY ‘GantiDenganPasswordAnda’; mysql> GRANT ALL PRIVILEGES ON koelmusik.* TO ‘koeluser’@’localhost’; mysql> FLUSH PRIVILEGES; mysql> exit

*Install Nginx*

Install Nginx webserver:

$ sudo apt install nginx

Periksa versi NGINX :

$ nginx -v # nginx version: nginx/1.14.0 (Ubuntu)

Selanjutnya, konfigurasikan NGINX untuk Koel. Kita akan membuat server block untuk Automad CMS dan tambahkan konfigurasi berikut.

$ sudo nano /etc/nginx/sites-available/koel.conf

Copy dan Paste konfigurasi berikut ke 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 only index.php, robots.txt, and some special routes ” 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_path_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; } }

File konfigurasi 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 direktori yang didukung situs.

Aktifkan konfigurasikoel.conf” dengan membuat symlink ke direktori” sites-enabled”  :

$ sudo ln -s /etc/nginx/sites-available/koel.conf /etc/nginx/sites-enabled/

Periksa konfigurasi NGINX untuk melihat tidak ada syntax errors:

sudo nginx -t

Anda akan melihat output berikut yang menunjukkan konfigurasi Anda sudah benar.

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

Reload Nginx” dengan perintah berikut

$ sudo systemctl reload nginx

*Install Composer*

Ini adalah hal terakhir yang kita butuhkan sebelum melanjutkan ke instalasi.

Masukkan perintah berikut untuk menginstal 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/composer

Periksa apakah perintah telah berfungsi dengan benar

$ composer –version

Anda akan melihat output berikut.

Composer version 1.9.1 2019-11-01 17:20:17

*Install Koel CMS*

Buat direktori document root untuk Koel, direktori ini adalah tempat di mana Koel CMS menyimpan semua filenya :

$ sudo mkdir -p /var/www/koel

Argumen -p memastikan bahwa direktori induk var dan www secara otomatis dibuat jika tidak ada. Langkah selanjutnya masuk ke directory root document.

$ cd /var/www/koel

Ubah kepemilikan root document menjadi user biasa dengan hak sudo yang kami gunakan untuk tutorial.

$ sudo chown -R user:user /var/www/koel

Clone repositori Koel Git dan periksa versi terbarunya. Anda dapat memeriksa versi terbaru dari halaman rilisnya.

$ git clone –recurse-submodules https://github.com/phanan/koel.git . $ git checkout v4.1.1

Install dependensi.

$ composer install

Jalankan perintah berikut untuk mengatur basis data dan akun admin. Masukkan *mysql* sebagai tipe database, lewati pengaturan port dan masukkan kredensial database yang kita buat di atas. Untuk folder media, Anda dapat memasukkan sesuatu seperti /home/user/musik.

$ php artisan koel:init

Langkah selanjutnya ubah kepemilikan direktori /var/www/koel menjadi www-data:www-data

$ sudo chown -R www-data:www-data /var/www/koel

Setup 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 ponsel.

*Konfigurasikan Koel*

Ada lebih banyak detail yang bisa Anda konfigurasi dengan mengedit file .env dengan perintah berikut.

$ sudo nano /var/www/koel/.env

Di sini Anda dapat memasukkan detail SMTP Anda, mengkonfigurasi Youtube dan Last.fm untuk Koel dan melakukan lebih banyak hal.

Reload Nginx untuk mengimplementasikan perubahan.

Jika Anda ingin mengatur ulang kata sandi admin Anda, Anda dapat melakukannya dengan mengeluarkan perintah berikut.

$ php artisan koel:admin:change-password

Jika Anda ingin memindai media library untuk file yang diperbarui, Anda dapat melakukannya dengan perintah berikut.

$ php artisan koel:sync

You should see the following output.

Anda akan melihat output berikut.

Koel syncing started. 953/953 [????????????????????????????] 100% Completed! 944 new or updated song(s), 0 unchanged song(s), and 9 invalid file(s).

Sufiks perintah dengan flag -v yang akan memberi Anda lebih banyak detail seperti kesalahan sinkronisasi.

Anda bahkan dapat mengatur perintah ini sebagai cron job, misalnya, untuk dijalankan setiap tengah malam. Untuk melakukannya jalankan perintah berikut.

$ crontab -e

Pilih 1 (*nano*) sebagai editor Anda. Rekatkan baris berikut di akhir file.

0 0 * * * cd /var/www/koel && /usr/bin/php artisan koel:sync >/dev/null 2>&1

Simpan 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.

*Setting HTTPS dengan Let’s Encrypt*

Untuk menggunakan Let’s encrypt, kita perlu menginstal paket Certbot. Langkah pertama adalah tambahkan repositori.

$ sudo add-apt-repository ppa:certbot/certbot

Instal Certbot.

$ sudo apt install python-certbot-nginx

Install” sertifikat

$ sudo certbot –nginx -d koel.example.com

Jika ini pertama kalinya Anda menggunakan tool di server, Anda harus menyetujui persyaratan dan memasukkan alamat email Anda. Jawab no ketika ditanya apakah Anda ingin membagikan email Anda denganEFF foundation.

Jika berhasil, certbot akan bertanya bagaimana Anda ingin mengonfigurasi pengaturan HTTPS Anda.

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. ——————————————————————————- 1: No redirect – Make no further changes to the webserver configuration. 2: Redirect – Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you’re confident your site works on HTTPS. You can undo this change by editing your web server’s configuration. ——————————————————————————- Select the appropriate number [1-2] then [enter] (press ‘c’ to cancel):

Pilih 2 lalu tekan ENTER. Sertifikat Anda sekarang diinstal dan diaktifkan. Sertifikat Anda akan diperpanjang secara otomatis dalam 90 hari.

*Kesimpulan*

Ini menyimpulkan tutorial kami. Anda dapat streaming media dari server Anda.

Leave a Reply

Your email address will not be published.