自托管互联网广播电台Airstation
简介
什么是 Airstation ?
Airstation
是一个自托管的Web
应用程序,用于通过Internet
流式传输音乐。它具有一个简单的界面,用于上传曲目和管理播放队列,以及一个供听众使用的简约播放器。在后台,它使用HLS
通过HTTP
流式传输音乐,将数据存储在SQLite
中,并利用FFmpeg
进行音频处理 — 所有这些都打包在一个紧凑的Docker
容器中,以便于部署。
主要特点
- 自托管:用户可以自行部署,完全控制音频流媒体。
- 简洁界面:易于使用的界面,方便上传和管理音乐。
- HTTP 流媒体:通过
HLS
(HTTP Live Streaming
)技术进行音乐流媒体传输。 - 数据存储:使用
SQLite
存储数据,确保轻量级和高效。 - 音频处理:利用
FFmpeg
进行音频处理,提供高质量的音频流。
应用场景
- 个人在线电台:用户可以创建自己的在线电台,分享音乐。
- 活动直播:用于活动或聚会中的音乐播放。
- 社区广播:帮助社区组织共享音乐或播客内容。
Airstation
为音乐爱好者提供了一个灵活且易于使用的平台,满足个人和小型组织的音乐流媒体需求。
安装
在群晖上以 Docker 方式安装。
在注册表中搜索 airstation
,选择第一个 cheatsnake/airstation
,版本选择 latest
。
本文写作时,
latest
版本对应为1.0.0-beta.4
;
卷
在 docker
文件夹中,创建一个新文件夹 airstation
,并在其中建两个子文件夹 data
和 static
文件夹 | 装载路径 | 说明 |
---|---|---|
docker/airstation/data | /app/storage | 存放数据库 |
docker/airstation/static | /app/static | 存放上传的音乐文件和 HLS 切片文件等 |
端口
本地端口不冲突就行,不确定的话可以用命令查一下
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 | 容器端口 |
---|---|
7331 | 7331 |
环境
可变 | 值 |
---|---|
AIRSTATION_SECRET_KEY | 用来登录电台控制面板的密钥 |
AIRSTATION_JWT_SIGN | 用于签名 JWT 会话的密钥 |
使用长度至少为 10
个字符的随机字符串生成器来为这些变量生成值!可以使用 openssl rand -base64 32
或者 Bitwarden
来生成
命令行安装
如果你熟悉命令行,可能用 docker cli
更快捷
# 新建文件夹 airstation 和 子目录
mkdir -p /volume1/docker/airstation/{data,static}# 进入 airstation 目录
cd /volume1/docker/airstation# 运行容器
docker run -d \--restart unless-stopped \--name airstation \-p 7331:7331 \-v $(pwd)/data:/app/storage \-v $(pwd)/static:/app/static \-e AIRSTATION_SECRET_KEY=FSbLEAEyfNyYNLOWuijtTFK1J/t022uyHkjIp0s4laM= \-e AIRSTATION_JWT_SIGN=CG/Lnxl/TRx9KDzC/XI0IU6IaHAplJgn0YQvrLvEgL4= \cheatsnake/airstation:latest
也可以用 docker-compose
安装,将下面的内容保存为 docker-compose.yml
文件
services:airstation:image: cheatsnake/airstation:latestcontainer_name: airstationrestart: unless-stoppedports:- "7331:7331"volumes:- ./data:/app/storage- ./static:/app/staticenvironment:AIRSTATION_SECRET_KEY: FSbLEAEyfNyYNLOWuijtTFK1J/t022uyHkjIp0s4laM=AIRSTATION_JWT_SIGN: CG/Lnxl/TRx9KDzC/XI0IU6IaHAplJgn0YQvrLvEgL4=healthcheck:test: ["CMD", "wget", "--spider", "-q", "http://localhost:7331/"]interval: 10stimeout: 5sretries: 3start_period: 10s
然后执行下面的命令
# 新建文件夹 airstation 和 子目录
mkdir -p /volume1/docker/airstation/{data,static}# 进入 airstation 目录
cd /volume1/docker/airstation# 将 docker-compose.yml 放入当前目录# 一键启动
docker-compose up -d
运行
后台
在浏览器中输入 http://群晖IP:7331/studio
,输入环境变量 AIRSTATION_SECRET_KEY
的值
登录成功后的主界面
点 Add
添加 mp3
音乐文件
处理完成后,会显示在 Library
中
勾选后,点 Queue
等添加到 Live queue
后,点播放按钮
播放
打开 http://192.168.0.197:7331
。如果后台没有点播放按钮,你只会在下面看到 Stream offline
而后台点了播放按钮,会看到当前播放的曲名
进后台可以看到播放的进度
点中间的播放键,就可以听到音乐了
如果没声,开关扬声器试试
参考文档
cheatsnake/airstation: 🎵 Your own online radio station
地址:https://github.com/cheatsnake/airstation
Airstation: self-hosted Internet radio station : r/selfhosted
地址:https://www.reddit.com/r/selfhosted/comments/1kjyo2d/airstation_selfhosted_internet_radio_station/