docs(README): update documentation to include RNS Hot Restart feature, configuration options, and Nix development support

This commit is contained in:
2026-01-02 19:40:40 -06:00
parent fe55ec349b
commit 3c43a3079c

View File

@@ -12,6 +12,7 @@ This project is seperate from the original Reticulum MeshChat project, and is no
## Major Features
- Full LXST support w/ custom voicemail, phonebook, contacts, contact sharing and ringtone support.
- RNS Hot Restart: Reload the entire Reticulum stack from settings without restarting the app.
- Multi-identity support.
- Authentication
- Map (OpenLayers w/ MBTiles upload and exporter for offline maps)
@@ -90,7 +91,6 @@ This project is seperate from the original Reticulum MeshChat project, and is no
## TODO
- [ ] Tests and proper CI/CD pipeline.
- [ ] RNS hot reload fix
- [ ] Offline Reticulum documentation tool
- [ ] Spam filter (based on keywords)
@@ -108,18 +108,21 @@ Check [releases](https://git.quad4.io/Ivan/MeshChatX/releases) for pre-built bin
If you prefer not to use Docker or pre-built binaries, you can install MeshChatX manually:
1. **Clone the repository**:
```bash
git clone https://git.quad4.io/RNS-Things/MeshChatX
cd MeshChatX
```
2. **Install Node.js dependencies**:
```bash
corepack enable
pnpm install
```
3. **Install Python dependencies**:
```bash
# It is recommended to use a virtual environment
pip install poetry
@@ -127,6 +130,7 @@ If you prefer not to use Docker or pre-built binaries, you can install MeshChatX
```
4. **Build the frontend**:
```bash
pnpm run build-frontend
```
@@ -157,6 +161,24 @@ If you are building your own multi-arch image:
DOCKER_PLATFORMS=linux/amd64,linux/arm64 task build-docker
```
## Configuration
MeshChatX can be configured via command-line arguments or environment variables. Environment variables are particularly useful when running in Docker.
| Argument | Environment Variable | Default | Description |
| :----------------------- | :------------------------------ | :------------- | :------------------------------------------- |
| `--host` | `MESHCHAT_HOST` | `127.0.0.1` | The address the web server should listen on. |
| `--port` | `MESHCHAT_PORT` | `8000` | The port the web server should listen on. |
| `--no-https` | `MESHCHAT_NO_HTTPS` | `false` | Disable HTTPS and use HTTP instead. |
| `--headless` | `MESHCHAT_HEADLESS` | `false` | Don't launch the web browser automatically. |
| `--auth` | `MESHCHAT_AUTH` | `false` | Enable basic authentication. |
| `--auto-recover` | `MESHCHAT_AUTO_RECOVER` | `false` | Attempt auto-recovery of SQLite database. |
| `--storage-dir` | `MESHCHAT_STORAGE_DIR` | `./storage` | Path for databases and config files. |
| `--reticulum-config-dir` | `MESHCHAT_RETICULUM_CONFIG_DIR` | `~/.reticulum` | Path to Reticulum config directory. |
| `--identity-file` | `MESHCHAT_IDENTITY_FILE` | - | Path to a Reticulum Identity file. |
| `--identity-base64` | `MESHCHAT_IDENTITY_BASE64` | - | Base64 encoded Reticulum Identity. |
| `--identity-base32` | `MESHCHAT_IDENTITY_BASE32` | - | Base32 encoded Reticulum Identity. |
## Building
This project uses [Task](https://taskfile.dev/) for build automation. Install Task first, then:
@@ -166,12 +188,20 @@ task install # installs Python deps via Poetry and Node deps via pnpm
task build
```
### Development with Nix
If you use [Nix](https://nixos.org/), a `flake.nix` is provided for a complete development environment including Python, Node.js, and all packaging tools.
```bash
nix develop
```
You can run `task run` or `task develop` (a thin alias) to start the backend + frontend loop locally through `poetry run meshchat`.
### Available Tasks
| Task | Description |
| ----------------------------- | ------------------------------------------------------------------------------- |
| ---------------------------- | ------------------------------------------------------------------------------- |
| `task install` | Install all dependencies (syncs version, installs node modules and python deps) |
| `task node_modules` | Install Node.js dependencies only |
| `task python` | Install Python dependencies using Poetry only |