Skip to content
forked from mebtte/cicada

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

License

Notifications You must be signed in to change notification settings

yjb136698605/cicada

This branch is 544 commits behind mebtte/cicada:v2.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

1bff652 · Feb 21, 2023
Jan 5, 2023
May 7, 2022
Dec 10, 2022
Feb 21, 2023
Dec 28, 2022
Oct 12, 2022
Sep 18, 2022
Feb 19, 2023
Sep 22, 2022
Nov 6, 2022
Jan 5, 2023
May 8, 2022
May 7, 2022
Sep 22, 2022
Jun 9, 2022
Jan 5, 2023
May 22, 2022
Jan 5, 2023
Jan 17, 2023
May 7, 2022
Oct 14, 2022
Jul 31, 2021
Jan 18, 2023
Feb 21, 2023
Jul 2, 2022

Repository files navigation

知了

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

特色

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

准备

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

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

部署

新建配置文件 config.json:

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

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

Releases 下载并解压对应平台的二进制包, 通过下面命令指定配置文件并启动(以 x64 Linux 为例):

./cicada-linux-x64 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

常见问题

如何迁移数据 ?

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

如何安装 PWA ?

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

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

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

Roadmap

当前版本

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

下一版本

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

开源协议

GPL

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

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