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:
2026-09-07 12:27:34 +02:00
parent ef59fc0fb4
commit ce1880dc90
4 changed files with 11 additions and 11 deletions
+1 -1
View File
@@ -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
RUN chmod +x /usr/local/bin/entrypoint.sh
EXPOSE 8080
EXPOSE 8085
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
+5 -5
View File
@@ -3,7 +3,7 @@
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
**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.60.8× realtime on-device; the
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) |
| `THREADS` | `8` | CPU threads per inference |
| `PORT` | `8080` | Port inside the container |
| `PORT` | `8085` | Port inside the container |
## Try it
```sh
curl http://100.103.83.12:8080/inference \
curl http://100.103.83.12:8085/inference \
-F file=@meeting.wav \
-F response_format=verbose_json \
-F language=auto
@@ -51,7 +51,7 @@ Notes:
override), so the live/final beam split of the clients doesn't apply
here — one beam for all requests.
- 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
`0.0.0.0` unless the host is otherwise firewalled.
- The image builds with CPU feature auto-detection (`-march=native`):
@@ -66,6 +66,6 @@ Notes:
## Client status
- 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
transcribes; local JNI stays as the offline fallback).
+4 -4
View File
@@ -8,7 +8,7 @@
# never exposed to the LAN or the internet. Tailscale must own that IP
# before the container starts, otherwise the bind fails — start order:
# 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:
whisper-server:
@@ -22,14 +22,14 @@ services:
MODEL: large-v3
THREADS: 8
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
volumes:
- ./models:/models # keep downloads across container rebuilds
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
# the RENDER_GID env var in the comment at the top of this file.
@@ -41,7 +41,7 @@ services:
healthcheck:
# 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
timeout: 5s
retries: 3
+1 -1
View File
@@ -7,7 +7,7 @@ set -eu
MODEL="${MODEL:-small}"
THREADS="${THREADS:-4}"
HOST="${HOST:-0.0.0.0}"
PORT="${PORT:-8080}"
PORT="${PORT:-8085}"
MODEL_DIR="${MODEL_DIR:-/models}"
FILE="$MODEL_DIR/ggml-$MODEL.bin"