build(client): use locked uv environment in launcher and Docker
This commit is contained in:
@@ -12,8 +12,8 @@ From the repository root:
|
||||
S2S_PROXY_TARGET=ws://localhost:8765/v1/realtime ./start_ui.sh
|
||||
```
|
||||
|
||||
The launcher loads the root `.env`, creates `.venv` if needed, installs the
|
||||
client requirements when the dependency check fails, and installs the locked
|
||||
The launcher loads the root `.env`, syncs `s2s-client/.venv` from the committed
|
||||
`s2s-client/uv.lock`, and installs the locked
|
||||
frontend dependencies when needed. Vite serves the React frontend on port
|
||||
8420 and proxies the backend routes to Uvicorn on `127.0.0.1:8421`.
|
||||
`UI_PORT` overrides the public port; `S2S_BACKEND_PORT` overrides the internal
|
||||
@@ -21,7 +21,7 @@ port. Both servers reload source edits, and stopping the launcher stops both.
|
||||
The speech pipeline remains a separate service. Because `.env` is sourced by
|
||||
the script, values in that file can replace variables supplied on the command line.
|
||||
|
||||
Use Node.js 22.18+ on the 22.x line or Node.js 24+, npm, Python 3 with venv,
|
||||
Use Node.js 22.18+ on the 22.x line or Node.js 24+, npm, uv 0.12.5,
|
||||
Bash 4.4+, `setsid`, and `curl`. Remote staging access also needs the exact
|
||||
hostname in `S2S_DEV_ALLOWED_HOSTS`, HTTPS, and WebSocket forwarding for speech
|
||||
and Vite HMR. See [frontend development setup](../../s2s-frontend/README.md).
|
||||
@@ -29,15 +29,18 @@ and Vite HMR. See [frontend development setup](../../s2s-frontend/README.md).
|
||||
To install and start the backend manually:
|
||||
|
||||
```bash
|
||||
python3 -m venv .venv
|
||||
.venv/bin/python -m pip install -r s2s-client/requirements.txt
|
||||
uv sync --project s2s-client --locked
|
||||
S2S_PROXY_TARGET=ws://localhost:8765/v1/realtime \
|
||||
.venv/bin/python -m uvicorn --app-dir s2s-client server:app \
|
||||
uv run --project s2s-client --locked uvicorn --app-dir s2s-client s2s_client.main:app \
|
||||
--host 127.0.0.1 --port 8421 --reload --reload-dir s2s-client
|
||||
```
|
||||
|
||||
Then, in a second terminal, run `cd s2s-frontend`, `npm ci`, and `npm run dev`.
|
||||
|
||||
uv provisions Python 3.12 when needed. The Python environment belongs only to
|
||||
`s2s-client`; an existing root `.venv` for speech dependencies is left alone.
|
||||
See [development and compatibility](development.md) for checks and schema rules.
|
||||
|
||||
Open <http://localhost:8420/>, tap the orb/microphone control, grant microphone
|
||||
access, and speak. Microphone access requires HTTPS or a local browser origin;
|
||||
use HTTPS when accessing the UI from another machine.
|
||||
|
||||
Reference in New Issue
Block a user