网络电台管理套件AzuraCast
昨天杨浦又出现了疫情

所以本周筛查调整为了三次

本文完成于
4月,等8月份想起准备发布时才发现,由于版本的变更,原来的截图基本上都已不可用,相当于又重写了一遍,😂,至于为什么这么拖拉?老苏在文末会有交代。
什么是 AzuraCast ?
AzuraCast是一个自托管的一体化网络广播管理套件。使用其简单的安装程序和强大而直观的网络界面,您可以在几分钟内启动一个完全正常工作的网络广播电台。AzuraCast适用于所有类型和规模的网络广播电台,甚至可以在最实惠的VPS网络主机上运行。AzuraCast目前是测试版软件,支持Web广播的两个黄金标准:IceCast(v2.4)和ShoutCast(v2)。
老苏个人觉得,AzuraCast 作为音频直播,可以搭一个,用来给家里的小朋友讲讲故事,或者播放背景音乐都是很不错的,当然这点功能用 Audiobookshelf 做点播也是可以的。
官网提供了演示:https://demo.azuracast.com/
- Username:
demo@azuracast.com - Password:
demo
命令行安装
在群晖上以 Docker 方式安装。
如果你是以
root或者具有root权限的用户登录,可以不需要加前面的sudo
下载镜像
考虑到镜像比较大,而且镜像库不是我们常用的 dockerhub ,而是 ghcr.io,所以老苏强烈建议你先下载好镜像,而不是通过脚本下载。
老苏用过多合一的镜像
ghcr.io/azuracast/azuracast:stable,也用过单独的版本

需要注意的是,老苏下载的是稳定版(stable),这个多合一容器中包含整个应用程序、数据库、缓存以及广播控件;

用 SSH 登录带群晖,通过命令行方式下载
1 | # 下载镜像 |
ghcr.io的镜像如何下载,可以参考『 下一代协作型知识库AFFiNE 』的相关章节
最好是镜像下载成功了才开始执行下面的操作,当然这不是必须的,只是老苏的个人建议
下载脚本
SSH 客户端命令行中依次执行下面的命令
1 | # 新建文件夹 azuracast 和 子目录 |
如果不修改
stations目录权限,在创建电台时,有可能会显示没有创建目录的权限

配置端口
接下来开始配置端口,我们打算用 2080(http) 、 2443(https) 、2022(sftp)端口,如果你的这几个端口已使用,可以试试其他的端口
1 | # 查看端口占用 |

这一步会在当前目录生成 .env 文件,现在查看到的文件内容

指定目录
新建 docker-compose.override.yml 文件,内容如下:
1 | services: |
将其上传到 azuracast 目录

服务配置
1 | # 设置镜像的版本 |
- 需要选择版本,
Roling Release或者Stable,老苏输入了小写y,选择了Stable版本; - 选择了不更新脚本,输入了小写的
n;

如果直接退出说明下载脚本遇到了问题,一般都是 curl 错误,例如:
curl: (35) Unknown SSL protocol error in connection to raw.githubusercontent.com:443,curl: (28) Operation timed out after 300361 milliseconds with 0 out of 0 bytes received
如果你的网络支持科学上网,下面的内容可能会有帮助
1 | # 加入白名单 |
如果安装失败继续执行 sudo ./docker.sh install
但是需要注意版本的选择,这次
y是选择Stable版本,下一次则是N才是Stable版本,一定要看仔细
中间也会有 .FileNotFoundError 报错,但是程序如果可以继续执行的话,就可以不用管

选择语言 zh_CN

AzuraCast 安装都选择 no

有可能会遇到 AzuraCast.ERROR

但只要看到 Creating azuracast ... done 就成功了

除了下载了所需的镜像外,还生成了一些设置文件

如果环境稳定,也会帮你完成镜像的安装,如果一切正常,你可以跳到
运行章节,否则的话,请继续往下看
编辑环境
用 vi 编辑 .env 文件,启用下面的内容
需要注意,现在的
.env文件和开始的.env文件不同,增加了大量中文的注释
1 | AZURACAST_PUID=1000 |

如果你不习惯 vi 编辑器,可以在 File Station 中,将 .env 重命名为 .env.txt 然后再编辑,记得完成后重命名为 .env

一键启动
需要先停止然后再启动,以便后面修改的内容生效
1 | # 一键停止 |
如果反复启动都存在问题,建议用 sudo docker-compose down -v 清除干净再启动

运行
在浏览器中输入 http://群晖IP:2080 就能看到注册管理员用户界面
软件会自动显示中文,不需要另外设置

只有都符合要求时,才会出现 创建账号 按钮

登录后进入设置向导,带星号的是必填的,【个人资料】中,老苏就改了下面两项,其他的都是用的默认值,请根据自己的需要设置
- 名称:例如
laosu radio; - 时区:选
Asia/Shanghai(UTC+8);

【自动DJ】中,老苏勾选了 允许歌曲请求

最后是一些系统设置
- 网站基础网址:例如:
http://群晖IP:2080 - 保留的播放历史记录天数:选了
最近 14 天 - 如果你使用了反代,一定要勾选
使用网络代理进行广播

设置完成

上传 音乐文件

勾选所有上传的文件

保存为播放列表
只有将音乐添加到播放列表中才能流式传输

开始电台,来启动广播服务和 AutoDJ 服务

点 开始电台 按钮

在 公开页面 中就能看到了并进行收听了

当然,AzuraCast 的功能远不止这些,有兴趣可以深入研究。
遗留问题
老苏在 PC 浏览器中没有声音(试过 chrome、safari、Edge),浏览器中显示有声音,但是听不到,也尝试过启用 Enable HTTP Live Streaming (HLS),结果时一样的

但是在手机浏览器中则正常(试过小米浏览器和 Edge,不过音量偏小),实在有些不解,这也是为什么从 4 月份拖到现在的主要原因。

次要原因了么是 AzuraCast 的安装过程中对网络有较高的要求,如果没有稳定的科学上网环境,会让原本简单的安装变得繁琐且易出错。
参考文档
AzuraCast/AzuraCast: A self-hosted web radio management suite, including turnkey installer tools for the full radio software stack and a modern, easy-to-use web app to manage your stations.
地址:https://github.com/AzuraCast/AzuraCastInstalling AzuraCast on a Synology NAS | AzuraCast Docs
地址:https://docs.azuracast.com/en/getting-started/installation/synologyHelp with installing Azuracast on Synology Docker · Issue #3407 · AzuraCast/AzuraCast
地址:https://github.com/AzuraCast/AzuraCast/issues/3407配置 HTTPS 的公共站点上没有声音 · 问题 #1786 · AzuraCast/AzuraCast
地址:https://github.com/AzuraCast/AzuraCast/issues/1786