用koel搭建一个私人音乐电台

前言

在香菇肥牛大佬的博客里看到了这个项目的搭建,跟着走一遍.看看有没有什么坑,顺便分享一下过程

原文链接:https://qing.su/article/personal-music-streaming-server-with-koel.html

koel介绍及预览图

Koel是著名的个人音乐在线播放与电台程序。在英文中,Koel是一种鸟类,它经常发出好听的叫声,该程序也因此得名。Koel完全免费开源,在Github上已经有一万多个Stars, 一千多次Forks.  今天我们将介绍如何在Ubuntu 20.04 LTS系统中搭建Koel私人音乐电台。

准备工作

一台服务器:最低内存为1g,本文中使用1h2g的云服务器,演示系统为Ubuntu20.04 LTS

一个域名:二级域名即可.比如说我的域名 koel.wangfuchao.com

下面就演示一下怎么操作

域名解析

首先我们到自己的域名解析处解析一下自己的域名.

我的是阿里云,在阿里云控制台解析域名到我的服务器ip上.

安装Nginx服务器与PHP

先输入 su root 进入root用户,本身root用户登录的可以无视.

然后输入命令apt-get updateapt-get upgrade 更新一下.以防出现不必要的错误

输入以下命令来从包管理器安装Nginx

apt-get install nginx git

继续输入以下命令 从包管理器安装PHP.  这里,我们将安装默认的PHP7.4, 并安装一系列需要的PHP拓展。

apt-get install php php-bcmath php-json php-mbstring php-xml php-common openssl libssl-dev php-mysql php-dev php-zip php-curl php-fpm

需要注意的是,从包管理器安装PHP 7.4的时候,会一并安装上Apache2服务器。因此,安装PHP和各组件时会报错,如下图。您可以无视。

安装完毕后,执行下面的命令卸载Apache2.

apt-get remove apache2 && apt-get autoremove

Koel在播放音乐时需要较大的PHP内存,因此我们需要修改PHP的memory_limit参数。编辑文件/etc/php/7.4/cli/php.ini, 将memory_limit参数值修改为512M.

输入vi /etc/php/7.4/cli/php.ini进入如下界面

然后往下找,找到memory_limit = ,然后按下i键进入编辑模式,将等号后面的值修改成512M

修改完成后先按ESC,再输入:wq保存退出

修改完毕后,可以不用着急重新载入Nginx. 我们后面配置Nginx的时候可以一并操作。

安装与配置MariaDB数据库

MariaDB是MySQL的替代产品,您也可以使用MySQL.  我们将直接从包管理器安装MariaDB.

执行以下命令来安装MariaDB:

apt-get install mariadb-server

安装好了MariaDB后需要设置一些基础的安全选项。

执行mysql_secure_installation,会出现以下界面,由于我们是第一次安装,所以在如下界面直接按下回车键.

之后会提示你设置root密码,输入y按照指示操作即可.

连续两次输入密码后,会提示你是否删除匿名用户,这里选择y即可.

之后的几项按照我下图所示都选择y即可.

接下来我们要新建一个数据库,用来提供给Koel程序使用。首先,进入MariaDB命令行:

输入:mysql -u root -p,会提示你输入密码,密码就是我们上文所设置的密码.

进入之后界面如下:

然后我们来新建一个数据库。

依次输入以下命令

CREATE DATABASE koeldb;
GRANT ALL ON koeldb.* TO 'koeluser' IDENTIFIED BY 'koelpasswd';
quit;

输入命令时,不要忘记;

这样,我们新建了一个名为koeldb的数据库,数据库用户名为koeluser, 密码为koelpasswd.

这个用户名和密码按照自己的喜好来修改即可!

安装Composer与Laravel

Koel使用Laravel PHP框架作为后端。因此,我们需要安装Laravel框架。这里我们使用Composer来安装。

首先,安装Composer,依次输入以下命令:

wget https://getcomposer.org/installer
php installer
mv composer.phar /usr/local/bin/composer

然后,使用Composer安装Laravel.

composer global require laravel/installer

箭头①所示可以不用管,箭头②说明我们要安装一下unzip,输入apt-get install unzip来安装即可

安装NodeJS与Yarn

Koel的前端使用了Vue JS框架,因此我们需要安装NodeJS与yarn来编译生成前端JS文件。

首先,安装NodeJS. 请注意,Koel目前仅支持10.x版本的NodeJS. 新版本比如14.x版本的NodeJS无法正常运行Koel.

依次执行下述命令:

curl -sL https://deb.nodesource.com/setup_10.x | bash -
apt-get install nodejs

然后,使用Node安装yarn.执行下面命令:

npm install -g yarn

安装Koel主程序

安装好所有这些组件之后,我们就可以开始部署Koel主程序了。我们将Koel主程序部署在/srv/www/koel/public_html/目录,您可以根据个人喜欢部署在其他目录。

依次执行下方三条命令

mkdir -p /srv/www/koel/public_html
cd /srv/www/koel/public_html
git clone --recurse-submodules https://github.com/phanan/koel.git .

接下来,您可以前往https://github.com/phanan/koel/releases查看最新的Koel版本号,然后安装对应的版本。我这里参考香菇肥牛大佬的博客,选用的也是是4.4.0

依次执行:

git checkout v4.4.0
composer install

此时,我们需要编辑文件.env, 配置数据库与管理员用户信息。输入vi .env进入文件,在这个文件中,我们有三处需要修改。

首先,在下面几行中,填入我们前面安装和配置数据库时建立的数据库信息:

DB_DATABASE=koeldb
DB_USERNAME=koeluser
DB_PASSWORD=koelpasswd

在下面几行中填入管理员用户信息:姓名密码啥的都按照自己喜好修改一下.

ADMIN_NAME="wfc"
ADMIN_EMAIL=hi@example.com
ADMIN_PASSWORD=wangfuchao.com

更改APP_URL的值,将其修改为您的Koel域名:

APP_URL=http://koel.wangfuchao.com

修改完毕后,保存退出。

最后,我们初始化Koel.  该步骤将初始化Koel数据库,并自动执行yarn install安装前端文件。这一步需要较长时间,且中途可能会遇到各种warning, 可以不予理会。

php artisan koel:init

配置Nginx虚拟主机文件

Koel安装目录中提供了默认的Nginx虚拟主机配置文件,我们仅需稍微修改即可。请注意,您当前的操作目录应该是/srv/www/koel/public_html/.

先执行:cp nginx.conf.example /etc/nginx/conf.d/koel.conf

然后vi /etc/nginx/conf.d/koel.conf:

将默认的程序路径/var/www/koel设置为我们安装的路径:

将上图中红框内容改成下面的.

root /srv/www/koel/public_html;

之后依次找到下面的内容,并修改.

找到server_name选项,将其值设置为您的域名:
server_name koel.wangfuchao.com;
找到fastcgi_pass选项。我们将其值设置为PHP-FPM的Unix Socket文件路径
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
编辑完毕后,退出该文件。然后,设置程序目录的访问权限,并重新载入Nginx配置文件,使得配置生效。
chown -R www-data:www-data .
service nginx reload

此时,在浏览器中访问http://koel.wangfuchao.com, 将可以正确打开Koel登录界面了。

配置Let’s Encrypt安全证书

配置好Nginx虚拟主机之后,我们还可以使用Let’s Encrypt免费TLS安全证书来提高安全性。Ubuntu 20.04 LTS系统的包管理器自带了certbot及配套的Nginx-certbot安装程序,我们直接从包管理器安装即可。

apt-get install certbot python3-certbot-nginx

然后,让certbot自动帮我们配置证书即可。(域名记得修改成自己的)

certbot --nginx --redirect --staple-ocsp -d koel.wangfuchao.com

证书安装好之后,Certbot会自动帮我们重新载入Nginx配置文件。

由于更改了网站URL, 我们需要重新编译一下前端js文件。修改文件.env, 将APP_URL=http://koel.wangfuchao.com修改为APP_URL=https://koel.wangfuchao.com

然后重新编译前端文件。执行:php artisan koel:init

此时,访问https://koel.wangfuchao.com, 即可看到Koel登录界面与安装好的安全证书了。我们使用之前设置的管理员账户即可登录并同步音乐文件。

使用Koel

最后,我们简要介绍一下如何使用Koel. 首先,我们需要把所有的音乐文件与目录放在服务器的一个目录里面。比如,我这里放在目录/media中。

然后,我们登录Koel, 点击左侧Settings, 在Media Path中输入我们的音乐文件存储位置,比如这里的/media. 请注意,存储在该目录的子目录中的所有音乐文件都会被包括在Koel库中。输入完毕后,点击Scan, 系统将会自动索引您的音乐文件。

索引完毕后,就可以开始听歌啦。

© 版权声明
THE END
喜欢就支持以下吧
点赞1赞赏 分享
评论 共3条

请登录后发表评论

    暂无评论内容