Termux 手机部署
在安卓手机的 Termux 里安装 Git、Node.js,下载 danmu_api,修改配置,启动本地服务。
目标
在安卓手机的 Termux 里跑起 danmu_api。按这页做完后,手机自己可以打开 http://127.0.0.1:9321,同一个 Wi-Fi 下的电视、平板或电脑也可以用手机局域网 IP 访问。
这页按 Android 7 及以上写。命令一条一条复制,等上一条执行完、终端重新出现提示符,再继续下一条。
优缺点
| 优点 | 缺点 |
|---|---|
| 不需要服务器,手机就是运行环境 | 需要保持 Termux 在后台运行 |
| 完全免费,不需要任何云平台账号 | 安卓电池优化可能会杀后台 |
| 可以局域网内其他设备访问 | 手机内存小时 npm install 可能被杀 |
| 配置文件直接在本地修改 | 长时间运行可能增加手机功耗 |
第 1 步:安装 Termux
先装官方还在维护的来源,不要装 Play 商店旧版。
优先打开这两个入口之一:
如果走 GitHub Releases,Android 7 及以上选 apt-android-7 变体。如果手机里以前装过别的来源的 Termux,先卸载旧版,再从同一个来源重新安装,避免签名不一致。

先从 F-Droid 或 GitHub Releases 安装 Termux。装好后直接打开 Termux。
第 2 步:更新 Termux 并安装依赖
打开 Termux 后,先更新软件列表:
再升级已安装的软件包:
如果中途看到 Do you want to continue?,输入 y 然后回车继续。
最后安装这 3 个工具:

这一步装好 Git、Node.js 和 nano。
第 3 步:检查 Git、Node.js、npm 和 nano
依赖装完后,按顺序执行下面 4 条:

都能显示版本号,再继续下一步。版本号不需要和图里完全一样。
第 4 步:下载 danmu_api 代码
先回到 Termux 的工作目录:
再下载代码:
下载完成后进入项目目录:

看到提示符进入
~/danmu_api后,后面的命令都在这个目录里执行。
如果提示 destination path 'danmu_api' already exists,说明以前下载过这个目录。最简单的处理方式是换一个新目录重新下载:
第 5 步:安装项目依赖
确认当前目录在 danmu_api 或 danmu_api_new 后,执行:

依赖安装需要等一会儿。看到终端重新回到项目目录提示符,再继续。
如果手机内存小,安装时尽量不要切到后台,也先关掉其它大应用。
第 6 步:复制 config/.env 并打开
下面两条命令都要在项目目录里执行。
先复制配置文件:
再用 nano 打开:

执行
nano config/.env后,会进入文件编辑界面。
如果提示找不到文件,说明当前目录不对。先回到项目目录:
第 7 步:只改 TOKEN 和 ADMIN_TOKEN
看到 config/.env 内容后,先只改这两项:
如果你看到的是 # ADMIN_TOKEN=***,就把最前面的 # 删除,再把后面的值改成自己的管理员令牌。

先只确认
TOKEN和ADMIN_TOKEN。其它配置后面可以在前端系统配置里改。
这两个值这样用:
TOKEN:普通页面和接口访问用ADMIN_TOKEN:管理员页面用;不设置就打不开管理员功能
改完后保存并退出 nano:
- 按
Ctrl + O - 回车
- 按
Ctrl + X
如果手机键盘没有 Ctrl,看 Termux 顶部/底部的额外按键栏;有些手机也可以用音量下键当 Ctrl。
第 8 步:启动 danmu_api
回到项目目录里的 Termux,执行:

看到
Server running on http://0.0.0.0:9321,说明服务已经启动。这个 Termux 会话要保持打开。
现在手机自己打开浏览器访问:
如果你设置了自己的 TOKEN,也可以直接打开:
如果你想改端口,用这一种写法启动:
第 9 步:查看手机局域网 IP
如果只在这台手机上测试,用 127.0.0.1 就够了。
如果同一个 Wi-Fi 下的电视、平板或电脑也要访问,保持运行 npm start 的 Termux 会话不要关,然后到手机系统设置里看 IP。
不要再用 Termux 终端命令查 IP。不同手机限制不一样,ip 可能提示 Permission denied,ifconfig 也可能没有输出。
按这个顺序找:
- 打开手机 设置
- 进入 WLAN / Wi-Fi
- 点当前已经连接的 Wi-Fi
- 打开 网络详情 / 更多信息 / IP 设置
- 找 IP 地址 或 IPv4 地址
看到类似 192.168.1.23、10.0.0.12、172.16.0.8 的地址,就是手机局域网 IP。

不同安卓手机入口名字可能不一样,重点是进入当前 Wi-Fi 的详情页,找到 IP 地址。
例如你查到的是 192.168.1.23,那同一个 Wi-Fi 下其它设备访问:
上游当前 Node 本地入口监听 0.0.0.0,所以同一个 Wi-Fi 下的其它设备可以用手机局域网 IP 访问。
第 10 步:以后主要就改 config/.env
后面如果要改变量,先回到项目目录:
再打开配置文件:

改完
config/.env后,大多数配置会自动重新加载;如果改的是端口,重新执行一次npm start最稳。
常见问题
1)电视或平板打不开手机地址
先确认:
- 手机和播放器设备在同一个 Wi-Fi
- 填的是第 9 步查到的局域网 IP,不是
127.0.0.1 - 手机没有切到移动数据
- 运行
npm start的 Termux 会话还开着
2)Termux 过一会儿自己停了
这是安卓电池优化常见问题。给 Termux 放开电池优化,再重新执行 npm start。
3)npm install 中途被系统杀掉
手机内存紧时会这样。先关掉后台大应用,再回到项目目录重新执行: