Files
MeshChatX/lang
2026-04-08 15:33:14 -05:00
..
2026-04-08 15:33:14 -05:00
2026-04-08 15:33:14 -05:00
2026-04-08 15:33:14 -05:00
2026-04-08 15:33:14 -05:00
2026-04-08 15:33:14 -05:00

Reticulum MeshChatX

English README | Deutsch | Italiano | Русский | 日本語

Liam Cottle 开发的 Reticulum MeshChat 的一个功能丰富的深度修改分支。

本项目独立于原始 Reticulum MeshChat 项目,与其无关联。

与 Reticulum MeshChat 的重要差异

  • 使用 LXST
  • 以原生 SQL 替代 Peewee ORM
  • 以原生 fetch 替代 Axios
  • 使用最新 Electron
  • .whl 内置 Web 服务器与前端资源,便于多种部署方式
  • i18n
  • 使用 PNPM 与 Poetry 管理依赖

Warning

MeshChatX 不保证与旧版 Reticulum MeshChat 的数据兼容。迁移或测试前请备份数据。

Warning

旧系统尚未完全支持。当前最低要求Python >=3.11Node >=24

系统要求

  • Python >=3.11(来自 pyproject.toml
  • Node.js >=24(来自 package.json
  • pnpm 10.32.1(来自 package.json
  • Poetry用于 Taskfile.yml 与 CI 工作流)
task install
task lint:all
task test:all
task build:all

安装方式

请按运行环境与打包形式选择。

方式 包含前端 架构 适用场景
Docker 镜像 linux/amd64, linux/arm64 Linux 服务器快速部署
Python wheel (.whl) 任何 Python 支持的架构 无需 Node 构建的无头/Web 服务器安装
Linux AppImage x64, arm64 便携式桌面使用
Debian 包 (.deb) x64, arm64 Debian/Ubuntu 安装
RPM 包 (.rpm) 取决于 CI Fedora/RHEL/openSUSE
从源码 本地构建 主机架构 开发与自定义构建

说明:

  • 发布工作流明确构建 Linux x64arm64 的 AppImage + DEB。
  • RPM 亦会尝试构建,成功时上传。

快速开始: Docker

docker compose up -d

默认 compose 文件映射:

  • 主机 127.0.0.1:8000 -> 容器端口 8000
  • ./meshchat-config -> /config 持久化

如遇权限问题:

sudo chown -R 1000:1000 ./meshchat-config

从发行版安装

1) Linux AppImage (x64/arm64)

  1. 从发行版下载 ReticulumMeshChatX-v<版本>-linux-<架构>.AppImage
  2. 赋予执行权限并运行:
chmod +x ./ReticulumMeshChatX-v*-linux-*.AppImage
./ReticulumMeshChatX-v*-linux-*.AppImage

2) Debian/Ubuntu .deb (x64/arm64)

  1. 下载 ReticulumMeshChatX-v<版本>-linux-<架构>.deb
  2. 安装:
sudo apt install ./ReticulumMeshChatX-v*-linux-*.deb

3) RPM 系统

  1. 若发行版中存在,下载 ReticulumMeshChatX-v<版本>-linux-<架构>.rpm
  2. 安装:
sudo rpm -Uvh ./ReticulumMeshChatX-v*-linux-*.rpm

4) Python wheel (.whl)

发行版 wheel 包含已构建的前端资源。

pip install ./reticulum_meshchatx-*-py3-none-any.whl
meshchatx --headless

亦支持 pipx:

pipx install ./reticulum_meshchatx-*-py3-none-any.whl

从源码运行Web 服务器模式)

在开发或需要本地定制构建时使用。

git clone https://git.quad4.io/RNS-Things/MeshChatX.git
cd MeshChatX
corepack enable
pnpm install
pip install poetry
poetry install
pnpm run build-frontend
poetry run meshchatx --headless --host 127.0.0.1

在沙盒中运行Linux

若要在额外隔离文件系统的情况下运行原生 meshchatx(别名:meshchat),可使用 FirejailBubblewrapbwrap),同时保留 Reticulum 与 Web 界面所需的网络访问。完整示例pip/pipx、Poetry、USB 串口说明)见:

在提供已捆绑或已同步的 meshchatx-docs 时,应用内 文档MeshChatX 文档)列表亦会显示同一页面。

从源码构建桌面包

脚本定义于 package.jsonTaskfile.yml

Linux x64 AppImage + DEB

pnpm run dist:linux-x64

Linux arm64 AppImage + DEB

pnpm run dist:linux-arm64

RPM

pnpm run dist:rpm

或通过 Task:

task dist:fe:rpm

架构支持

  • Docker: amd64, arm64
  • Linux AppImage: x64, arm64
  • Linux DEB: x64, arm64
  • Windows: x64, arm64(提供构建脚本)
  • macOS: 提供构建脚本(arm64universal),适用于本地构建环境
  • Android: 仓库内含项目与 CI 工作流

Android

配置

参数 环境变量 默认值 说明
--host MESHCHAT_HOST 127.0.0.1 Web 服务器绑定地址
--port MESHCHAT_PORT 8000 Web 服务器端口
--no-https MESHCHAT_NO_HTTPS false 禁用 HTTPS
--ssl-cert / --ssl-key MESHCHAT_SSL_CERT / MESHCHAT_SSL_KEY (无) PEM 证书与私钥路径;需同时设置。覆盖身份下 ssl/ 目录中自动生成的证书。
--headless MESHCHAT_HEADLESS false 不自动打开浏览器
--auth MESHCHAT_AUTH false 启用基本认证
--storage-dir MESHCHAT_STORAGE_DIR ./storage 数据目录
--public-dir MESHCHAT_PUBLIC_DIR 自动/捆绑 前端文件目录(无捆绑资源安装时需要)

分支

分支 用途
master 稳定发布。仅限生产就绪代码。
dev 活跃开发。可能包含不稳定或不完整的更改。

开发

Taskfile.yml 中的常用任务:

task install
task lint:all
task test:all
task build:all

Makefile 快捷方式:

命令 说明
make install 安装 pnpm 与 poetry 依赖
make run 通过 poetry 运行 MeshChatX
make build 构建前端
make lint 运行 eslint 与 ruff
make test 运行前端与后端测试
make clean 移除构建产物与 node_modules

版本

本仓库当前版本: 4.4.0

  • JavaScript/Electron 版本以 package.json 为准。
  • meshchatx/src/version.py 通过以下命令与 package.json 同步:
pnpm run version:sync

发布时请保持相关字段一致(package.jsonpyproject.tomlmeshchatx/__init__.py)。

安全

  • SECURITY.md
  • 应用内置完整性检查与默认 HTTPS/WSS
  • .gitea/workflows/ 中的 CI 扫描工作流

添加语言

语言由目录自动发现。添加新语言只需一个 JSON 文件:

  1. en.json 生成空白模板:
python scripts/generate_locale_template.py

将写入 locales.json,所有键值为空字符串。

  1. 重命名并移入语言目录:
mv locales.json meshchatx/src/frontend/locales/xx.json
  1. 在文件顶部设置 _languageName 为该语言的母语名称(例如 "Espanol""Francais")。将显示在语言选择器中。

  2. 翻译其余全部值。

  3. 校验键一致性: pnpm test -- tests/frontend/i18n.test.js --run

无需其他代码更改。应用、语言选择与测试在构建时从 meshchatx/src/frontend/locales/ 发现语言文件。

致谢