独立服务器搭建Koel音频流服务 个人自用听歌服务

前言

相信大部分网友都玩过 PT 吧,有的进了音乐站,下载下来的音乐,因为策略问题经常只能在本机欣赏,但我们怎么多设备共享呢?所以我们可以自己搭建音频流服务,Let us GO!

准备工作

找一个服务器,因为Koel是音频服务,所以CPU和内存要求都稍高一些,推荐海外的Racknerd VPS 3核3G的年付产品,搭建起来更加从容。

 

Koel 简介

Koel (also styled as koel, with a lowercase k) is a web-based personal audio streaming service written in Vue at the client side and Laravel on the server side. Targeting web developers, Koel embraces some of the more modern web technologies – flexbox, audio and drag-and-drop API to name a few – to do its job. 科尔(也为koel,小写k)是一个基于网络的个人音频流服务。

Koel 官网

https://koel.dev/

 
部署Koel - Koel官网

界面演示

 

Koel

注意

本文软件基于 Racknerd 用服务器为 Docker CE 19.03.9 的服务器操作应与本文基本一致(包括过程与报错,其他服务器应与本文大同小异!

安装 Koel

1. 安装宝塔面板

安装宝塔面板,便于安装 Nginx 和绑定域名与获取 SSL证书

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

2. 安装 Nginx

单选 Nginx ,其他取消选择,点击一键安装

 

部署 Koel - 安装Nginx

3. 安装 Docker-compose

curl -L https://github.com/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

 

轻量部署 Koel - 安装 Docker-compose

4. 新建docker-compose.yml文件

然后输入以下配置内容

version: '3.5'

services:
  koel:
    image: hyzual/koel
    depends_on:
      - koel-database
    ports:
      - "127.0.0.1:2077:80"
    environment:
      FORCE_HTTPS: 1
      MEMORY_LIMIT: 512
      DB_CONNECTION: mysql
      DB_HOST: koel-database
      DB_USERNAME: koel
      DB_PASSWORD: password
      DB_DATABASE: koel
    volumes:
      - koel_music:/music
      - koel_covers:/var/www/html/public/img/covers
    restart: unless-stopped

  koel-database:
    image: mysql/mysql-server:5.7
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: koel
      MYSQL_USER: koel
      MYSQL_PASSWORD: password
    volumes:
      - koel_db:/var/lib/mysql
    restart: unless-stopped

volumes:
  koel_db:
    driver: local
  koel_music:
    driver: local
  koel_covers:
    driver: local

然后 Esc + :wq 退出并保存即可。

 

部署 Koel - 新建文件并输入配置内容

注意:docker-compose.yml 文件中所有 password 您应用高强度的密码替换它。2077为暴露端口,如被占用,请自行更改替换

5. 重启Docker并Up项目

service docker restart
docker-compose up -d

 

 重启Docker并Up项目

输入以下命令确认所有容器都是up状态

 

确认所有容器都是up状态

6. 初始化Koel

输入以下命令,初始化 Koel

docker-compose exec koel php artisan koel:init 

出现以下返回

Attempting to install or upgrade Koel.
Remember, you can always install/upgrade manually following the guide here:
[Emoji]  https://docs.koel.dev

App key exists -- skipping
Migrating database
Creating default admin account
Seeding initial data
The absolute path to your media directory. If this is skipped (left blank) now, you can set it later via the web interface.

 Media path [/music]:
 > 直接回车

这步执行完会出现如下报错

Oops! Koel installation or upgrade didn't finish successfully.
Please try again, or visit https://docs.koel.dev for manual installation.
[Emoji] Sorry for this. You deserve better.

原因是前端资源已经在容器内构建好了,这里就不用再构建了,所以会报错。错误可以直接忽略。

 

初始化Koel

默认管理员邮箱:admin@koel.dev 默认管理员密码:KoelIsCool 输入以下命令,修改管理员密码,需输入两次

docker exec -it <container_name_for_koel> php artisan koel:admin:change-password

其中<container_name_for_koel>为容器名字,教程中为koel_koel_1

修改管理员密码

7. 添加网站并设置反代

进入宝塔面板,点击网站,点击添加站点,在域名栏输入您的域名,然后提交

 

部署 Koel - 添加网站

然后点击网站设置,点击SSL,为网站申请一个SSL证书,或者填入已有证书

 

部署 Koel - 添加网站

点击反向代理,然后点击添加反向代理,点击提交,完成设置

 

 添加反代

至此,我们已经安装完成 Koel 音频流服务了 浏览器访问您刚刚设置的域名即可访问!进入登录后即可享用 Koel 音频流服务,上传歌曲然后畅快欣赏音乐啦啦!