全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 9412|回复: 96

【超火】吐血推荐 docker 搭建Koel 详细步骤

  [复制链接]
发表于 2022-4-19 10:43:40 | 显示全部楼层 |阅读模式
本帖最后由 wise指南 于 2022-4-25 13:00 编辑

Koel是一个自己托管自己的音乐的平台,官网 https://koel.dev/

这是我搭建的效果:



音乐是论坛分享的douban250 无损flac:

https://www.aliyundrive.com/s/xuLCHkV97ML/folder/60dbe0c6f4f846a765ca403e982fa00b2849bd46

安装过程,主要使用docker来简化安装,网上有的帖子说docker安装的性能差,我分析了一下并没有这回事。

只是说因为要处理音乐上传/下载,这个系统的压力主要有:占用的磁盘空间比较大(1个音乐30M),还有占用内存也是比较多,所以1C1G的小鸡搭建不出来。

我用的是RN的,4C4G的年付套餐,当然3H3G也行,

4C4G:http://click.idcpay.me/rn-4c-4g
3C3G:  http://click.idcpay.me/rn-3c-3g



  1. # 1 准备步骤,安装docker

  2. yum -y install docker

  3. systemctl enable docker

  4. # 2 安装docker-compose

  5. 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

  6. sudo chmod +x /usr/local/bin/docker-compose

  7. # 3 新建一个 koel 目录备用

  8. mkdir koel
  9. cd koel

  10. # 4 新建一个目录存放文件

  11. mkdir /opt/music

  12. /opt/music/covers


  13. # 5 准备你的域名 a.com

  14. # 6 准备 docker-compose.yml 文件

  15. ######################################
  16. # docker-compose.yml 可以修改你的数据库密码
  17. version: '3.5'

  18. services:
  19.   koel:
  20.     image: hyzual/koel
  21.     depends_on:
  22.       - koel-database
  23.     ports:
  24.       - "127.0.0.1:2077:80"
  25.     environment:
  26.       FORCE_HTTPS: 1
  27.       MEMORY_LIMIT: 512
  28.       DB_CONNECTION: mysql
  29.       DB_HOST: koel-database
  30.       DB_USERNAME: koel
  31.       DB_PASSWORD: Koko0202#1234
  32.       DB_DATABASE: koel
  33.     volumes:
  34.       - /opt/music:/music
  35.       - /opt/music/covers:/var/www/html/public/img/covers
  36.     restart: unless-stopped

  37.   koel-database:
  38.     image: mysql/mysql-server:5.7
  39.     environment:
  40.       MYSQL_ROOT_PASSWORD: Koko0202#1234
  41.       MYSQL_DATABASE: koel
  42.       MYSQL_USER: koel
  43.       MYSQL_PASSWORD: Koko0202#1234
  44.     volumes:
  45.       - koel_db:/var/lib/mysql
  46.     restart: unless-stopped

  47. volumes:
  48.   koel_db:
  49.     driver: local
  50.   koel_music:
  51.     driver: local
  52.   koel_covers:
  53.     driver: local
  54.    
  55. #docker-compose.yml 文件结束
  56. ###################

  57. # 7 启动docker

  58. docker-compose up -d

  59. 看到都成功了,即可



  60. # 8 安装nginx 和 python-certbot-nginx

  61. python-certbot-nginx 是维护lets' encrypt 证书用的

  62. yum -y install nginx

  63. yum install python-certbot-nginx


  64. #9 初始化koel



  65. docker-compose exec k2_koel_1 php artisan koel:init

  66. docker exec -it k2_koel_1 php artisan koel:admin:change-password

  67. k2_koel_1 是koel 容器名字,根据你情况来。默认管理员是:admin@koel.dev


  68. # 10 处理nginx 和 https问题

  69. 新建nginx配置文件只带http 80端口版本的,命名为 koel.conf 放在 /etc/nginx/conf.d/

  70. #http版本的nginx配置文件

  71. server {

  72.      listen 80;
  73.      listen [::]:80;
  74.      server_name a.com;
  75.          
  76.      location / {  
  77.                  proxy_pass http://127.0.0.1:2077;  

  78.                  proxy_set_header X-Forwarded-Host $server_name;  
  79.                  proxy_set_header X-Forwarded-Server $host;  
  80.                  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
  81.                  proxy_set_header   Host $host;  
  82.                  proxy_set_header   X-Real-IP $remote_addr;  
  83.                  proxy_set_header X-Forwarded-Proto https;  

  84.                  # Not sure if these next two lines are needed. I did not remove them as  
  85.                  # I did not want risk breaking my working configuration. Just remember  
  86.                  # to replace "koel.domain.tld" with your instance's domain.  
  87.                  sub_filter "http://koel.domain.tld" "http://music.idcpay.me";  
  88.                  sub_filter_once off;  
  89.      }
  90.   
  91.   }


  92. 启动nginx

  93. 再启动cerbot

  94. certbot certonly --nginx

  95. 生成key/pem文件后,重新设置https版本配置文件


  96. server {

  97.      listen 80;
  98.      listen [::]:80;
  99.      listen 443 ssl;
  100.      server_name a.com;

  101.      ssl_certificate /etc/letsencrypt/live/music.idcpay.me/fullchain.pem;
  102.      ssl_certificate_key /etc/letsencrypt/live/music.idcpay.me/privkey.pem;
  103.          
  104.      location / {  
  105.                  proxy_pass http://127.0.0.1:2077;  
  106.                  # 如果是本机直接复制就行,如果是别的机器,记得换成你的ip地址  
  107.                  proxy_set_header X-Forwarded-Host $server_name;  
  108.                  proxy_set_header X-Forwarded-Server $host;  
  109.                  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
  110.                  proxy_set_header   Host $host;  
  111.                  proxy_set_header   X-Real-IP $remote_addr;  
  112.                  proxy_set_header X-Forwarded-Proto https;  

  113.                  # Not sure if these next two lines are needed. I did not remove them as  
  114.                  # I did not want risk breaking my working configuration. Just remember  
  115.                  # to replace "koel.domain.tld" with your instance's domain.  
  116.                  sub_filter "http://koel.domain.tld" "https://music.idcpay.me";  
  117.                  sub_filter_once off;  
  118.      }
  119.   
  120. }

  121. 运行:

  122. nginx -s reload

  123. 如果没有错误,就可以输入 https://a.com 欣赏你的音乐了。

  124. 其他资源:

  125. 可以搭建Koel的便宜主机:

  126. 4C4G购买入口:http://click.idcpay.me/rn-4c-4g
  127. 3C3G购买入口:  http://click.idcpay.me/rn-3c-3g

  128. 阿里云盘音乐豆瓣250无损flac:
  129. https://www.aliyundrive.com/s/xuLCHkV97ML/folder/60dbe0c6f4f846a765ca403e982fa00b2849bd46

  130. linux环境下载阿里云盘的客户端:
  131. https://github.com/tickstep/aliyunpan
  132. 不需要下载再上传文件

  133. 音乐管理:

  134. 把mp3 flac等音乐文件放到虚拟主机的这里:

  135. /opt/music

  136. 在Koel 面板上,扫描:

  137. /music 目录,可以扫出新增音乐

复制代码







发表于 2022-4-20 22:55:58 | 显示全部楼层
技术分享很赞!
发表于 2022-4-19 10:47:23 | 显示全部楼层
这是直接挂载阿里云盘找音乐?

点评

不是哦,只是用云盘工具来下载 flac 到VPS上。  发表于 2022-4-19 10:54
发表于 2022-4-19 10:44:50 | 显示全部楼层
膜拜,,有空学习一下
发表于 2022-4-19 10:45:54 | 显示全部楼层
能挂载OD GD吗
发表于 2022-4-19 10:47:21 | 显示全部楼层
我用docker搭了jellyfin,播放的时候,4H16G的RS2000 CPU都能飘红
 楼主| 发表于 2022-4-19 17:04:04 | 显示全部楼层
需要的话,就搞搞。
发表于 2022-4-19 17:06:02 | 显示全部楼层
有没有版权问题 我想搭在甲骨文上
 楼主| 发表于 2022-4-19 17:38:14 | 显示全部楼层
看我签名. 发表于 2022-4-19 17:06
有没有版权问题 我想搭在甲骨文上

自己用不会有版权问题,你别共享出去啊
 楼主| 发表于 2022-4-20 00:07:40 | 显示全部楼层
mlcq 发表于 2022-4-19 10:47
我用docker搭了jellyfin,播放的时候,4H16G的RS2000 CPU都能飘红

刚开始我也想装 jellyfin,听你那么说幸亏没搞。
 楼主| 发表于 2022-4-20 09:29:29 | 显示全部楼层

暂时不支持加载网盘的,不过你可以在上面装webdav客户端,把文件拉下来吧。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2025-10-18 11:27 , Processed in 0.085105 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表