NAS / 家用网络部署
把 LogVar 弹幕 API 跑在家里的 NAS、软路由、小主机或长期在线电脑上。建议先在局域网里用 http://NAS内网IP:9321/你的TOKEN 跑通,再决定要不要做外网访问。
先选访问方式
- 只在家里用:最简单,播放器和 NAS 在同一个局域网即可。
- 出门也要访问,有公网 IPv4:用 DDNS + 路由器端口转发。
- 没有公网 IPv4,但有 IPv6:用 IPv6 + DDNS,访问端也需要支持 IPv6。
- 没有公网 IP,或不想开端口:用 Cloudflare Tunnel,不需要改路由器端口,但国内访问速度可能一般。
准备工作
你需要准备:
- 一台能运行 Docker 的 NAS / 小主机 / 家用服务器。
- NAS 的内网 IP,例如
192.168.1.20。 - NAS 里能创建文件夹、上传或编辑
docker-compose.yml。 TOKEN:播放器访问令牌。ADMIN_TOKEN:系统配置令牌。
建议先在 NAS 文件管理器里创建项目目录:
danmu-api
├── docker-compose.yml
├── config
└── .cache如果你的 NAS 文件管理器不显示 .cache 这种点开头目录,可以创建成 cache,再把 Compose 里的挂载路径一起改掉。
在 NAS 上部署
1. 创建项目文件夹
在 NAS 的文件管理器里,选择一个非系统盘位置创建项目文件夹,例如:
docker/danmu-api然后在里面创建:
config
.cache飞牛 fnOS 这类系统通常是在文件管理里先创建项目目录,再去 Docker 管理里选择这个目录创建项目。

路径尽量用英文
项目目录、配置目录尽量用英文和短横线,例如 danmu-api、config、cache。不要用空格和特殊符号,后面复制路径、写 Compose 时更不容易出错。
2. 准备 docker-compose.yml
在项目文件夹里创建或上传 docker-compose.yml,内容如下:
services:
danmu-api:
image: logvar/danmu-api:latest
container_name: danmu-api
ports:
- "9321:9321"
volumes:
- ./config:/app/config
- ./.cache:/app/.cache
restart: unless-stopped重点确认:
image: logvar/danmu-api:latest:使用官方 Docker 镜像。"9321:9321":把容器里的9321端口映射到 NAS 的9321端口。./config:/app/config:把配置文件保存到 NAS 项目目录里的config。./.cache:/app/.cache:把缓存保存到 NAS 项目目录里的.cache。restart: unless-stopped:NAS 重启后自动启动容器。
如果你的 NAS 面板不支持 ./config 这种相对路径,就把左侧改成项目目录的完整路径,例如:
volumes:
- /volume1/docker/danmu-api/config:/app/config
- /volume1/docker/danmu-api/.cache:/app/.cache飞牛这类系统可以在文件夹详情里复制原始路径,再粘贴到 Compose 左侧。

3. 按你的 NAS 面板部署
下面选择你的设备类型即可,几种路线不要混着做。
飞牛 fnOS 适合走 Docker 管理 → 创建项目 / Compose 项目 这条路线。
1. 检查项目目录
打开 文件管理,创建 danmu-api 项目文件夹,并放好 docker-compose.yml。如果需要,也提前创建 config 和 .cache 子文件夹。
2. 检查 Docker 镜像源
打开 Docker 管理。如果镜像拉取很慢,可以先到 镜像仓库 / 仓库设置 里检查镜像源。

3. 创建 Compose 项目
点击创建项目,项目名称可以填:
danmu-api项目路径选择刚才创建的 danmu-api 文件夹,不要选里面的 config 或 .cache。

4. 等待启动
等待镜像拉取和项目启动。看到项目和容器是运行中 / 绿色状态,就说明容器已经启动。

群晖 DSM 7.2 以后,Docker 通常叫 Container Manager。核心是创建一个 Project / 项目,让它读取 docker-compose.yml。
1. 创建目录
打开 File Station,在 docker 共享文件夹下创建:
danmu-api然后把 docker-compose.yml 放入这个目录。
2. 创建项目
打开 Container Manager,找到 项目 / Project,点击 创建。
项目名称填:
danmu-api路径选择刚才的 docker/danmu-api,使用已有的 docker-compose.yml 创建项目。
3. 等待运行
等项目状态变成运行中,再继续修改 .env 和自检。
如果群晖界面没有项目 / Project
老版本 DSM 可能没有图形化 Compose 项目入口。可以看 Docker 部署指南 的命令行版,或者使用 Dockge / Portainer 这类通用 Compose 面板。
威联通 QNAP 一般用 Container Station。Compose 项目通常在 应用程序 里创建或上传。
1. 创建项目目录
打开 NAS 文件管理,创建项目目录,例如:
/share/Container/danmu-api/目录结构可以类似这样:

2. 上传 Compose
把 docker-compose.yml 放进项目目录。打开 Container Station,进入 应用程序,创建应用,上传或选择 docker-compose.yml。

3. 等待容器运行
等待应用创建完成。回到容器列表,看到 danmu-api 容器已经运行即可。

访问成功后,页面效果类似下面这种 Web 服务打开状态。

绿联 / 极空间 / 其它国产 NAS 的界面不同,但思路基本一样:找 Docker / 容器 / Compose / 堆栈 / 项目 / 自定义应用 这些入口。
通用步骤:
- 在文件管理里创建
danmu-api项目文件夹。 - 把
docker-compose.yml放进去。 - 打开 Docker 管理界面。
- 找到 Compose / 堆栈 / 项目 / 自定义应用。
- 新建项目,选择项目目录或粘贴 Compose 内容。
- 部署后确认容器状态是运行中。
如果面板没有 Compose 功能,可以先安装 Dockge 或 Portainer,再用它们管理 Compose。
Unraid 用户可以用两种方式:
- 已经装了 Docker Compose Manager:直接创建 Compose 项目,粘贴本页的
docker-compose.yml。 - 不用 Compose:在 Docker 页面手动添加容器,把 Compose 参数转成 Unraid 表单。
手动添加时,参数对应关系是:
- Repository / 镜像:
logvar/danmu-api:latest - Name / 容器名:
danmu-api - Port:主机
9321→ 容器9321 - Path:
/mnt/user/appdata/danmu-api/config→/app/config - Path:
/mnt/user/appdata/danmu-api/cache→/app/.cache - Restart Policy:除非手动停止,否则自动重启
4. 确认 .env 已生成
容器第一次启动后,会在 config 目录里生成 .env。
找到这个文件,至少改这两项:
TOKEN=你的播放器访问令牌
ADMIN_TOKEN=你的系统配置令牌保存后重启 danmu-api 容器。
TOKEN 和 ADMIN_TOKEN 不要一样
TOKEN 是普通访问令牌,播放器里一般填它。ADMIN_TOKEN 是系统配置令牌,不要发给别人,也不要填到播放器里。
如果没有生成 .env
通常是挂载目录写错或没有写入权限。先确认 config 是文件夹,不是文件;如果仍不生成,可以在 Compose 的 danmu-api 服务下加一行 user: "0:0" 后重新部署。
5. 局域网自检
在家里的电脑或手机浏览器打开:
http://NAS内网IP:9321/你的TOKEN例如:
http://192.168.1.20:9321/my-token能看到 LogVar 弹幕 API 页面、配置预览和接口调试入口,就说明 NAS 内网访问已经跑通。
只在家里用
如果播放器、电视盒子、电脑和 NAS 都在同一个家里网络,直接用局域网地址即可:
http://NAS内网IP:9321/你的TOKEN建议做两件事:
- 在路由器里给 NAS 固定内网 IP,避免以后地址变掉。
- 在播放器里填写固定后的地址。
怎么确认 NAS 内网 IP
常见位置:NAS 控制面板的网络信息、路由器后台的已连接设备列表、NAS 桌面右上角系统信息。常见格式是 192.168.x.x、10.x.x.x 或 172.16.x.x。
出门也要访问
先跑通局域网,再折腾外网
先确认在家里能打开 http://NAS内网IP:9321/你的TOKEN。局域网都打不开时,DDNS、端口转发、IPv6、Cloudflare Tunnel 都不会解决问题。
先按你的网络条件选方案:
- 有公网 IPv4:优先用 DDNS + 路由器端口转发,速度通常最好。
- 只有公网 IPv6:用 IPv6 + DDNS,但访问端也要支持 IPv6。
- 没有公网 IP / 不想开端口:用 Cloudflare Tunnel。
适合:家里宽带有公网 IPv4,愿意进路由器后台设置端口转发。
1. 判断是不是公网 IPv4
- 打开路由器后台,找到 WAN IP / 互联网 IP。
- 用浏览器搜索“我的 IP”。
- 对比两个 IP。
如果两个 IP 一样,通常就是公网 IPv4。 如果路由器 WAN IP 是下面这些开头,一般不是公网 IPv4:
10.x.x.x
100.64.x.x ~ 100.127.x.x
172.16.x.x ~ 172.31.x.x
192.168.x.x2. 固定 NAS 内网 IP
在路由器里找到 DHCP 静态租约 / 地址保留 / 固定 IP,把 NAS 固定成一个地址,例如:
192.168.1.203. 配置端口转发
在路由器后台找到 端口转发 / 虚拟服务器 / NAT 转发,添加一条规则。
小米路由器一般是在 高级设置 → 端口转发 → 添加规则:

华为路由器常见入口是 更多功能 → 安全设置 → NAT 服务 → 端口映射:

新建规则时,把外部访问的端口转发到 NAS 的 9321 端口:
外部端口:9321
内部 IP:NAS内网IP,例如 192.168.1.20
内部端口:9321
协议:TCP小米路由器的规则填写示例:

华为路由器的规则填写示例:

然后切到手机流量测试:
http://家里公网IP:9321/你的TOKEN4. 配置 DDNS
家庭公网 IP 可能会变化,所以建议配置 DDNS,把变化的 IP 绑定到固定域名。
常见做法:
- 路由器自带 DDNS
- NAS 自带 DDNS
- Docker 部署
ddns-go - Lucky 这类工具统一做 DDNS 和反向代理
配置成功后,访问地址变成:
http://你的DDNS域名:9321/你的TOKEN长期公开访问建议走 HTTPS
直接开放 9321 适合先测试。长期公开使用时,建议给域名加反向代理和 HTTPS。家用网络可以用 Nginx Proxy Manager、Lucky、Caddy 或 Cloudflare Tunnel;VPS / 1Panel 路线可参考 Docker 绑定域名、反代与 HTTPS。
适合:没有公网 IPv4,但家里和访问端都有 IPv6。
步骤:
- 在光猫或路由器里启用 IPv6。
- 在 NAS 网络信息里确认拿到了公网 IPv6。
- 在路由器或 NAS 防火墙里允许外部访问
9321/tcp。 - 给你的域名添加
AAAA记录,指向 NAS 的 IPv6。 - 用支持 IPv6 的网络测试访问:
http://你的域名:9321/你的TOKEN如果直接用 IPv6 地址访问,格式要加方括号:
http://[你的IPv6地址]:9321/你的TOKENIPv6 不是所有地方都能访问
有些公司网络、酒店 Wi-Fi、部分手机网络没有 IPv6。家里有 IPv6 不代表你在外面一定能访问。如果希望任何网络都能打开,Cloudflare Tunnel 通常更省心。
适合:没有公网 IPv4、不想改路由器端口,或者希望用 HTTPS 域名访问。
你需要:
- 一个自己的域名
- 域名已经托管到 Cloudflare
- NAS 能运行 Docker 容器
1. 创建 Tunnel
进入 Cloudflare Zero Trust,找到 Networks / Tunnels,点击创建 Tunnel。选择 cloudflared,Cloudflare 会给你一条 Docker 启动命令。重点是复制里面的 token。

2. 在 NAS 上运行 cloudflared
在 NAS 的 Docker 面板里搜索并下载:
cloudflare/cloudflared:latest创建容器时建议:
- 自动重启:开启
- 网络模式:优先用
Host - 命令填写:
tunnel --no-autoupdate run --token 你复制的token群晖 Container Manager 里的 cloudflared 容器配置示例:

回到 Cloudflare,如果 Tunnel 状态变成 Healthy,说明 NAS 已经连上 Cloudflare。
3. 添加 Public Hostname
在 Tunnel 里添加一个 Public Hostname,例如:
danmu.你的域名Service 这样填:
Type: HTTP
URL: http://NAS内网IP:9321如果 cloudflared 和 danmu-api 在同一台 NAS 上,并且使用 Host 网络,也可以尝试:
http://localhost:9321
保存后打开:
https://danmu.你的域名/你的TOKEN能打开页面后,再去跑 部署后自检。
Cloudflare Tunnel 的取舍
优点是不需要公网 IP、不需要路由器端口转发、自动有 HTTPS。缺点是国内访问速度可能一般,不适合追求极限速度的场景。
常见问题
NAS 内网 IP 能打开,手机流量打不开
说明局域网部署没问题,外网入口没配置好。按你的情况检查:
- 公网 IPv4:检查端口转发、DDNS、运营商是否封端口。
- IPv6:检查访问端是否支持 IPv6、NAS 防火墙是否放行。
- Cloudflare Tunnel:检查 Tunnel 是否 Healthy、Public Hostname 的 URL 是否填对。
容器运行了,但 9321 打不开
先检查:
- Compose 里有没有
"9321:9321"。 - NAS 防火墙有没有拦截
9321。 - 容器日志有没有报错。
config/.env是否生成成功。- 访问地址里是否带了正确的
TOKEN。
config 目录里没有 .env
通常是挂载目录写错或没有写入权限。
处理:
- 确认 Compose 里有:
volumes:
- ./config:/app/config- 如果相对路径不生效,改成 NAS 里的完整路径。
- 确认
config是文件夹,不是文件。 - 删除失败容器后重新部署。
- 仍不生成时,在
danmu-api服务下加user: "0:0"再重建。
访问显示 Unauthorized
说明地址里的令牌不对。普通页面用 TOKEN,系统配置页面用 ADMIN_TOKEN。
普通页面:
http://NAS内网IP:9321/你的TOKEN系统配置页面:
http://NAS内网IP:9321/你的ADMIN_TOKEN不知道播放器里填什么地址
先按访问范围选:
- 只在家里用:
http://NAS内网IP:9321/你的TOKEN - DDNS + 端口转发:
http://你的域名:9321/你的TOKEN - Cloudflare Tunnel:
https://danmu.你的域名/你的TOKEN
然后继续看 播放器接入。
做完后继续看
- 页面能打开:继续 部署后自检。
- 要接播放器:继续 播放器接入。
- 要长期维护 Docker:参考 Docker 部署指南 里的更新、日志和 Watchtower 部分。
- 要给公网访问加域名和 HTTPS:家用网络可优先考虑 Cloudflare Tunnel、Nginx Proxy Manager、Lucky 或 Caddy;VPS / 1Panel 可参考 Docker 绑定域名、反代与 HTTPS。
