Files
lxc-streamutils/config.toml.example
T
2026-08-06 10:38:07 -07:00

130 lines
6.5 KiB
TOML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 多用户直播组件服务配置。
#
# 使用方式:复制为 config.toml 后填写所有 replace-with-* 项。这个文件
# 包含首次迁移所需的 CookieCloud、bootstrap proof 和旧 OBS 令牌,请不要
# 提交或公开分享。多用户运行数据在初始化后保存在 PostgreSQL 中。
# Docker Compose 会将它以只读方式挂载到容器的 /app/config.toml。
# 旧单用户配置兼容段:room_id 只在数据库没有任何账户时,绑定给首次
# 创建的 system_admin,作为该账户的初始房间。后续账号的初始 room_id
# 由系统管理员创建邀请码时指定;注册后用户可在控制台自行切换。
# 实际 Bilibili Cookie 不直接写在配置中,而是通过 CookieCloud 获取。
[connection]
room_id = "123456" # 替换为首个系统管理员的真实直播间 ID;不能以 0 开头。
# cookies = "SESSDATA=..." # 不需要;由 CookieCloud 托管。
# HTTP、WebSocket 及静态前端监听地址。host 网络模式下只绑定
# 127.0.0.1,让同机 Nginx 代理,不要将应用端口直接暴露到公网。
[server]
bind_address = "127.0.0.1"
port = 9719
# 多用户数据库。保存账户、邀请码、TOTP 注册状态、会话、恢复码摘要、
# 加密 CookieCloud 凭据、直播源、组件/设置、OBS token 摘要和审计日志。
# 数据库账号必须能执行项目迁移;租户表会启用 RLS。
[database]
url = "postgresql://streamutils:replace-with-database-password@127.0.0.1:5432/streamutils?sslmode=disable"
# 旧单用户配置兼容段:只在首次 system_admin 初始化时导入到该账户,
# 随后 Key 和密码会使用 security.data_encryption_key 加密存入 PostgreSQL。
# 受邀用户在自己的 /control 页面填写各自的 CookieCloud;不同账户不会
# 共用凭据。迁移完成后修改此段不会覆盖数据库中的凭据。
# key 是 CookieCloud 同步 UUID;password 是同步密码。
[cookiecloud]
host = "http://127.0.0.1:8088"
key = "replace-with-cookiecloud-uuid"
password = "replace-with-cookiecloud-password"
# password 是一次性 bootstrap proof,只能在数据库尚无账户时授权创建
# 第一个 system_admin。它不会成为账户密码,也不能用于日常登录。
# 所有账户都是 passwordless:以后使用 username + TOTP(或恢复码)登录。
# session_secret 是旧配置兼容字段,目前仍为必填;填写了下方独立的数据
# 加密密钥后,它不用于签发数据库会话。两个值都应使用独立随机内容。
[admin]
password = "replace-with-a-one-time-bootstrap-secret"
session_secret = "replace-with-at-least-32-random-characters"
# 多用户身份安全配置。用 `openssl rand -base64 32` 生成独立的 32 字节
# Base64 密钥。它使用 XChaCha20-Poly1305 加密 TOTP Secret 和各用户的
# CookieCloud Key/密码;遗失或更换后无法恢复已有密文,请安全备份。
[security]
data_encryption_key = "replace-with-32-random-bytes-in-base64"
# TOTP 验证器中显示的 issuer;上线后不建议随意更改。
totp_issuer = "danmaku.luoxingci.com"
# 登录会话、二维码绑定流程和普通邀请码的默认有效期。
session_ttl_hours = 12
registration_ttl_minutes = 15
invitation_ttl_hours = 72
# 公开站点必须由 Nginx/可信反代提供 HTTPS,并保持此项为 true。
# 只有本机、无敏感数据的纯 HTTP 调试才能临时设为 false。
secure_cookies = true
# 用户只能配置此白名单中的 CookieCloud 基础地址,防止任意服务端
# 请求。必须包含上方 cookiecloud.host;可填多个管理员批准的实例。
cookiecloud_allowed_hosts = ["http://127.0.0.1:8088"]
# 旧 OBS token 兼容段:只导入首个 system_admin 的默认弹幕组件一次。
# 新组件通过控制台生成独立、可撤销且只存摘要的 token,地址格式为:
# /obs/<publicId>#token=<component-token>
# 没有需要迁移的旧 OBS 浏览器源时可设为空字符串。
[obs]
access_token = "replace-with-a-long-random-obs-token"
# 各活动直播源的 Bilibili 礼物目录缓存。启动时立即加载,之后按此
# 间隔刷新;失败时保留上一次成功结果。刷新间隔最小 60 秒。
[gifts]
refresh_interval_seconds = 600
request_timeout_seconds = 10
# 各用户 Bilibili 直播间表情目录缓存。接口使用该用户加密保存的
# CookieCloud/SESSDATA;消息自带图片始终优先,目录仅补齐缺失地址。
[emoticons]
refresh_interval_seconds = 600
request_timeout_seconds = 10
# 旧弹幕姬初始设置兼容段:只在首次 system_admin 初始化时,作为其默认
# danmaku_overlay 的旧数据迁移/回退值。其他受邀用户使用组件内建默认值;
# 所有用户之后都在 /control 按组件修改,PostgreSQL 设置始终优先。
# 迁移后修改这里不会覆盖任何已有组件。价格单位为千分之一元,因此
# 10000 = 10 元、100000 = 100 元。
[overlay]
# 主题 ID。弹幕姬与点歌姬支持 jade-scroll(青玉花卷)和 moonlit-water(静夜曲水)。
# 未来主题会继续使用稳定 ID,避免改名。
# 影响已经保存到 PostgreSQL 的组件设置。
theme_id = "jade-scroll"
# 中文字体:song(宋体)、fang-song(仿宋)或 kai(楷体)。
font_family = "fang-song"
# 文字亮度百分比,范围 70-180;深色直播背景建议从 130 开始。
font_brightness = 130
# 可选的弹幕昵称与正文颜色,只接受 #RRGGBB;不填写则跟随所选主题。
# viewer_color = "#B7AD83"
# danmaku_color = "#C6AE7A"
# 全局字号百分比,可在管理控制台中实时调整;允许范围 50-300。
font_scale = 140
max_visible = 5
collapse_after_seconds = 12
# 新弹幕卷轴从中心向两侧展开的时长,单位毫秒;允许范围 200-5000。
unfold_duration_ms = 1000
motion_intensity = 70
# 每张消息卡片的闪光粒子数量;0 可关闭粒子,允许范围 0-12。
particle_count = 8
# 粒子动画速度百分比;100 为标准速度,允许范围 25-300。
particle_speed = 100
low_performance_mode = false
high_value_threshold = 10000
featured_value_threshold = 100000
# 首个旧组件迁移时显示的事件类别;之后在 /control 中按组件修改。
[overlay.events]
danmaku = true
enter = true
gift = true
superchat = true
guard = true
like = false
share = false
# 默认记录本服务生命周期信息,并保持依赖库仅输出警告。
# libilibili 的凭据 Debug 已脱敏,但仍不要记录 Cookie 或原始认证载荷。
[logging]
filter = "lxc_stream_server=info,libilibili=warn,tokio_postgres=warn"