跳到正文

快速开始

选择安装方式,启动 Kiln,并用三条命令验证服务和播放。

更新于 Markdown 版本

Kiln 将上游 HLS 与 DASH 频道汇集到一个入口,对外提供带鉴权的 M3U 播放列表和按需生成的 HLS。整个服务只有一个二进制,DASH 解密与重封装由 Go 原生实现,默认无需 FFmpeg。

三条部署路径

三条路径跑的是同一个二进制,配置模型完全一致,同一份 kiln.toml 换个部署方式不需要改写。

先从源码跑一遍

想在装任何东西之前先看效果,用仓库自带的示例配置直接跑。需要 Go 1.26 或更高版本,原生 DASH 不需要 ffmpeg,只有兼容回退才需要。

git clone https://github.com/babywbx/Kiln.git
cd Kiln
go run ./apps/server -config configs/examples/kiln.toml

-config 是必填参数,缺省时进程会直接退出。示例配置在 configs/examples/kiln.toml,同目录下还有一份等价的 kiln.jsonc,两种格式可以任选。

服务默认监听 0.0.0.0:8080,示例账号是 admin / admin,管理界面在 /admin

三条命令验证

登录拿到 token 之后,播放列表和播放地址都从它派生:

TOKEN=$(curl -s http://127.0.0.1:8080/v1/auth/login \
  -H 'content-type: application/json' \
  -d '{"username":"admin","password":"admin"}' | jq -r .token)

curl -s http://127.0.0.1:8080/v1/channels -H "authorization: Bearer $TOKEN" | jq
curl -s http://127.0.0.1:8080/v1/playlist.m3u -H "authorization: Bearer $TOKEN"
curl -s "http://127.0.0.1:8080/v1/play/hls-demo/index.m3u8?token=$TOKEN"

hls-demo 是示例配置里的频道 id,换成自己的频道 id 即可。/v1/playlist.m3u 只认登录会话,/v1/play/ 下的地址既接受 ?token= 查询参数,也接受 Authorization 请求头。凭据的完整划分见 接口参考

生产前必改

只有两件事必须在对外之前改掉:登录口令的 bcrypt 哈希,以及会话 JWT 的签名密钥。

go run scripts/hash-password.go 'your-password'
go run scripts/gen-jwt-keys.go ./secrets   # 写出 ed25519.pem / ed25519.pub.pem

把哈希填进 [[auth.users]]password_hash,把密钥路径填进 [auth]token_private_key_filetoken_public_key_file,也可以用 KILN_TOKEN_PRIVATE_KEY_FILE 等环境变量注入。完整的鉴权模型见 鉴权与凭据,环境变量清单见 环境变量

下一步

导航

输入以搜索…

↑↓ 移动↵ 打开Esc 关闭