>_ DevTrendszh

语言

首页

语言

板块

前端 后端 移动端 DevOps AI / ML 游戏开发 区块链 嵌入式 安全
Rust

如何使用 Polaris 搭建个人音乐流媒体服务,无需订阅

Polaris logo

流媒体服务为我们带来了便利,但也有个恼人的问题:喜欢的曲目可能因为版权纠纷突然从曲库中消失,而且订阅费用也在不断上涨。如果你硬盘或家庭服务器上存有多年积累的 GB 级 FLAC 和 MP3 文件,用 U 盘随身携带显然很不方便。你需要自己的流媒体服务——随时随地可用,还不需要每月付费。

最近我发现了 Polaris——一款轻量级自托管音乐流媒体服务器,采用 Rust 编写。没有付费等级,没有功能限制版本,也没有臃肿的界面。

Polaris Web UI

Polaris 能做什么

项目作者的主要关注点是响应速度和处理真正海量媒体库的能力。描述中声称可以流畅处理超过 100,000 首曲目的收藏。

与 Plex 或 Jellyfin 这类重量级一体化解决方案不同,Polaris 专注于音频:

  • 支持读取 flac、mp3、mp4、mpc、ogg、opus、ape、wav 和 aiff 格式。
  • 在播放器中直接渲染音频波形可视化,方便快速跳转到曲目中的指定时刻。
  • 支持元数据中的多值标签,当单首曲目有多个艺术家或流派时也能正确处理。
  • 可以按标签(艺术家、专辑、流派)以及磁盘上熟悉的文件夹树结构展示音乐库。当早期发行的标签填写得比较随意时,这种方式非常有用。
  • 支持按特定元数据字段搜索。
  • 支持用户分离,每个用户有独立的播放列表。

一个贴心的细节:界面支持深色主题和调色板自定义。

技术实现

Polaris 采用 Rust 编写,这意味着它占用极少的系统资源,并能快速提供静态内容和流媒体。不需要处理复杂的数据库来存储配置:设置保存在纯文本文件中,但如果愿意,也可以直接从 Web 界面编辑。

开发者将服务器 API 完全开放并通过 OpenAPI 进行了文档化。Polaris 的任何本地实例都会在 /api-docs/ 启动一个交互式 Swagger 页面,因此编写自己的客户端或自动化脚本非常直接。

顺便说一下,功能完善的客户端已经存在。除了 Web 界面外,你还可以使用:

  • 官方 Android 客户端(可在 Google Play 和 F-Droid 下载)。
  • 第三方 iOS 应用 Polarios。
  • 适用于嵌入式系统和桌面的 Polarity 客户端。

快速入门

服务器支持在 Linux、Windows 和 BSD 上构建,但最简单的方式是通过 Docker 运行。基本 docker-compose.yml 看起来非常简洁:

version: "3"
services:
  polaris:
    image: agersant/polaris:latest
    container_name: polaris
    ports:
      - "5050:5050"
    volumes:
      - /path/to/your/music:/music:ro
      - /path/to/polaris/data:/var/lib/polaris
    restart: unless-stopped

启动后,界面可在端口 5050 访问。你只需要设置一个管理员密码,然后指向包含音频文件的目录。Polaris 会在后台快速为曲目建立索引。

如果你不想立即配置容器,开发者维护了一个在线演示,地址在 demo.polaris.stream(登录名:demo_user,密码:demo_password),收录了采用知识共享许可的曲目。

适用人群

Polaris 非常适合在低配置硬件(如树莓派或老旧上网本)上运行家庭服务器、想要一个快速播放器但不需要 4K 视频转码等额外功能的人。如果你追求纯净的音频、即时响应以及对文件的完全控制,这款工具绝对值得收藏。

相关项目