51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

利用Docker自建个人音乐流服务器面板——koel

这个项目放在现在,可能有些太小众,毕竟现在哪里不能听歌呢?

不过,我个人认为,它还是有用的。

1、由于现在各大音乐平台的版权考虑,许多歌我在一个平台听不了,往往需要切换多个平台来听,比较麻烦,切APP的同时,还会有一段讨厌的5s广告,非常地影响心情。

2、我有一些私藏的歌,现在网上根本搜索不到(逼哥的歌,童话镇之类的),而且音质也很高,有了koel,那么到哪里都能听到这些自己喜欢的歌曲清单了,只要手机可以上网,那么随处可以连接自己的服务器来听歌,因为koel是个强大的音乐播放器。

所以,如果你也有上面的需求,不妨可以搭一个这个项目来玩玩。

正文 {#正文}

这个项目其实是3年前的了,不过现在还在更新中,为了方便起见,我这边利用docker来搭建,省时省力。

项目官方文档: https://docs.koel.dev/

koel搭建完成之后,就是ip+端口访问的,由于我本人比较喜欢反向代理一些ip+端口的网站,但在koel上,如果用了官方的image却发现行不通,原因是:

The existing setup led to mixed content errors/requests which prevented any of the pages from loading as the connection from the reverse proxy to the Apache web server in the container was unencrypted.

国外一个小哥也发现了这个问题,所以他自己在原来的image基础上修改了一下,增加了反代的支持,所以,我们今天就用这个image来部署。

Docker 镜像地址: https://hub.docker.com/r/nairvish/docker-koel/

环境介绍 {#环境介绍}

  • CentOS 7
  • 宝塔面板安装好LNMP

开始部署 {#开始部署}

安装Docker {#安装docker}

方法一: 可以安装官方文档来安装

https://docs.docker.com/engine/install/centos/

方法二: 一健安装脚本

curl -fsSL https://get.docker.com/ | sh

安装Docker Compose {#安装docker-compose}

官方文档: https://docs.docker.com/compose/install/

CentOS 7 安装:

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version

如果显示版本号,则说明安装成功了。

docker-compose version 1.29.2, build 1110ad01

配置Docker-compose {#配置docker-compose}

首先到/opt目录下新建一个docker-compose.yml文件

cd /opt/
`mkdir docker-compose.yml
`

编辑docker-compose.yml

vi docker-compose.yml

也可以在这边打开,

粘入下面的内容:

version: '3.4'

services: koel: image: nairvish/docker-koel container_name: "koel_base" restart: always depends_on:

  • database ports:
  • 3006:80 environment: DB_CONNECTION: mysql DB_HOST: database DB_USERNAME: koel DB_PASSWORD: koel DB_DATABASE: koel IGNORE_DOT_FILES: 'true' APP_ENV: production APP_DEBUG: 'true' APP_URL: https://koel.domain.tld APP_MAX_SCAN_TIME: 600 MEMORY_LIMIT: 2048 STREAMING_METHOD: php FFMPEG_PATH: /usr/local/bin/ffmpeg OUTPUT_BIT_RATE: 256 ALLOW_DOWNLOAD: 'true' CACHE_MEDIA: 'true' APP_LOG_LEVEL: debug BROADCAST_DRIVER: log CACHE_DRIVER: file SESSION_DRIVER: file QUEUE_DRIVER: sync MAIL_DRIVER: smtp MAIL_HOST: smtp.mailserver.tld MAIL_PORT: 465 MAIL_USERNAME: koel@mailserver.tld MAIL_PASSWORD: password MAIL_ENCRYPTION: tls

LAST.FM config

LASTFM_API_KEY=

LASTFM_API_SECRET=

YOUTUBE config

YOUTUBE_API_KEY=

PUSHER config

PUSHER_APP_ID=

PUSHER_APP_KEY=

PUSHER_APP_SECRET=

PUSHER_APP_CLUSTER=

volumes:

  • /opt/music:/music
  • /opt/music/covers:/var/www/html/public/img/covers

database: image: mysql/mysql-server:5.7 container_name: "koel_mysql" restart: always volumes:

  • db:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: koel MYSQL_USER: koel MYSQL_PASSWORD: koel

volumes: db: driver: local

music: driver: local

covers: driver: local


我这边端口是3006,文件路径是/opt/music/opt/music/covers,大家可以自行修改,为避免出错,也可以和我一样。

修改Nginx设置 {#修改nginx设置}

宝塔上新建一个站点,不会的可以看这里:
配置nginx反向代理

注释掉53-65行的内容,

在之后添加下面的字段,

      location / {
     proxy_pass https://127.0.0.1:3006;
   # 如果是本机直接复制就行,如果是别的机器,记得换成你的ip地址
     proxy_set_header X-Forwarded-Host $server_name;
     proxy_set_header X-Forwarded-Server $host;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     proxy_set_header   Host $host;
     proxy_set_header   X-Real-IP $remote_addr;
     proxy_set_header X-Forwarded-Proto https;
 # Not sure if these next two lines are needed. I did not remove them as
 # I did not want risk breaking my working configuration. Just remember
 # to replace "koel.domain.tld" with your instance's domain.
 sub_filter "http://koel.domain.tld" "https://koel.domain.tld";
 sub_filter_once off;

}


注意proxy_pass https://127.0.0.1:3006; 这边换成你实际的配置。

如果是在本机配置的反向代理直接复制就行,如果是别的机器,记得把127.0.0.1换成你docker部署机子的ip地址。

部署 {#部署}

docker-compose up -d

(注意在docker-compose.yml的目录下运行)

接着就会拉去一系列的镜像,可能会多花一点时间,耐心等待,等到出现下面的done就表示成功了(注意在docker-compose.yml的目录下运行)

注: 阿里、腾讯、华为等服务器,记得去后台安全组或者防火墙打开相应端口,我们这边是3006

运行docker ps,已经看到成功启动的容器了。

初始化 {#初始化}

docker exec -it koel_base php artisan koel:init

koel_base是容器的名字)

按提示输入信息就行,

登陆 {#登陆}

之后输入你前面的信息,就可以正常登陆了。

浏览器访问:https://你的域名

上传音乐 {#上传音乐}

以文本为例子,上传音乐到/opt/music文件夹下

这边视服务器的性能,上传的速度可能快慢不一,我这边的服务器是iON的,68美元/年的洛杉矶款,上传平均在4M/s左右。

购买地址: https://loll.cc/iON

当然也可以选择之前一直说过性价比比较高的腾讯云轻量应用服务器,不过貌似最近缺货比较严重。

腾讯云轻量购买地址: https://loll.cc/tx

登陆之后,填上/music,点击扫描,

过一会儿,就自动扫描出了歌曲,可以随时随地,愉快地听起来了。

最后 {#最后}

大家有问题可以在评论区提出来,同时大家有好听的音乐,也欢迎分享~

赞(1)
未经允许不得转载:工具盒子 » 利用Docker自建个人音乐流服务器面板——koel