原文地址:https://lala.im/7654.html,請支持原作者!該處僅作轉載。
Koel是一个开源的基于Web的音频流服务,我们可以用它来自建自己的音乐服务器。
用来搭建的机器内存最好有1GB,512M可能会出现幺蛾子问题。
部署我这里就直接用docker梭哈了,首先安装nginx/certbot/docker和一些需要用到的软件:
apt -y install curl nginx python-certbot-nginx
curl -sSL https://get.docker.com/ | sh
systemctl enable --now nginx docker
安装docker-compose:
curl -L https://github.com/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
新建一个目录进入到这个目录内:
mkdir -p /opt/koel && cd /opt/koel
新建一个docker-compose.yml:
nano docker-compose.yml
写入如下配置:
version: '3.5'
services:
koel:
image: hyzual/koel
depends_on:
- koel-database
ports:
- "127.0.0.1:5000: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
注:所有password字段改为一个高强度的密码。此外,如果暴露的5000端口已经被占用了,你可以任意改一个别的端口。
up起来即可:
docker-compose up -d
确认所有容器都是up状态:
docker-compose ps
之后执行下面的命令创建管理员账号:
docker-compose exec koel php artisan koel:init
流程如下:
Your name [Koel Admin]:
> 设置你的用户名
Your email address [[email protected]]:
> 设置你的邮箱
Your desired password:
> 设置你的管理员密码
Again, just to be sure:
> 设置你的管理员密码
Media path [/music]:
> 直接回车
这步执行到最后不出意外会报错:
Oops! Koel installation or upgrade didn't finish successfully.
原因是前端资源已经在容器内构建好了,这里就不用再构建了,所以会报错。错误可以直接忽略。
这个容器镜像的维护者提到过此问题,我只是翻译一下:
https://hub.docker.com/r/hyzual/koel/
接下来新建nginx配置文件用于反向代理:
nano /etc/nginx/conf.d/koel.conf
写入如下配置:
server {
listen 80;
server_name koel.imlala.best; # 换成你的域名
client_max_body_size 0;
location / {
proxy_pass http://127.0.0.1:5000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
最后使用certbot签一个ssl证书:
certbot --nginx
访问你的域名,应该能看到登录界面,尝试登录:
如果登录不进去,再把下面这个命令执行一次,让它重新生成一个JWT_SECRET:
docker-compose exec koel php artisan koel:init
实际上后续你更新了容器或者删除了容器后,重新启一个新的容器时都要把这个命令执行一次。
登录进去后,你可以在Web界面上传音乐:
也可以直接把音乐存到如下目录:
/var/lib/docker/volumes/koel_koel_music/_data
通过Web页面上传的音乐可以直接播放,自己存到目录内的音乐需要先扫描才能播放。
总体来说这程序还不错,基本功能都有,但有点迷的是通过Web页面上传的音乐编号为啥一堆重复的?
还有没有编号的,这个鞠婧祎排面这么大的嘛,把程序都美炸了???