环境

先安装好宝塔,docker和docker-compose并在宝塔安装好nginx

挂载阿里云盘

aliyundrive-webdav服务

项目地址
https://github.com/messense/aliyundrive-webdav

使用docker安装

docker run -d --name=aliyundrive-webdav --restart=unless-stopped -p 9090:8080 \
  -v /etc/aliyundrive-webdav/:/etc/aliyundrive-webdav/ \
  -e REFRESH_TOKEN='Your Refresh Token' \
  -e WEBDAV_AUTH_USER=admin \
  -e WEBDAV_AUTH_PASSWORD=admin \
  messense/aliyundrive-webdav

其中refresh token可以在浏览器中获取

挂载webdav到本地

先安装davfs2

`sudo apt install davfs2 -y`

我想把阿里云盘挂载到/mnt/aliyun,所以先创建这个目录

mkdir /mnt/aliyun

挂载到这个目录

mount -t davfs http://127.0.0.1:9090/ /mnt/aliyun/

输入上面启动docker时的账号密码

搭建koel

version: '3'

services:
  koel:
    image: phanan/koel
    depends_on:
      - database
    ports:
      - 8080:80
    environment:
      - FORCE_HTTPS=true
      - DB_CONNECTION=mysql
      - DB_HOST=database
      - DB_USERNAME=koel
      - DB_PASSWORD=192o73tilhqew
      - DB_DATABASE=koel
    volumes:
      - /mnt/aliyun/music:/music
      - /mnt/aliyun/music/covers:/var/www/html/public/img/covers
      - /root/search_index:/var/www/html/storage/search-indexes
    restart: always

  database:
    image: mysql/mysql-server:5.7
    volumes:
      - db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=d092ujoipwhqjd
      - MYSQL_DATABASE=koel
      - MYSQL_USER=koel
      - MYSQL_PASSWORD=192o73tilhqew
    restart: always

volumes:
  db:
    driver: local
  music:
    driver: local
  covers:
    driver: local
  search_index:
    driver: local

任意位置创建docker-compose.yml,上面的内容自行修改,比如端口,数据库密码,文件目录等

docker-compose up -d

创建docker并启动

初始化koel

docker exec -it root-koel-1 /bin/bas

进入容器,这里的root-koel需要修改成你的docker容器名字

php artisan koel:init --no-assets

php artisan koel:admin:change-password

修改密码

然后前往宝塔添加网站,启用ssl,创建反向代理,相信宝塔的操作都非常简单不细说了

这时候打开网站koel就已经搭建成功了,默认账号是 [admin@koel.dev](mailto:admin@koel.dev)登陆进去可以修改

settings有个scan点一下就可以扫描你的歌曲了,我这里有150首歌,scan会报错

可以在容器里面执行

php artisan koel:sync


最后搭建成功,成品图