跳转至

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,先卸载旧版,再从同一个来源重新安装,避免签名不一致。

安装 Termux

先从 F-Droid 或 GitHub Releases 安装 Termux。装好后直接打开 Termux。


第 2 步:更新 Termux 并安装依赖

打开 Termux 后,先更新软件列表:

pkg update

再升级已安装的软件包:

pkg upgrade

如果中途看到 Do you want to continue?,输入 y 然后回车继续。

最后安装这 3 个工具:

pkg install git nodejs-lts nano

安装依赖

这一步装好 Git、Node.js 和 nano。


第 3 步:检查 Git、Node.js、npm 和 nano

依赖装完后,按顺序执行下面 4 条:

git --version
node -v
npm -v
nano --version

检查版本

都能显示版本号,再继续下一步。版本号不需要和图里完全一样。


第 4 步:下载 danmu_api 代码

先回到 Termux 的工作目录:

cd $HOME

再下载代码:

git clone https://github.com/huangxd-/danmu_api.git

下载完成后进入项目目录:

cd danmu_api

下载代码

看到提示符进入 ~/danmu_api 后,后面的命令都在这个目录里执行。

如果提示 destination path 'danmu_api' already exists,说明以前下载过这个目录。最简单的处理方式是换一个新目录重新下载:

cd $HOME
git clone https://github.com/huangxd-/danmu_api.git danmu_api_new
cd danmu_api_new

第 5 步:安装项目依赖

确认当前目录在 danmu_apidanmu_api_new 后,执行:

npm install

安装依赖

依赖安装需要等一会儿。看到终端重新回到项目目录提示符,再继续。

如果手机内存小,安装时尽量不要切到后台,也先关掉其它大应用。


第 6 步:复制 config/.env 并打开

下面两条命令都要在项目目录里执行。

先复制配置文件:

cp config/.env.example config/.env

再用 nano 打开:

nano config/.env

打开配置文件

执行 nano config/.env 后,会进入文件编辑界面。

如果提示找不到文件,说明当前目录不对。先回到项目目录:

cd $HOME/danmu_api

第 7 步:只改 TOKEN 和 ADMIN_TOKEN

看到 config/.env 内容后,先只改这两项:

TOKEN=***
ADMIN_TOKEN=***

如果你看到的是 # ADMIN_TOKEN=***,就把最前面的 # 删除,再把后面的值改成自己的管理员令牌。

修改配置

先只确认 TOKENADMIN_TOKEN。其它配置后面可以在前端系统配置里改。

这两个值这样用:

  • TOKEN:普通页面和接口访问用
  • ADMIN_TOKEN:管理员页面用;不设置就打不开管理员功能

改完后保存并退出 nano:

  1. Ctrl + O
  2. 回车
  3. Ctrl + X

如果手机键盘没有 Ctrl,看 Termux 顶部/底部的额外按键栏;有些手机也可以用音量下键当 Ctrl


第 8 步:启动 danmu_api

回到项目目录里的 Termux,执行:

npm start

启动服务

看到 Server running on http://0.0.0.0:9321,说明服务已经启动。这个 Termux 会话要保持打开。

现在手机自己打开浏览器访问:

http://127.0.0.1:9321

如果你设置了自己的 TOKEN,也可以直接打开:

http://127.0.0.1:9321/你的TOKEN

如果你想改端口,用这一种写法启动:

DANMU_API_PORT=8080 npm start

第 9 步:查看手机局域网 IP

如果只在这台手机上测试,用 127.0.0.1 就够了。

如果同一个 Wi-Fi 下的电视、平板或电脑也要访问,保持运行 npm start 的 Termux 会话不要关,然后到手机系统设置里看 IP。

不要再用 Termux 终端命令查 IP。不同手机限制不一样,ip 可能提示 Permission deniedifconfig 也可能没有输出。

按这个顺序找:

  1. 打开手机 设置
  2. 进入 WLAN / Wi-Fi
  3. 点当前已经连接的 Wi-Fi
  4. 打开 网络详情 / 更多信息 / IP 设置
  5. IP 地址IPv4 地址

看到类似 192.168.1.2310.0.0.12172.16.0.8 的地址,就是手机局域网 IP。

查看 IP

不同安卓手机入口名字可能不一样,重点是进入当前 Wi-Fi 的详情页,找到 IP 地址。

例如你查到的是 192.168.1.23,那同一个 Wi-Fi 下其它设备访问:

http://192.168.1.23:9321

上游当前 Node 本地入口监听 0.0.0.0,所以同一个 Wi-Fi 下的其它设备可以用手机局域网 IP 访问。


第 10 步:以后主要就改 config/.env

后面如果要改变量,先回到项目目录:

cd $HOME/danmu_api

再打开配置文件:

nano 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 中途被系统杀掉

手机内存紧时会这样。先关掉后台大应用,再回到项目目录重新执行:

npm install

下一步