前言

之前搭建了koel个人音乐平台,对接fm.last体验起来不错,Lastfm生成数据集。前面文章也有一些错误和一些不好的设置,这里将改正。


更正

1.关于前面文章说的初始化报错。

koel-docker

注:这里有个坑,我看到最后红色提示那里还以为失败,而且还没有提示错在哪里,搜索发现GitHub上有人发issue。但实际是可以使用。

  • 实际上我使用的是docker部署,出现这个错误不会影响程序运行,详情看issues。 但是如果你使用的是编译安装就不行,应该是环境问题。

2.mysql配置问题

之前因为不熟悉docker和iptables的配置,所以我给koel开放外网访问,有一定的安全隐患。安装docker的时候会生成一个docker0虚拟网卡,运行容器会分配一个docker0网段的ip。172.17.0.1/16

ip addr

4: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:6a:91:f5:b9 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
inet6 fe80::42:6aff:fe91:f5b9/64 scope link
valid_lft forever preferred_lft forever

查看容器ip

docker inspect -f '{{.Name}} - {{.NetworkSettings.IPAddress }}' $(docker ps -aq)

image-20210311072337699

看到koel的IP为172.17.0.5,建议使用IP段,容器重启IP可能会变化

mysql -u root -p
create database koel;
create user 'koel'@'172.17.0.%' identified by '654DfdfMOd';
grant all on koel.* to 'koel'@'172.17.0.%' with grant option;

.env配置MySQL如下

DB_CONNECTION=mysql
DB_HOST=172.17.0.1
DB_PORT=3306
DB_DATABASE=koel
DB_USERNAME=koel
DB_PASSWORD=654DfdfMOd

容器里如果通信不了,可以尝试开放iptables

iptables -A INPUT -p tcp -s 172.17.0.0/16 --dport 3306 -j ACCEPT
iptables -A OUTPUT -p tcp -s 172.17.0.0/16 --dport 3306 -j ACCEPT

3.Nginx配置问题

前面配置莫名其妙的,反代端口成了8080(默认tomcat端口),导致一系列‘奇怪’错误

4.gclone自动挂载

使用gclone自动挂载 脚本自动挂载


Last.FM配置

last.fm是一家英国的网络电台和音乐社区,其向发开者提供了丰富的API,于是有很多机构或个人通过调用这些API来生成一些数据集。

配置last.fm

Connecting Koel to Last.fm will instruct Koel to retrieve possible artist and album information from Last.fm as well as support scrobbling. To enable the connection:

这里生成一个api,也可以查看你已经存在的api。这里,回调地址不用填写。

在.env那里添加两个参数LASTFM_API_KEY LASTFM_API_SECRET

点击右上角个人信息,Last.fm Integration那里登录授权

配置文件参考:

APP_NAME=Koel
DB_CONNECTION=mysql
DB_HOST=172.17.0.1
DB_PORT=3306
DB_DATABASE=koel
DB_USERNAME=koel
DB_PASSWORD=654DfdfMOd

APP_KEY=base64:**=
JWT_SECRET=
APP_URL=https://koel.fungit.org/
ADMIN_NAME="Fungit"
ADMIN_EMAIL=koel@fungit.org
ADMIN_PASSWORD=1234566
APP_MAX_SCAN_TIME=600
MEMORY_LIMIT=
FORCE_HTTPS=true
LASTFM_API_KEY=2be914a623443afe2718e6a95908e1c6
LASTFM_API_SECRET=22f79e9a09a29d99d2050c1e857aad21

修改配置记得执行docker exec koel php artisan koel:init

扫描音乐docker exec koel php artisan koel:sync

image-20210311070849523

Last.FM使用情况

image-20210311080223405

image-20210311080309838