docs(README): update documentation to include RNS Hot Restart feature, configuration options, and Nix development support
This commit is contained in:
34
README.md
34
README.md
@@ -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 |
|
||||
|
||||
Reference in New Issue
Block a user