Skip to content
forked from mebtte/cicada

知了, 支持多用户的开源音乐服务.

License

Notifications You must be signed in to change notification settings

VantStark/cicada

 
 

Repository files navigation

知了

version release build docker build license

知了, 支持多用户的开源音乐服务.

特色

  • 尊重隐私, 不进行任何数据收集
  • 支持多用户以及导入现有音乐目录/文件
  • 支持 PWA, UI 同时支持桌面端和移动端
  • 系统媒体和快捷键支持
  • 音乐支持标准音质/超高音质/伴奏以及多份歌词
  • 乐单/播放列表/播放队列音乐数量无限制
  • 支持标注音乐创作来源(翻唱)
  • 支持歌词/歌名/歌手/乐单搜索

准备

  • 邮件发送服务, 知了使用邮箱验证码进行登录以及部分功能依赖邮箱实现, 第三方邮件发送服务可以参考 网易邮箱 / QQ 邮箱 / Outlook 邮箱
  • FFmpeg[可选], 知了会自动检测 PATH 下是否有 ffmpeg, 有的话会调用 ffmpeg 进行音频压缩(无损音质不会进行压缩), 没有的话将不会进行音频压缩

使用邮箱验证码登录可以极大地提高安全性, 相比账号密码的登录方式, 邮箱验证码登录可以避免被暴力破解

部署

新建配置文件 config.json:

{
  "emailHost": "smtp.example.com",
  "emailUser": "example@example.com",
  "emailPass": "example-password"
}

完整配置可以参看配置项, 支持 JSON/JSON5 语法.

Releases 下载并解压对应平台的二进制包, 通过下面命令指定配置文件并启动服务:

./cicada start -c config.json

通过 localhost:8000 或者 {{ip}}:8000 访问知了服务. 目前只提供了几种主流平台的构建包, 其他平台可以参考构建文档自行构建.

Docker

知了支持 Docker 镜像部署:

docker run \
  -d \
  --restart=always \
  -p 8000:80 \
  -v $HOME/cicada-data:/data \
  -v $HOME/cicada-config.json:/config.json:ro \
  --name cicada \
  mebtte/cicada

需要注意的是, 使用 Docker 镜像首次运行必须配置 initialAdminEmail, 否则无法完成初始化. 此外 Docker 镜像下会忽略 config 文件中的 dataport 配置项.

Docker compose

version: '3'
services:
  cicada:
    restart: always
    container_name: cicada

    # specify user
    # user: 1000:1000

    image: mebtte/cicada
    ports:
      - 80:80
    volumes:
      - /path/config.json:/config.json:ro
      - /path/data:/data

导入音乐

知了支持导入现有音乐, 通过 cicada import 命令可以导入音乐目录或者音乐文件, 需要注意的是音乐文件命名必须要满足以下格式(多个空格会被合并成一个):

singer1[,singer2][,singer3] - name.format

比如 周杰伦 - 晴天.mp3 / Jarryd James,BROODS - 1000x.flac 是支持的命名, 孙燕姿 逆光.mp3 / 漠河舞厅.m4a 是不支持的命名.

# 导入音乐目录
cicada import --data /path_to/cicada_data --recursive music_dir

# 导入音乐文件
cicada import --data /path_to/cicada_data music

当遇到命名不支持或者格式不支持的文件, 知了将会忽略. 可以通过 cicada help import 查看更多选项.

Roadmap

v0

  • 多语言支持
  • 悬浮歌词面板(类似于网易云网页版歌词)
  • 播放记录的展示和删除
  • 电台功能(随机从曲库中拉取音乐并连续播放)

v1

  • 第三方接入指引(数据库 ER 图/ API 文档)
  • 图片(用户头像/歌手头像/音乐封面/乐单封面)访问优化
  • 删除用户
  • 用户最后活动时间记录和展示
  • 音乐年份记录和展示
  • 共享乐单
  • 消息中心(删除歌手消息/乐单内包含被删除音乐消息)

常见问题

如何迁移数据 ?

知了所有数据都位于 {{data}} 目录下, 将 {{data}} 目录复制或者移动即可完成迁移.

如何安装 PWA ?

PWA 仅支持 HTTPS 或者 localhost, 知了目前暂不支持配置 HTTPS, 请使用 nginx 之类的工具进行 HTTPS 反向代理. Chrome 下安装方法请查看教程.

为什么 iOS/iPadOS 上处于后台时无法自动播放下一首 ?

目前 Safari 对 PWA 支持度较低, 当页面处于后台时会暂停 JavaScript 的执行导致无法自动下一首, 需要等待 Safari 提高对 PWA 的支持才能解决相关问题.

开源协议

GPL

Contributors

Star History

Star History Chart

About

知了, 支持多用户的开源音乐服务.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 98.0%
  • JavaScript 1.2%
  • Other 0.8%