12 KiB
Reticulum MeshChatX
English README | Русский | Italiano | 中文 | 日本語
Ein umfassend modifizierter und funktionsreicher Fork von Reticulum MeshChat von Liam Cottle.
Dieses Projekt ist unabhaengig vom originalen Reticulum MeshChat und steht in keiner Verbindung dazu.
- Website: meshchatx.com
- Quellcode: git.quad4.io/RNS-Things/MeshChatX
- Offizieller Spiegel: github.com/Sudo-Ivan/MeshChatX – derzeit auch fuer Windows- und macOS-Builds genutzt.
- Releases: git.quad4.io/RNS-Things/MeshChatX/releases
- Aenderungsprotokoll:
CHANGELOG.md - TODO: Boards
Wichtige Aenderungen gegenueber Reticulum MeshChat
- Verwendet LXST
- Peewee-ORM durch direktes SQL ersetzt
- Axios durch natives
fetchersetzt - Aktuelles Electron
.whl-Pakete mit Webserver und eingebauten Frontend-Assets fuer mehr Deploy-Optionen- i18n
- PNPM und Poetry fuer Abhaengigkeiten
Warning
MeshChatX garantiert keine Datenkompatibilitaet mit aelteren Reticulum-MeshChat-Versionen. Erstellen Sie vor Migration oder Tests eine Datensicherung.
Warning
Aeltere Systeme werden noch nicht vollstaendig unterstuetzt. Aktuelle Mindestanforderungen: Python
>=3.11und Node>=24.
Voraussetzungen
- Python
>=3.11(auspyproject.toml) - Node.js
>=24(auspackage.json) - pnpm
10.32.1(auspackage.json) - Poetry (verwendet in
Taskfile.ymlund CI-Workflows)
task install
task lint:all
task test:all
task build:all
Installationsmethoden
Waehlen Sie die Methode passend zu Umgebung und Paketierung.
| Methode | Frontend enthalten | Architekturen | Geeignet fuer |
|---|---|---|---|
| Docker-Image | Ja | linux/amd64, linux/arm64 |
Schnellster Start auf Linux-Servern |
Python Wheel (.whl) |
Ja | Jede Python-unterstuetzte Architektur | Headless/Webserver ohne Node-Build |
| Linux AppImage | Ja | x64, arm64 |
Portabler Desktop-Einsatz |
Debian-Paket (.deb) |
Ja | x64, arm64 |
Debian/Ubuntu-Installation |
RPM-Paket (.rpm) |
Ja | CI-abhaengig | Fedora/RHEL/openSUSE |
| Aus Quellcode | Lokal gebaut | Host-Architektur | Entwicklung und individuelle Builds |
Hinweise:
- Der Release-Workflow baut explizit Linux
x64undarm64AppImage + DEB. - RPM wird ebenfalls versucht und bei Erfolg hochgeladen.
Schnellstart: Docker
docker compose up -d
Standard-Compose-Datei:
127.0.0.1:8000auf dem Host -> Container-Port8000./meshchat-config->/configfuer Persistenz
Bei Berechtigungsproblemen:
sudo chown -R 1000:1000 ./meshchat-config
Installation aus Release-Artefakten
1) Linux AppImage (x64/arm64)
ReticulumMeshChatX-v<version>-linux-<arch>.AppImagevon den Releases herunterladen.- Ausfuehrbar machen und starten:
chmod +x ./ReticulumMeshChatX-v*-linux-*.AppImage
./ReticulumMeshChatX-v*-linux-*.AppImage
2) Debian/Ubuntu .deb (x64/arm64)
ReticulumMeshChatX-v<version>-linux-<arch>.debherunterladen.- Installieren:
sudo apt install ./ReticulumMeshChatX-v*-linux-*.deb
3) RPM-basierte Systeme
ReticulumMeshChatX-v<version>-linux-<arch>.rpmherunterladen, falls im Release vorhanden.- Installieren:
sudo rpm -Uvh ./ReticulumMeshChatX-v*-linux-*.rpm
4) Python Wheel (.whl)
Release-Wheels enthalten die gebauten Web-Assets.
pip install ./reticulum_meshchatx-*-py3-none-any.whl
meshchatx --headless
pipx wird ebenfalls unterstuetzt:
pipx install ./reticulum_meshchatx-*-py3-none-any.whl
Aus Quellcode ausfuehren (Webserver-Modus)
Fuer Entwicklung oder lokale Custom-Builds.
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 python -m meshchatx.meshchat --headless --host 127.0.0.1
Sandboxing (Linux)
Um das native meshchatx-Programm (Alias: meshchat) mit zusaetzlicher Dateisystem-Isolation auszufuehren, koennen Sie Firejail oder Bubblewrap (bwrap) nutzen, bei weiterhin normalem Netzwerkzugriff fuer Reticulum und die Web-Oberflaeche. Vollstaendige Beispiele (pip/pipx, Poetry, Hinweise zu USB-Seriell) finden Sie in:
Dieselbe Seite erscheint in der in-app-Dokumentation (MeshChatX-Docs), wenn sie aus den gebuendelten oder synchronisierten meshchatx-docs-Dateien ausgeliefert wird.
Desktop-Pakete aus Quellcode bauen
Diese Skripte sind in package.json und Taskfile.yml definiert.
Linux x64 AppImage + DEB
pnpm run dist:linux-x64
Linux arm64 AppImage + DEB
pnpm run dist:linux-arm64
RPM
pnpm run dist:rpm
Oder ueber Task:
task dist:fe:rpm
Architekturunterstuetzung
- Docker:
amd64,arm64 - Linux AppImage:
x64,arm64 - Linux DEB:
x64,arm64 - Windows:
x64,arm64(Build-Skripte vorhanden) - macOS: Build-Skripte vorhanden (
arm64,universal) fuer lokale Build-Umgebungen - Android: Projekt und CI-Workflow im Repository enthalten
Android
Konfiguration
| Argument | Umgebungsvariable | Standard | Beschreibung |
|---|---|---|---|
--host |
MESHCHAT_HOST |
127.0.0.1 |
Webserver-Bind-Adresse |
--port |
MESHCHAT_PORT |
8000 |
Webserver-Port |
--no-https |
MESHCHAT_NO_HTTPS |
false |
HTTPS deaktivieren |
--ssl-cert / --ssl-key |
MESHCHAT_SSL_CERT / MESHCHAT_SSL_KEY |
(keine) | PEM-Zertifikat und Schluessel; beide setzen. Ueberschreibt automatisch erzeugte Zertifikate unter der Identitaet im Verzeichnis ssl/. |
--rns-log-level |
MESHCHAT_RNS_LOG_LEVEL |
(keine) | Reticulum (RNS) Log-Level: none, critical, error, warning, notice, verbose, debug, extreme oder numerisch. CLI ueberschreibt die Umgebungsvariable, wenn beide gesetzt sind. |
--headless |
MESHCHAT_HEADLESS |
false |
Browser nicht automatisch oeffnen |
--auth |
MESHCHAT_AUTH |
false |
Basis-Authentifizierung aktivieren |
--storage-dir |
MESHCHAT_STORAGE_DIR |
./storage |
Datenverzeichnis |
--public-dir |
MESHCHAT_PUBLIC_DIR |
auto/bundled | Frontend-Verzeichnis (fuer Installationen ohne gebundelte Assets) |
Branches
| Branch | Zweck |
|---|---|
master |
Stabile Releases. Nur produktionsreifer Code. |
dev |
Aktive Entwicklung. Kann instabile oder unvollstaendige Aenderungen enthalten. |
Entwicklung
Gaengige Aufgaben aus Taskfile.yml:
task install
task lint:all
task test:all
task build:all
Makefile-Kurzformen:
| Befehl | Beschreibung |
|---|---|
make install |
pnpm- und Poetry-Abhaengigkeiten installieren |
make run |
MeshChatX ueber Poetry starten |
make build |
Frontend bauen |
make lint |
eslint und ruff ausfuehren |
make test |
Frontend- und Backend-Tests |
make clean |
Build-Artefakte und node_modules entfernen |
Versionierung
Aktuelle Version in diesem Repository: 4.5.0.
package.jsonist die Quelle fuer die JavaScript/Electron-Version.meshchatx/src/version.pywird auspackage.jsonsynchronisiert mit:
pnpm run version:sync
Fuer konsistente Releases die Versionsfelder dort abgleichen, wo noetig (package.json, pyproject.toml, meshchatx/__init__.py).
Sicherheit
SECURITY.md- Integrierte Integritaetspruefungen und HTTPS/WSS-Standardeinstellungen in der App
- CI-Scanning-Workflows in
.gitea/workflows/
Sprache hinzufuegen
Die Spracherkennung erfolgt automatisch. Um eine neue Sprache hinzuzufuegen, genuegt eine einzige JSON-Datei:
- Leere Vorlage aus
en.jsonerzeugen:
python scripts/generate_locale_template.py
Damit wird locales.json mit leeren Strings fuer alle Schluessel geschrieben.
- Umbenennen und in das Locale-Verzeichnis verschieben:
mv locales.json meshchatx/src/frontend/locales/xx.json
-
_languageNameam Anfang der Datei auf den nativen Sprachnamen setzen (z.B."Espanol","Francais"). Wird im Sprachwahlmenue angezeigt. -
Alle uebrigen Werte uebersetzen.
-
Schluesselparitaet pruefen:
pnpm test -- tests/frontend/i18n.test.js --run
Keine weiteren Code-Aenderungen noetig. App, Sprachwahl und Tests lesen Locales zur Build-Zeit aus meshchatx/src/frontend/locales/.
Mitwirkende
- Liam Cottle - Originales Reticulum MeshChat
- RFnexus - Micron-Parser (JavaScript)
- markqvist - Reticulum, LXMF, LXST