xChar
·3 months ago

注意

来自 https://www.rinne.in/posts/default/deploy-mxspace-with-termux
本处不再更新(2024/09/20)

正文

没错,这个网站就是搭在旧手机上的。

安装 Termux

这里推荐使用其开源分支ZeroTermux,支持许多便捷功能。

你可以使用左侧边栏的换源功能,并使用MOE全能启用 zsh。

添加 TUR 源

类似 Arch User Repository,termux 也有 Termux User Repository。

我们仅需输入

pkg i tur-repo

等待源添加 (需要连接至 Github)。

安装数据库

pkg i redis
pkg i mongodb

完成软件安装,测试能否正常使用:

redis-server
mongod

由于 Mx-Space 默认数据库配置为空,所以这里为了减少麻烦,不额外进行配置。

后台运行数据库

可以选择nohupscreen,这里我使用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的状态

安装 Ubuntu

本来想全部在 Termux 默认环境下搞定,但貌似一定会编译失败。

同样使用MOE全能,后续使用tmoe命令即可打开 menu。

选择proot容器/arm64发行版列表/Ubuntu/22.04(LTS)/启动,接着按照指引配置系统。

(后续可直接在 Termux 家目录执行debian直接启动或用tmoeList Installed 当前已安装容器列表中快速管理)

Ubuntu 中安装 Node.js 等环境

参考

# root user
apt update
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
apt update && apt install -y nodejs npm

pnpmpm2安装参照上文 Termux 中的安装。

准备 Mx-Space 核心

请结合官方文档阅读。

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 的请求给拦截了。

在 Vercel 上部署前端 (Shiro)

官方文档

这里踩的坑是不要用 CloudFlare 代理 Vercel 的这个网站,原因是前端使用了 authjs.dev,CF 反代会触发网关50x报错。
貌似已经修好了。

也可以选择直接部署在 CloudFlare Pages 或 Netlify 上 (均限制每日 API 请求次数) ,但无论如何记得不要再套一层反代

大功告成?

保活方案

  • 设置中关闭电池智能优化,设置 Termux 为无限制
  • 关闭 WIFI 连接优化,保证稳定的网络连接 (不要在多个网络/流量见反复横跳)
  • [root]安装 Thanox,并为 Termux 设置后台保护

被杀后台?

只要走一遍以下命令即可。

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


Loading comments...