This commit is contained in:
@@ -73,6 +73,27 @@ scripts/server.sh stop
|
||||
> `--skip-python`。システム Python への書き込みに権限が要る環境では
|
||||
> `sudo bash scripts/prebake-python.sh` を別途実行する。
|
||||
|
||||
### 既存環境の更新(`git pull` の後)
|
||||
|
||||
bare-metal の既存環境を更新するときは次を実行する。
|
||||
|
||||
```bash
|
||||
scripts/upgrade.sh # git pull → 再ビルド(依存 + サーバー + UI)→ 再起動
|
||||
```
|
||||
|
||||
`scripts/server.sh restart` はサーバーしか再ビルドせず、**UI は再ビルドしない**
|
||||
(`ui/dist` は gitignore 対象で別途ビルドされる)。npm 依存も更新しない。そのため
|
||||
依存やフロントエンドが変わった pull の後にそのまま restart すると、UI バンドルが
|
||||
古いまま残ることがある。`scripts/upgrade.sh` は正しい手順を一括で実行する。
|
||||
|
||||
**ネットワークバインドの移行**も扱う。2026-06-10 以降、サーバーのデフォルトバインドが
|
||||
セキュリティのため `0.0.0.0` から `127.0.0.1`(loopback 限定)に変わった(エージェント
|
||||
API には Bash ツールが含まれるため、認証なしで LAN に晒すと実質的に認証なし RCE になる)。
|
||||
別マシンから MAESTRO にアクセスしていて、更新後に突然 `ERR_CONNECTION_REFUSED` が出る
|
||||
場合はこれが原因。`HOST` を明示的に設定し(例: `.env` に `HOST=0.0.0.0`)、先に
|
||||
`config.yaml` で認証を有効にすること。upgrade スクリプトはこの状況を検出して設定を
|
||||
提案する。
|
||||
|
||||
## 5. Docker で起動
|
||||
|
||||
```bash
|
||||
|
||||
@@ -73,6 +73,27 @@ scripts/server.sh stop
|
||||
> `--skip-python`. In environments where writing to the system Python requires permissions, run
|
||||
> `sudo bash scripts/prebake-python.sh` separately.
|
||||
|
||||
### Updating an existing install (after `git pull`)
|
||||
|
||||
To update a bare-metal install, run:
|
||||
|
||||
```bash
|
||||
scripts/upgrade.sh # git pull -> rebuild (deps + server + UI) -> restart
|
||||
```
|
||||
|
||||
A plain `scripts/server.sh restart` rebuilds only the server, **not** the UI
|
||||
(`ui/dist` is gitignored and built separately) and never refreshes npm deps, so
|
||||
after a pull that changed dependencies or the frontend it can leave a stale UI
|
||||
bundle. `scripts/upgrade.sh` runs the full, correct sequence instead.
|
||||
|
||||
It also handles the **network bind migration**: since 2026-06-10 the server
|
||||
binds `127.0.0.1` (loopback only) by default instead of `0.0.0.0`, for security
|
||||
(the agent API includes a Bash tool, so an auth-less instance on the LAN is
|
||||
effectively unauthenticated RCE). If you reach MAESTRO from another machine and
|
||||
suddenly get `ERR_CONNECTION_REFUSED` after updating, that is why — set `HOST`
|
||||
explicitly (e.g. `HOST=0.0.0.0` in `.env`) and enable auth in `config.yaml`
|
||||
first. The upgrade script detects this and offers to set it for you.
|
||||
|
||||
## 5. Launch with Docker
|
||||
|
||||
```bash
|
||||
|
||||
Reference in New Issue
Block a user