whisper-server: move to port 8085 (8080 taken on the host)
Consistent across compose, entrypoint default, Dockerfile EXPOSE, healthcheck, and README examples.
This commit is contained in:
@@ -39,5 +39,5 @@ COPY --from=build /src/build/bin/whisper-server /usr/local/bin/whisper-server
|
|||||||
COPY entrypoint.sh /usr/local/bin/entrypoint.sh
|
COPY entrypoint.sh /usr/local/bin/entrypoint.sh
|
||||||
RUN chmod +x /usr/local/bin/entrypoint.sh
|
RUN chmod +x /usr/local/bin/entrypoint.sh
|
||||||
|
|
||||||
EXPOSE 8080
|
EXPOSE 8085
|
||||||
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
|
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
The transcription backend for meetrec clients: the same pinned whisper.cpp
|
The transcription backend for meetrec clients: the same pinned whisper.cpp
|
||||||
release (v1.9.3) as the Android app, exposed as an HTTP inference API with
|
release (v1.9.3) as the Android app, exposed as an HTTP inference API with
|
||||||
**Vulkan GPU support** (AMD Radeon AI PRO R9700) and reachable over
|
**Vulkan GPU support** (AMD Radeon AI PRO R9700) and reachable over
|
||||||
Tailscale at `100.103.83.12:8080`.
|
Tailscale at `100.103.83.12:8085`.
|
||||||
|
|
||||||
The Fairphone 6 transcribes at roughly 0.6–0.8× realtime on-device; the
|
The Fairphone 6 transcribes at roughly 0.6–0.8× realtime on-device; the
|
||||||
R9700 (Strix Halo, RDNA 3.5, ~256 GB/s shared memory) is bandwidth-bound
|
R9700 (Strix Halo, RDNA 3.5, ~256 GB/s shared memory) is bandwidth-bound
|
||||||
@@ -28,12 +28,12 @@ Configuration lives in `docker-compose.yml`:
|
|||||||
| ---------- | --------- | ------------------------------------------ |
|
| ---------- | --------- | ------------------------------------------ |
|
||||||
| `MODEL` | `large-v3`| `tiny`/`base`/`small`/`medium`/`large-v3` (downloaded to `./models` on first start) |
|
| `MODEL` | `large-v3`| `tiny`/`base`/`small`/`medium`/`large-v3` (downloaded to `./models` on first start) |
|
||||||
| `THREADS` | `8` | CPU threads per inference |
|
| `THREADS` | `8` | CPU threads per inference |
|
||||||
| `PORT` | `8080` | Port inside the container |
|
| `PORT` | `8085` | Port inside the container |
|
||||||
|
|
||||||
## Try it
|
## Try it
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
curl http://100.103.83.12:8080/inference \
|
curl http://100.103.83.12:8085/inference \
|
||||||
-F file=@meeting.wav \
|
-F file=@meeting.wav \
|
||||||
-F response_format=verbose_json \
|
-F response_format=verbose_json \
|
||||||
-F language=auto
|
-F language=auto
|
||||||
@@ -51,7 +51,7 @@ Notes:
|
|||||||
override), so the live/final beam split of the clients doesn't apply
|
override), so the live/final beam split of the clients doesn't apply
|
||||||
here — one beam for all requests.
|
here — one beam for all requests.
|
||||||
- The server also has a `/load` endpoint to swap models at runtime.
|
- The server also has a `/load` endpoint to swap models at runtime.
|
||||||
- **No authentication**: the compose file binds `100.103.83.12:8080`
|
- **No authentication**: the compose file binds `100.103.83.12:8085`
|
||||||
(Tailscale interface only) for that reason. Do not switch this to
|
(Tailscale interface only) for that reason. Do not switch this to
|
||||||
`0.0.0.0` unless the host is otherwise firewalled.
|
`0.0.0.0` unless the host is otherwise firewalled.
|
||||||
- The image builds with CPU feature auto-detection (`-march=native`):
|
- The image builds with CPU feature auto-detection (`-march=native`):
|
||||||
@@ -66,6 +66,6 @@ Notes:
|
|||||||
## Client status
|
## Client status
|
||||||
|
|
||||||
- Desktop `meetrec`: a `whisper-server` engine is planned
|
- Desktop `meetrec`: a `whisper-server` engine is planned
|
||||||
(`--engine whisper-server --server-url http://100.103.83.12:8080`).
|
(`--engine whisper-server --server-url http://100.103.83.12:8085`).
|
||||||
- Android app: a remote engine option is planned (phone records, server
|
- Android app: a remote engine option is planned (phone records, server
|
||||||
transcribes; local JNI stays as the offline fallback).
|
transcribes; local JNI stays as the offline fallback).
|
||||||
@@ -8,7 +8,7 @@
|
|||||||
# never exposed to the LAN or the internet. Tailscale must own that IP
|
# never exposed to the LAN or the internet. Tailscale must own that IP
|
||||||
# before the container starts, otherwise the bind fails — start order:
|
# before the container starts, otherwise the bind fails — start order:
|
||||||
# tailscale first, then `docker compose up -d`. If you would rather
|
# tailscale first, then `docker compose up -d`. If you would rather
|
||||||
# tolerate LAN exposure, use "8080:8080" instead.
|
# tolerate LAN exposure, use "8085:8085" instead.
|
||||||
|
|
||||||
services:
|
services:
|
||||||
whisper-server:
|
whisper-server:
|
||||||
@@ -22,14 +22,14 @@ services:
|
|||||||
MODEL: large-v3
|
MODEL: large-v3
|
||||||
THREADS: 8
|
THREADS: 8
|
||||||
HOST: 0.0.0.0 # inside the container; the host bind is below
|
HOST: 0.0.0.0 # inside the container; the host bind is below
|
||||||
PORT: 8080
|
PORT: 8085
|
||||||
# NO_GPU: 1 # force CPU if the GPU ever misbehaves
|
# NO_GPU: 1 # force CPU if the GPU ever misbehaves
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
- ./models:/models # keep downloads across container rebuilds
|
- ./models:/models # keep downloads across container rebuilds
|
||||||
|
|
||||||
ports:
|
ports:
|
||||||
- "100.103.83.12:8080:8080" # tailscale-only; see note above
|
- "100.103.83.12:8085:8085" # tailscale-only; see note above
|
||||||
|
|
||||||
# GPU passthrough: the render group must match the host's GID, hence
|
# GPU passthrough: the render group must match the host's GID, hence
|
||||||
# the RENDER_GID env var in the comment at the top of this file.
|
# the RENDER_GID env var in the comment at the top of this file.
|
||||||
@@ -41,7 +41,7 @@ services:
|
|||||||
|
|
||||||
healthcheck:
|
healthcheck:
|
||||||
# any HTTP response counts as healthy (the server has no /health)
|
# any HTTP response counts as healthy (the server has no /health)
|
||||||
test: ["CMD-SHELL", "curl -s -o /dev/null http://localhost:8080/ || exit 1"]
|
test: ["CMD-SHELL", "curl -s -o /dev/null http://localhost:8085/ || exit 1"]
|
||||||
interval: 30s
|
interval: 30s
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 3
|
retries: 3
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ set -eu
|
|||||||
MODEL="${MODEL:-small}"
|
MODEL="${MODEL:-small}"
|
||||||
THREADS="${THREADS:-4}"
|
THREADS="${THREADS:-4}"
|
||||||
HOST="${HOST:-0.0.0.0}"
|
HOST="${HOST:-0.0.0.0}"
|
||||||
PORT="${PORT:-8080}"
|
PORT="${PORT:-8085}"
|
||||||
MODEL_DIR="${MODEL_DIR:-/models}"
|
MODEL_DIR="${MODEL_DIR:-/models}"
|
||||||
FILE="$MODEL_DIR/ggml-$MODEL.bin"
|
FILE="$MODEL_DIR/ggml-$MODEL.bin"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user