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,实现个人音乐串流

过 程 漫 长 警 告(composer + nodejs 下载整个互联网)

环境

  • Debian 10
  • PHP (conposer + Laravel)
  • MySQL
  • Node.js
  • Nginx

参考

步骤

安装 PHP 以及相关组件

安装 PHP

在 Set up MediaWiki with PHP7.4, nginx and MySQL 中有详细说明,这里复读一遍指令

  1. 添加源
    apt -y install lsb-release apt-transport-https ca-certificates 
    wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
    echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php.list
    apt update
  2. 安装 PHP 以及 Koel 必要组件
    apt install unzip php7.4 php7.4-fpm php-bcmath php-json php-mbstring openssl libssl-dev php-mysql php-tokenizer php-xml php-zip php-dev php-curl

    其中
    php-bcmath、php-json、php-mbstring、openssl、libssl-dev、php-mysql、php-tokenizer、php-xml 为 Laravel 所需组件
    unzip、php-zip 为 composer 安装 Laravel 时所需组件
    php-dev、php-curl 为安装 Koel 的必要组件

  3. 更改 PHP 内存限制
    • Keol官方建议设置为 512M
    • 打开 /etc/php/7.4/cli/php.ini,修改 memory_limit 字段

安装 Composer

  1. 执行指令
    php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
    php -r "if (hash_file('sha384', 'composer-setup.php') === '8a6138e2a05a8c28539c9f0fb361159823655d7ad2deecb371b04a83966c61223adc522b0189079e3e9e277cd72b8897') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
    php composer-setup.php
    php -r "unlink('composer-setup.php');"

    安装完毕后会在当前目录生成 composer.phar 文件

  2. 将 composer.phar 移动到 PATH 下以便使用 composer 指令
    mv ./composer.phar /usr/local/bin/composer

安装 Laravel

执行指令(过程可能漫长)

composer global require laravel/installer

 

安装 MySQL 并新建数据库

详见 Set up MediaWiki with PHP7.4, nginx and MySQL,这里复读一遍指令(以下指令将安装 MySQL 8)

  1. 添加源
    wget https://dev.mysql.com/get/mysql-apt-config_0.8.15-1_all.deb
    dpkg -i mysql-apt-config*
    apt update
  2. 安装 MySQL
    apt install mysql-server
  3. 登录 MySQL 并新建 Koel 所需数据库
    CREATE DATABASE koel; 
    CREATE USER 'koel_user'@'localhost' IDENTIFIED BY 'verystrongpassword';
    GRANT ALL PRIVILEGES ON koel.* TO 'koel_user'@'localhost' WITH GRANT OPTION;
    exit;

    以上指令将新建一个名称为 koel 的数据库, 以及一个名为 koel_user 的 koel 数据库管理员,其密码为 verystrongpassword

安装 Node.js 以及相关组件

Koel 支持最新版 Node.js 14

  1. 安装 Node.js
    curl -sL https://deb.nodesource.com/setup_14.x | bash -
    apt-get install -y nodejs
  2. 安装 yarn
    npm install -g yarn

获取 Koel

  1. 下载源码
    git clone --recurse-submodules https://github.com/phanan/koel.git
  2. 切换到最新发布版本
    cd koel
    git checkout v4.4.0

    最新版本号在 Github 发布页面查看

  3. 安装 Koel 以及相关组件
    composer install

    开始下载互联网,警告无视之,附图 : )

  4. 配置环境变量
    • 打开 Koel 根目录的 .env 文件更改以下内容(数据库、域名)由于没有使用域名,APP_URL 的设定如图
  5. Koel 初始化
    php artisan koel:init

    初始化过程中会提示设置管理员账户的名称、邮箱、密码以及存储音乐的路径,后续登录时需要邮箱和密码,音乐路径可以之后更改之后继续下载互联网开始下载node组件,警告无视之,附图 : )

  6. 测试 Koel
    • 运行 Koel
      php artisan serve --host 0.0.0.0
    • 浏览器访问 [IP]:8000,显示登录页面代表 Koel安装完成,输入邮箱和密码即可登录

配置 Nginx

Nginx 直接使用包管理安装

Koel 提供了名为 nginx.conf.example 的 Nginx 的配置文件,位于 Koel 根目录

  1. 导入示例配置文件
    cd koel 
    cp ./nginx.conf.example /etc/nginx/sites-available/koel
  2. 修改 Koel 目录权限
    • 将 Koel 目录的所有者更改为 www-data(Nginx 用户)
      chown -R www-data:www-data koel

      注意:将 Koel 放入可以被 Nginx 访问的路径下,例如 /var/www,否则造成 500 内部错误

  3.  修改配置文件
    • 打开配置文件,修改监听端口、服务器名称、根目录和 fastcgi_pass
  4. 重载 Nginx
    # 测试配置文件
    nginx -t
    # 无误则重新载入
    nginx -s reload
  5. 浏览器访问 [IP]:[你的端口] 即可开始使用 Koel
    • 在 Settings 中可以重新指定音乐存储路径

效果

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据