文章摘要
TinyIce是一个用Go语言编写的轻量级、高性能且兼容Icecast2的音频流媒体服务器,支持多挂载点、多源和转播功能。它易于部署,提供现代化Web界面,适合管理员和听众使用。该项目为个人开发,虽遵循安全实践但未经独立审计,建议用户自行承担使用风险。
文章总结
TinyIce 轻量级音频流媒体服务器
项目简介
TinyIce 是一款基于 Go 语言开发的高性能、轻量级音频流媒体服务器,兼容 Icecast2 协议。其核心特点是快速部署、低资源占用和现代管理界面,支持多挂载点、多源输入及中继转播功能。
核心优势
- 极速部署:单二进制文件包含所有依赖,秒级启动 Icecast 服务
- 高性能架构:采用共享循环缓冲区设计,单流可支持超10万并发听众
- 开箱即用的安全性:自动生成唯一凭证,支持 bcrypt 密码哈希和 CSRF 防护
- 多租户管理:管理员可独立管理各自挂载点
- 智能中继:自动重连与元数据解析,支持边缘节点部署
- 全功能监控:实时流量图表、Prometheus 指标接口及结构化日志
功能亮点
- 零宕机更新(SO_REUSEPORT 支持)
- 流健康监测(实时丢包率统计)
- 双协议架构(HTTPS 播放 + HTTP 推流)
- 自动 HTTPS(集成 Let's Encrypt)
- IP 封禁(支持 CIDR 范围屏蔽)
- 播放历史记录(SQLite 存储)
快速开始
1. 构建:go build -o tinyice(需 Go 1.21+)
2. 运行:首次启动将生成含随机密码的配置文件
3. 推流:使用 BUTT/OBS 等客户端连接(默认端口 8000)
配置示例
json
{
"bind_host": "0.0.0.0",
"auto_https": true,
"acme_email": "admin@example.com",
"low_latency_mode": false
}
高级功能
- 私有化部署:支持 Step-CA 等自定义 ACME 证书颁发机构
- 命令行参数:支持后台运行、日志级别调节等
- 性能文档:详见项目 PERFORMANCE.md
开源协议
Apache License 2.0
注意:此为个人项目,建议评估后使用。虽已实施安全最佳实践,但未经第三方审计。
(注:原文中的图片链接、重复功能列表及部分技术细节已精简,保留核心功能描述和关键配置信息)
评论总结
总结评论内容:
- 开发者动机与功能亮点
- 作者sylwester因对IceCast不满而开发TinyIce,强调其便捷性和现代化功能 "I built TinyIce as a vibing side project... One static Go binary, embedded assets" "内置ACME、中继、多租户管理等功能"
- HTTPS应用现状
- mcraiha指出部分音乐流媒体网站仍使用HTTP "streamingsoundtracks.com runs HTTP"
- 技术兼容性质疑
- zenmac询问反向代理兼容性问题 "Dose it work behind a reverse proxy such as nginx?"
- 功能改进建议
- elevation希望增加ACME配置选项 "Would love to see configurable ACME settings"
- 项目更新进展
- 作者sylwester回应已支持自定义ACME URL并完善文档 "custom ACME URLs are supported" "已添加更好的文档支持"
- 怀旧与技术可靠性
- IshKebab对Icecast仍存在表示惊讶 "Icecast still exists? Blast from the past"
(注:由于所有评论评分均为None,故未体现认可度差异)