目 录CONTENT

文章目录

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

咕咕
2021-06-28 / 0 评论 / 0 点赞 / 163 阅读 / 9542 字
温馨提示:
本文最后更新于 2024-02-21,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。
广告 广告

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

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

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

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

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

方法二: 一健安装脚本

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

安装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

首先到/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反向代理

注释掉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,点击扫描,

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

最后

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

0
广告 广告

评论区