8.0 KiB
Reticulum MeshChatX
Un fork ampiamente modificato e ricco di funzionalita di Reticulum MeshChat di Liam Cottle.
Questo progetto e indipendente dal progetto originale Reticulum MeshChat e non e affiliato ad esso.
- Codice sorgente: git.quad4.io/RNS-Things/MeshChatX
- Release: git.quad4.io/RNS-Things/MeshChatX/releases
- Changelog:
CHANGELOG.md - TODO:
TODO.md - English README | Deutsch | Русский | 中文 | 日本語
Note importanti
- Il supporto completo LXMF e un obiettivo centrale del progetto.
- L'archiviazione e le migrazioni sono state progressivamente rielaborate verso SQL diretto (sostituendo i percorsi legacy Peewee ORM).
Warning
MeshChatX non garantisce la compatibilita dei dati con le versioni precedenti di Reticulum MeshChat. Eseguire un backup prima della migrazione o dei test.
Warning
I sistemi legacy non sono ancora completamente supportati. Requisiti minimi attuali: Python
>=3.11e Node>=24.
Demo e screenshot
Interfaccia
Requisiti
- Python
>=3.11(dapyproject.toml) - Node.js
>=24(dapackage.json) - pnpm
10.32.1(dapackage.json) - Poetry (utilizzato in
Taskfile.ymle nei workflow CI)
Metodi di installazione
| Metodo | Include frontend | Architetture | Ideale per |
|---|---|---|---|
| Immagine Docker | Si | linux/amd64, linux/arm64 |
Avvio rapido su server Linux |
Python wheel (.whl) |
Si | Qualsiasi architettura supportata da Python | Installazione headless/web-server senza build Node |
| Linux AppImage | Si | x64, arm64 |
Uso desktop portatile |
Pacchetto Debian (.deb) |
Si | x64, arm64 |
Installazione Debian/Ubuntu |
Pacchetto RPM (.rpm) |
Si | Dipende dal CI | Fedora/RHEL/openSUSE |
| Da sorgente | Compilato localmente | Architettura host | Sviluppo e build personalizzati |
Note:
- Il workflow di release compila esplicitamente Linux
x64earm64AppImage + DEB. - RPM viene anche tentato e caricato quando prodotto con successo.
Avvio rapido: Docker
docker compose up -d
Il file compose predefinito mappa:
127.0.0.1:8000sull'host -> porta8000del container./meshchat-config->/configper la persistenza
In caso di errori di permessi:
sudo chown -R 1000:1000 ./meshchat-config
Installazione da artefatti di release
1) Linux AppImage (x64/arm64)
- Scaricare
ReticulumMeshChatX-v<versione>-linux-<arch>.AppImagedalle release. - Rendere eseguibile e avviare:
chmod +x ./ReticulumMeshChatX-v*-linux-*.AppImage
./ReticulumMeshChatX-v*-linux-*.AppImage
2) Debian/Ubuntu .deb (x64/arm64)
- Scaricare
ReticulumMeshChatX-v<versione>-linux-<arch>.deb. - Installare:
sudo apt install ./ReticulumMeshChatX-v*-linux-*.deb
3) Sistemi RPM
- Scaricare
ReticulumMeshChatX-v<versione>-linux-<arch>.rpmse presente nella release. - Installare:
sudo rpm -Uvh ./ReticulumMeshChatX-v*-linux-*.rpm
4) Python wheel (.whl)
I wheel delle release includono gli asset web compilati.
pip install ./reticulum_meshchatx-*-py3-none-any.whl
meshchat --headless
pipx e supportato:
pipx install ./reticulum_meshchatx-*-py3-none-any.whl
Esecuzione da sorgente (modalita web server)
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 meshchat --headless --host 127.0.0.1
Esecuzione in sandbox (Linux)
Per eseguire il binario nativo meshchat con isolamento aggiuntivo del filesystem, puoi usare Firejail o Bubblewrap (bwrap) mantenendo l'accesso di rete normale per Reticulum e l'interfaccia web. Esempi completi (pip/pipx, Poetry, note sulla seriale USB) sono in:
La stessa pagina compare nell'elenco Documentazione in-app (documentazione MeshChatX) quando viene servita dai file meshchatx-docs inclusi o sincronizzati.
Compilazione pacchetti desktop da sorgente
Linux x64 AppImage + DEB
pnpm run dist:linux-x64
Linux arm64 AppImage + DEB
pnpm run dist:linux-arm64
RPM
pnpm run dist:rpm
Supporto architetture
- Docker:
amd64,arm64 - Linux AppImage:
x64,arm64 - Linux DEB:
x64,arm64 - Windows:
x64,arm64(script di build disponibili) - macOS: script di build disponibili (
arm64,universal) - Android: progetto e workflow CI presenti nel repository
Android
Configurazione
| Argomento | Variabile d'ambiente | Predefinito | Descrizione |
|---|---|---|---|
--host |
MESHCHAT_HOST |
127.0.0.1 |
Indirizzo del web server |
--port |
MESHCHAT_PORT |
8000 |
Porta del web server |
--no-https |
MESHCHAT_NO_HTTPS |
false |
Disattiva HTTPS |
--headless |
MESHCHAT_HEADLESS |
false |
Non aprire il browser automaticamente |
--auth |
MESHCHAT_AUTH |
false |
Attiva autenticazione base |
--storage-dir |
MESHCHAT_STORAGE_DIR |
./storage |
Directory dei dati |
--public-dir |
MESHCHAT_PUBLIC_DIR |
auto | Directory dei file frontend |
Branch
| Branch | Scopo |
|---|---|
master |
Release stabili. Solo codice pronto per la produzione. |
dev |
Sviluppo attivo. Potrebbe contenere modifiche instabili o incomplete. |
Sviluppo
task install
task lint:all
task test:all
task build:all
Sicurezza
SECURITY.md- Controlli di integrita integrati e HTTPS/WSS predefiniti
- Workflow di scansione CI in
.gitea/workflows/
Aggiungere una lingua
Il rilevamento delle lingue e automatico. Per aggiungere una nuova lingua basta un singolo file JSON:
- Generare un modello da
en.json:
python scripts/generate_locale_template.py
- Rinominare e spostare nella cartella delle lingue:
mv locales.json meshchatx/src/frontend/locales/xx.json
-
Impostare
_languageNameall'inizio del file con il nome nativo della lingua (es."Espanol","Francais"). -
Tradurre tutti i valori rimanenti.
-
Verificare la corrispondenza delle chiavi:
pnpm test -- tests/frontend/i18n.test.js --run
Nessuna altra modifica al codice necessaria.
Crediti
- Liam Cottle - Reticulum MeshChat originale
- RFnexus - Parser Micron JavaScript
- markqvist - Reticulum, LXMF, LXST



