MeshChat - комплексное приложение (Web UI) для обмена сообщениями, голосовых звонков и встроенным браузером для просмотра страниц (в формате Micron) посредством протокола LXMF в сети Reticulum. В отличии от NomadNet (TUI) является более интуитивным для ознакомления с возможностями сети Reticulum на уровне бытового пользователя. Также содержит гибкие настройки подключения и удобную визуализацию доступной части сети:
Подобно NomadNet, серверная часть реализована на языке Python:
sudo apt install git python3-pip
Для сборки клиента, потребуется установка последней версии Node.js:
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/nodesource.gpg NODE_MAJOR=22 echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list sudo apt update sudo apt install nodejs
Для предотвращения ошибки запуска, желательно сразу выполнить следующую команду:
mkdir -p ~/reticulum-meshchat/public
Для запуска сервера MeshChat, далее будет создан сервис systemd, для него можно сразу создать пользователя с домашней директорией:
sudo useradd -m reticulum
В директорию пользователя клонируется последняя версия из репозитория, производится инициализация зависимостей Python и компиляция Front-end:
su reticulum cd ~ git clone https://github.com/liamcottle/reticulum-meshchat cd reticulum-meshchat pip install -r requirements.txt --break-system-packages npm install --omit=dev npm run build-frontend
[Unit] Description=reticulum-meshchat After=network.target Wants=network-online.target StartLimitIntervalSec=0 [Service] Type=simple User=reticulum Group=reticulum WorkingDirectory=/home/reticulum/reticulum-meshchat ExecStart=/usr/bin/env /usr/bin/python3 /home/reticulum/reticulum-meshchat/meshchat.py --headless --host 127.0.0.1 --port 1234 # можно указать null StandardOutput=file:///home/reticulum/debug.log StandardError=file:///home/reticulum/error.log [Install] WantedBy=multi-user.target
MeshChat удобно запускать на отдельном устройстве, работающем 24/7. Для локального сервера, этот шаг можно пропустить.
Если подключение удалённое, открываем порт для соответствующих from/to хостов:
sudo ufw allow from xx.xx.xx.xx to xx.xx.xx.xx port 1234 proto tcp
MeshChat использует типичный узел Reticulum, для подключения к сети в оверлейном режиме, нужно добавить как минимум один пир:
[interfaces]
[[rothbard_RNS_transport_ZA_ygg]]
type = TCPClientInterface
enabled = true
target_host = 200:73eb:2e4:14be:aac7:90b3:784b:71a3
target_port = 4242
Поддержать сеть Reticulum, можно став «публичным пиром» например, для пользователей Yggdrasil
enable_transport = true
[interfaces]
[[TCP Server Interface]]
type = TCPServerInterface
interface_enabled = true
listen_ip = ::
listen_port = 4242
Для получения входящих подключений, не забываем открыть порт:
sudo ufw allow from 0200::/7 to xxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx port 4242 proto tcp
При использовании systemd:
sudo systemctl restart reticulum-meshchat
Проверка статуса:
sudo systemctl status reticulum-meshchat netstat -tulpn | grep 4242
В браузере:
http://localhost:1234 (или хост сервера)