akokk0/bilibili-notify

By akokk0

Updated about 9 hours ago

Monitor Bilibili content creators' updates/live streams, render card images, and push them

Image
Integration & delivery
Message queues
Web servers
0

3.8K

akokk0/bilibili-notify repository overview

Bilibili-Notify

B 站 UP 主动态 / 直播开播推送工具的独立端镜像 —— 自带 Web 控制台,Docker 部署,不依赖 Koishi。

监控 B 站 UP 主,有新动态或开播时推送到 QQ(OneBot)、Webhook(钉钉 / 飞书 / 企业微信)等平台。控制台支持扫码登录、订阅管理、推送目标配置、高级规则(动态过滤 / 消息模板 / 直播阈值 / 全局与 per-UP 覆盖 / 特别关注)、卡片渲染与样式、AI 直播总结与动态点评、弹幕词云、推送历史与日志查看。

支持架构

linux/amd64 · linux/arm64(多架构 manifest,pull 时按宿主自动选择)

标签

Tag说明
alpha持续构建的测试版,当前可用镜像
latest稳定版(首个稳定版发布后才有)
vX.Y.Z固定版本
<short-sha>按 commit,不可变,用于精确 pin / 回滚

快速开始

推荐 docker compose。新建一个目录,放入 docker-compose.yaml;不要手动创建 config/bn.config.yaml。镜像默认走 Docker Hub,也可改用 GHCR:ghcr.io/akokk0/bilibili-notify:alpha

services:
  bilibili-notify:
    image: akokk0/bilibili-notify:alpha
    container_name: bilibili-notify
    restart: unless-stopped
    ports:
      - "8787:8787"
    environment:
      BN_DASHBOARD_USER: admin
      BN_DASHBOARD_PASS: change-me-on-first-boot
    volumes:
      - ./data:/data
      - ./config:/config
docker compose up -d

或最小 docker run:

docker run -d --name bilibili-notify \
  -p 8787:8787 \
  -v "$(pwd)/data:/data" -v "$(pwd)/config:/config" \
  akokk0/bilibili-notify:alpha

GHCR 镜像同 tag 发布:

docker pull ghcr.io/akokk0/bilibili-notify:alpha

启动后打开 http://<host>:8787,登录后扫码绑定 B 站账号。

数据卷

两个独立挂载点,都需 bind-mount 到宿主,否则数据随容器丢失:

容器路径内容
/data运行时状态:订阅 / 推送目标 / 推送历史 / 日志 / 加密 secrets / 粉丝时序
/configbn.config.yaml —— bootstrap 配置文件,首次启动自动生成

配置模型

镜像默认 BN_CONFIG=/config/bn.config.yaml:

  • 首次启动 —— BN_* 环境变量 + 默认值生成 bn.config.yaml
  • 之后 —— yaml 是唯一真相,环境变量被忽略。改配置 = 编辑 ./config/bn.config.yamldocker compose restart
  • 重置 —— 删除 ./config/bn.config.yaml 重新启动。
  • 不要手写配置文件 —— 只挂载 ./config:/config,让容器生成完整 yaml;如必须手写,保留 webDistDir: /app/web-dist
环境变量(仅首次启动 seed 进 yaml)
变量默认用途
BN_DASHBOARD_USER / BN_DASHBOARD_PASS未设控制台登录凭据
BN_COOKIE_KEY未设secrets 加密密钥(openssl rand -base64 32 生成)
BN_LOG_LEVELinfo日志级别
TZAsia/Shanghai容器时区(影响日志 / 历史按日切文件)

BN_CONFIG / BN_HOST / BN_PORT / BN_DATA_DIR / BN_CHROME_PATH / BN_WEB_DIST 由镜像固定注入,无需也不要在 compose 中重写。

故障排查
  • curl localhost:8787 返回 404:检查 ./config/bn.config.yaml 是否缺少 webDistDir: /app/web-dist;正常启动日志会出现 serving dashboard static assets from /app/web-dist。如果配置和 BN_WEB_DIST 都缺失,服务会再检查镜像默认 /app/web-dist/index.html;仍没有时日志会说明 Dashboard 静态资源已禁用。
  • 手写过 bn.config.yaml:建议备份后删除该文件,让容器重新生成;不要删除 ./data

登录与安全

  • 未显式设凭据时,首次启动自动生成 admin + 随机密码,写入 bn.config.yaml 并打印到容器日志。登录后请立即修改默认密码。
  • 监听非 loopback 地址又无凭据时,服务拒绝启动;BN_ALLOW_NO_AUTH=1 可强制放行(自担风险)。
  • 公网 / 局域网部署务必在控制台设置 auth.allowedOrigins,填写控制台自身的 origin —— 它门禁 WebSocket upgrade 并兜底防 CSRF。
  • 反向代理后:登录限流以直连对端为 key,不信任 X-Forwarded-For,所有客户端共用一个桶 —— 必须在代理层另做鉴权 / IP 白名单。

接入 QQ(OneBot)

控制台 推送目标 → 新建适配器,platform 选 onebot,连接方式三选一:

  • HTTP —— 填 bot 的 HTTP API 地址
  • 正向 WS —— 填 bot 的 WebSocket 地址
  • 反向 WS —— 指定一个监听端口,bot 主动连入(需在 compose ports 额外映射该端口)

可配合 NapCat 等 OneBot v11 实现。

链接

Tag summary

Content type

Image

Digest

sha256:49c22f851

Size

409.8 MB

Last updated

about 9 hours ago

docker pull akokk0/bilibili-notify:5859d68ae2ef