From aaa253909e8a65bdae4e42180eae5f1e753e34c0 Mon Sep 17 00:00:00 2001 From: Ivan Date: Fri, 8 May 2026 23:45:54 -0500 Subject: [PATCH] docs(README, docs): add reset password functionality details and update CLI options across multiple languages --- README.md | 1 + docs/meshchatx.md | 1 + docs/meshchatx_on_raspberry_pi.md | 16 ++++++++++++++++ lang/README.de.md | 1 + lang/README.it.md | 1 + lang/README.ja.md | 23 ++++++++++++----------- lang/README.ru.md | 1 + lang/README.zh.md | 1 + 8 files changed, 34 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 92a326f..99e5a13 100644 --- a/README.md +++ b/README.md @@ -323,6 +323,7 @@ MeshChatX supports both CLI args and env vars. | `--rns-log-level` | `MESHCHAT_RNS_LOG_LEVEL` | (none) | Reticulum (RNS) stack log level: `none`, `critical`, `error`, `warning`, `notice`, `verbose`, `debug`, `extreme`, or a numeric level. CLI overrides env when both are set. | | `--headless` | `MESHCHAT_HEADLESS` | `false` | Do not auto-launch browser | | `--auth` | `MESHCHAT_AUTH` | `false` | Enable basic auth | +| `--reset-password` | `MESHCHAT_RESET_PASSWORD` | `false` | Clear the stored password hash so a new password can be set via the web UI | | `--storage-dir` | `MESHCHAT_STORAGE_DIR` | `./storage` | Data directory | | `--public-dir` | `MESHCHAT_PUBLIC_DIR` | auto/bundled | Frontend files directory (needed for source installs without bundled assets) | diff --git a/docs/meshchatx.md b/docs/meshchatx.md index 161ef7b..95f8dfb 100644 --- a/docs/meshchatx.md +++ b/docs/meshchatx.md @@ -104,6 +104,7 @@ The project favors predictable SQL behavior and explicit migration control, whic - Cookie sessions via encrypted storage - Auth and access-attempt tracking integrated with IP/User-Agent aware controls - Debug endpoints provide visibility into logs and access-attempt records +- Password reset via `--reset-password` (or `MESHCHAT_RESET_PASSWORD=true`) clears the stored bcrypt hash so a new password can be set through the web UI This is also very well tested, but I still would not recommend exposing MeshChatX to the internet. diff --git a/docs/meshchatx_on_raspberry_pi.md b/docs/meshchatx_on_raspberry_pi.md index b9083ed..3ac5e4d 100644 --- a/docs/meshchatx_on_raspberry_pi.md +++ b/docs/meshchatx_on_raspberry_pi.md @@ -225,6 +225,22 @@ journalctl -u meshchatx.service -n 200 --no-pager systemctl show meshchatx.service -p ExecStart -p User -p Group ``` +## Reset Password + +If you forget the web UI password and have SSH access to the Pi, reset it with the `--reset-password` flag: + +```bash +meshchatx --reset-password --headless --host 0.0.0.0 --port 8000 +``` + +Or set the environment variable: + +```bash +MESHCHAT_RESET_PASSWORD=true meshchatx --headless --host 0.0.0.0 --port 8000 +``` + +This clears the stored password hash on startup. Open the web UI and you will see the Initial Setup screen where you can set a new password. After resetting, you can stop the app and restart without the flag. + ## Notes - Reticulum configuration and identity data are stored in the service user's home diff --git a/lang/README.de.md b/lang/README.de.md index bf70b21..2667dd1 100644 --- a/lang/README.de.md +++ b/lang/README.de.md @@ -306,6 +306,7 @@ Weitere Dokumentation: | `--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 | +| `--reset-password` | `MESHCHAT_RESET_PASSWORD` | `false` | Gespeicherten Passwort-Hash loeschen, damit ein neues Passwort ueber die Web-Oberflaeche gesetzt werden kann | | `--storage-dir` | `MESHCHAT_STORAGE_DIR` | `./storage` | Datenverzeichnis | | `--public-dir` | `MESHCHAT_PUBLIC_DIR` | auto/bundled | Frontend-Verzeichnis (fuer Quell-Installationen ohne gebundelte Assets) | diff --git a/lang/README.it.md b/lang/README.it.md index 78722e9..5c38cf7 100644 --- a/lang/README.it.md +++ b/lang/README.it.md @@ -306,6 +306,7 @@ Documentazione aggiuntiva: | `--rns-log-level` | `MESHCHAT_RNS_LOG_LEVEL` | (nessuno) | Livello di log Reticulum (RNS): `none`, `critical`, `error`, `warning`, `notice`, `verbose`, `debug`, `extreme` o numerico. La CLI ha priorita sulla variabile d'ambiente se entrambe sono impostate. | | `--headless` | `MESHCHAT_HEADLESS` | `false` | Non aprire il browser automaticamente | | `--auth` | `MESHCHAT_AUTH` | `false` | Attiva autenticazione base | +| `--reset-password` | `MESHCHAT_RESET_PASSWORD` | `false` | Cancella l'hash della password memorizzata per impostarne una nuova tramite l'interfaccia web | | `--storage-dir` | `MESHCHAT_STORAGE_DIR` | `./storage` | Directory dei dati | | `--public-dir` | `MESHCHAT_PUBLIC_DIR` | auto/bundled | Directory dei file frontend (necessaria per installazioni da sorgente senza asset in bundle) | diff --git a/lang/README.ja.md b/lang/README.ja.md index 154778b..edb5801 100644 --- a/lang/README.ja.md +++ b/lang/README.ja.md @@ -297,17 +297,18 @@ cd android ## 設定 -| 引数 | 環境変数 | デフォルト | 説明 | -| -------------------------- | ---------------------------------------- | ----------- | -------------------------------------------------------------------------------------- | -| `--host` | `MESHCHAT_HOST` | `127.0.0.1` | Web サーバーのバインドアドレス | -| `--port` | `MESHCHAT_PORT` | `8000` | Web サーバーポート | -| `--no-https` | `MESHCHAT_NO_HTTPS` | `false` | HTTPS を無効化 | -| `--ssl-cert` / `--ssl-key` | `MESHCHAT_SSL_CERT` / `MESHCHAT_SSL_KEY` | (なし) | PEM 証明書と鍵のパス。両方指定。アイデンティティの `ssl/` 下の自動生成証明書を上書き。 | -| `--rns-log-level` | `MESHCHAT_RNS_LOG_LEVEL` | (なし) | Reticulum(RNS)のログレベル(上記の名前または数値)。CLI は環境変数より優先。 | -| `--headless` | `MESHCHAT_HEADLESS` | `false` | ブラウザを自動で開かない | -| `--auth` | `MESHCHAT_AUTH` | `false` | 基本認証を有効化 | -| `--storage-dir` | `MESHCHAT_STORAGE_DIR` | `./storage` | データディレクトリ | -| `--public-dir` | `MESHCHAT_PUBLIC_DIR` | 自動/同梱 | フロントエンドのディレクトリ(同梱資産なしのソースインストールで必要) | +| 引数 | 環境変数 | デフォルト | 説明 | +| -------------------------- | ---------------------------------------- | ----------- | --------------------------------------------------------------------------------------- | +| `--host` | `MESHCHAT_HOST` | `127.0.0.1` | Web サーバーのバインドアドレス | +| `--port` | `MESHCHAT_PORT` | `8000` | Web サーバーポート | +| `--no-https` | `MESHCHAT_NO_HTTPS` | `false` | HTTPS を無効化 | +| `--ssl-cert` / `--ssl-key` | `MESHCHAT_SSL_CERT` / `MESHCHAT_SSL_KEY` | (なし) | PEM 証明書と鍵のパス。両方指定。アイデンティティの `ssl/` 下の自動生成証明書を上書き。 | +| `--rns-log-level` | `MESHCHAT_RNS_LOG_LEVEL` | (なし) | Reticulum(RNS)のログレベル(上記の名前または数値)。CLI は環境変数より優先。 | +| `--headless` | `MESHCHAT_HEADLESS` | `false` | ブラウザを自動で開かない | +| `--auth` | `MESHCHAT_AUTH` | `false` | 基本認証を有効化 | +| `--reset-password` | `MESHCHAT_RESET_PASSWORD` | `false` | 保存されたパスワードハッシュを消去し、Web UI から新しいパスワードを設定できるようにする | +| `--storage-dir` | `MESHCHAT_STORAGE_DIR` | `./storage` | データディレクトリ | +| `--public-dir` | `MESHCHAT_PUBLIC_DIR` | 自動/同梱 | フロントエンドのディレクトリ(同梱資産なしのソースインストールで必要) | ## ブランチ diff --git a/lang/README.ru.md b/lang/README.ru.md index b662757..57f16ec 100644 --- a/lang/README.ru.md +++ b/lang/README.ru.md @@ -306,6 +306,7 @@ cd android | `--rns-log-level` | `MESHCHAT_RNS_LOG_LEVEL` | (нет) | Уровень лога стека Reticulum (RNS): `none`, `critical`, `error`, `warning`, `notice`, `verbose`, `debug`, `extreme` или число. CLI перекрывает переменную окружения, если заданы оба. | | `--headless` | `MESHCHAT_HEADLESS` | `false` | Не открывать браузер автоматически | | `--auth` | `MESHCHAT_AUTH` | `false` | Базовая аутентификация | +| `--reset-password` | `MESHCHAT_RESET_PASSWORD` | `false` | Сбросить сохраненный хэш пароля, чтобы задать новый через веб-интерфейс | | `--storage-dir` | `MESHCHAT_STORAGE_DIR` | `./storage` | Каталог данных | | `--public-dir` | `MESHCHAT_PUBLIC_DIR` | авто/bundled | Каталог фронтенда (для установок без встроенных ресурсов) | diff --git a/lang/README.zh.md b/lang/README.zh.md index 0468385..8097af5 100644 --- a/lang/README.zh.md +++ b/lang/README.zh.md @@ -306,6 +306,7 @@ cd android | `--rns-log-level` | `MESHCHAT_RNS_LOG_LEVEL` | (无) | Reticulum(RNS)日志级别:`none`、`critical`、`error` 等或数值。同时设置时 CLI 优先于环境变量。 | | `--headless` | `MESHCHAT_HEADLESS` | `false` | 不自动打开浏览器 | | `--auth` | `MESHCHAT_AUTH` | `false` | 启用基本认证 | +| `--reset-password` | `MESHCHAT_RESET_PASSWORD` | `false` | 清除已保存的密码哈希,以便通过 Web UI 设置新密码 | | `--storage-dir` | `MESHCHAT_STORAGE_DIR` | `./storage` | 数据目录 | | `--public-dir` | `MESHCHAT_PUBLIC_DIR` | 自动/捆绑 | 前端文件目录(源码安装且未捆绑资源时需要) |