From ce1880dc90705cc6d76fbab48f3c50cbf7382689 Mon Sep 17 00:00:00 2001 From: Florian Egger Date: Mon, 7 Sep 2026 12:27:34 +0200 Subject: [PATCH] whisper-server: move to port 8085 (8080 taken on the host) Consistent across compose, entrypoint default, Dockerfile EXPOSE, healthcheck, and README examples. --- server/whisper-server/Dockerfile | 2 +- server/whisper-server/README.md | 10 +++++----- server/whisper-server/docker-compose.yml | 8 ++++---- server/whisper-server/entrypoint.sh | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/server/whisper-server/Dockerfile b/server/whisper-server/Dockerfile index e90f28a..a581df0 100644 --- a/server/whisper-server/Dockerfile +++ b/server/whisper-server/Dockerfile @@ -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"] \ No newline at end of file diff --git a/server/whisper-server/README.md b/server/whisper-server/README.md index 197206d..5fb371d 100644 --- a/server/whisper-server/README.md +++ b/server/whisper-server/README.md @@ -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.6–0.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). \ No newline at end of file diff --git a/server/whisper-server/docker-compose.yml b/server/whisper-server/docker-compose.yml index 5e3018d..3932926 100644 --- a/server/whisper-server/docker-compose.yml +++ b/server/whisper-server/docker-compose.yml @@ -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 diff --git a/server/whisper-server/entrypoint.sh b/server/whisper-server/entrypoint.sh index 72a20fc..ec97168 100644 --- a/server/whisper-server/entrypoint.sh +++ b/server/whisper-server/entrypoint.sh @@ -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"