来自 https://www.rinne.in/posts/default/deploy-mxspace-with-termux
本处不再更新(2024/09/20)
没错,这个网站就是搭在旧手机上的。
这里推荐使用其开源分支ZeroTermux,支持许多便捷功能。
你可以使用左侧边栏的换源功能,并使用MOE全能
启用 zsh。
类似 Arch User Repository,termux 也有 Termux User Repository。
我们仅需输入
pkg i tur-repo
等待源添加 (需要连接至 Github)。
pkg i redis
pkg i mongodb
完成软件安装,测试能否正常使用:
redis-server
mongod
由于 Mx-Space 默认数据库配置为空,所以这里为了减少麻烦,不额外进行配置。
可以选择nohup
或screen
,这里我使用pm2
。
pkg i nodejs
npm i -g pnpm # pnpm性能更强
pnpm setup # pnpm初始化请自行搜索
pnpm i -g pm2
pm2 start redis-server
pm2 start mongod
pm2 save # 保存状态,可选
pm2 resurrect #若Termux被杀死,使用其恢复到save的状态
本来想全部在 Termux 默认环境下搞定,但貌似一定会编译失败。
同样使用MOE全能
,后续使用tmoe
命令即可打开 menu。
选择proot容器
/arm64发行版列表
/Ubuntu
/22.04(LTS)
/启动
,接着按照指引配置系统。
(后续可直接在 Termux 家目录执行debian
直接启动或用tmoe
在List Installed 当前已安装容器列表
中快速管理)
# root user
apt update
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
apt update && apt install -y nodejs npm
pnpm
和pm2
安装参照上文 Termux 中的安装。
请结合官方文档阅读。
Note: 若要修改NPM镜像源,需要更改仓库根目录的.npmrc
中的值,你设置的全局镜像在该仓库不会生效。
git clone https://github.com/mx-space/core.git --depth=1
cd core
pnpm i
pnpm build
pnpm bundle
cd ./apps/core
nano ./ecosystem.config.js # 参考官方文档修改
node ./out/index.js --port 3000 # 测试是否报错
pm2 start ecosystem.config.js
pm2 logs # 查看日志
进入http://{ip:port}/proxy/qaqdmin
初始化设置你的 Mix-Space。
你可以使用你的公网 IP(v4/v6),但可能被封。
也可以使用各类 FRP 内网穿透。
这里我使用 CloudFlare Tunnel(移动效果不好,电信可稳连 quic+http2):
# 注意这里是Ubuntu容器内;Termux默认环境会报错
curl -L --output cloudflared.deb https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-arm64.deb && sudo dpkg -i cloudflared.deb
接着按照网上其它教程配置即可,仅需反代http://localhost:{port}
即可。
你可以使用/etc/init.d/cloudflared start
启动后台服务。
记得给你的 CF 防火墙设置允许各类请求方法,注意不要把 Vercel 的请求给拦截了。
这里踩的坑是不要用 CloudFlare 代理 Vercel 的这个网站,原因是前端使用了 authjs.dev,CF 反代会触发网关50x
报错。
貌似已经修好了。
也可以选择直接部署在 CloudFlare Pages 或 Netlify 上 (均限制每日 API 请求次数) ,但无论如何记得不要再套一层反代。
只要走一遍以下命令即可。
pm2 resurrect
debian
pm2 del all # 清除可能的其它进程残留;慎用,会删除pm2列表
cd core/apps/core
pm2 start ecosystem.config.js
/etc/init.d/cloudflared start
debian # 进入 Ubuntu
cd core
pm2 del all # 后台跑着 mx-space 可能会在编译时出错
git pull
git reset vx.x.x # 为最新 tag,非 tag 版本可能无法正常运行
pnpm build
pnpm bundle
# 接下来按照正常流程启动即可
cd core/apps/core
pm2 start ecosystem.config.js
此文由 Mix Space 同步更新至 xLog
原始链接为 https://xrzyun.eu.org/posts/default/deploy-mxspace-with-termux