这个项目能做什么

Black Candy 是一个自托管的音乐流媒体服务器,被描述为个人音乐中心。它主要以 Docker 镜像形式分发,因此安装过程就是运行容器并映射端口;初始管理员账户使用邮箱 admin@admin.com,密码为 foobar。提供了一个公开演示实例供评估,但演示用户没有管理员权限,其音乐来自 Free Music Archive。 部署和配置通过环境变量和卷挂载完成。媒体文件从宿主机挂载,并通过 MEDIA_PATH 指定路径。持久化数据位于 /rails/storage 下,可挂载到宿主机;当宿主机与容器之间出现权限冲突时,可以通过 --user UID:GID 以任意用户身份运行容器。SQLite 是默认数据库,同时通过 DB_ADAPTER 及相关连接变量支持 PostgreSQL,用于主数据库、Pub/Sub、后台任务和缓存。其他已记录的选项包括 FORCE_SSL、DEMO_MODE、HTTP_PORT 和 SECRET_KEY_BASE,后者用于保护会话和安全敏感数据;如果未设置,每次启动都会生成新值,导致现有会话失效。日志默认输出到 STDOUT。提供了 docker-compose 示例,并提供了基于 master 分支的 edge 镜像用于测试和贡献,同时警告该镜像不稳定。 升级需要拉取新镜像并重新创建容器;项目明确警告用户阅读升级指南,因为新版本可能包含破坏性变更。移动客户端方面,iOS 可通过 App Store 获取,Android 可通过 Google Play 和 F-Droid 获取,也可从 GitHub releases 下载 APK。该项目还集成了 Discogs API,在设置页面配置 Discogs token 后即可获取艺术家和专辑封面。 开发方面,文档要求 Ruby 4.0、Node.js 20、libvips 和 FFmpeg,使用 bundle 和 npm 管理依赖,进行 Rails 数据库准备和数据填充,并通过 ./bin/dev 脚本在本地 3000 端口启动服务。测试和代码检查通过 rails test:all 和 rails lint:all 运行。仓库包含 CI 和覆盖率徽章,并注明获得 JetBrains 赞助。