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 protected]"
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.