Files
Maven/.dockerignore
T
kami 4c4b129789 deploy: wire voice in the container — bind + real onnxruntime 1.26
"voice unavailable" in the web UI: mavweb dials mavend:9100, but the container
mavend.json had no voice block, so mavend never bound 9100 (worked pre-docker
because the host's ~/.config/maven/mavend.json had one). Ported that block:
enabled, bind 0.0.0.0:9100 (not 127.0.0.1 — mavweb is a separate container),
lang ru, stt/tts worker sockets, onnx embedder.

Enabling the embedder surfaced a second bug: the router needs onnxruntime 1.26,
but deps/lib only carries dangling symlinks to it (absolute host paths, not in
the image), so the only libonnxruntime present was piper's 1.14 (copied in) →
"ORT API base: 2", crash loop. Fixed the Dockerfile to ship the real 1.26 .so
and stop copying piper's .so into the shared lib dir (piper finds its own 1.14
via $ORIGIN + exact soname, so TTS is unaffected).

Verified: mavend "onnx embedder loaded (384 dim)", "voice listening on :9100",
stack stable.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-03 23:07:59 +04:00

34 lines
931 B
Plaintext

# keep the build context small — the repo carries a full Go toolchain, the
# whisper.cpp source tree, and ~1GB of models that must NOT ship in the image.
.git
models
*.db
certs
# built binaries (rebuilt inside the image)
/mavend
/mavsttd
/mavttsd
/mavweb
/mavpoll
/mavcaldav
/mavenclient
# heavy deps we don't need in context. We keep only the prebuilt runtime libs
# (deps/lib, deps/piper) and the headers the CGO build needs.
deps/go
# keep the onnxruntime 1.26 runtime lib (the router embedder loads it); the
# deps/lib symlinks point here. Other onnxruntime dirs (headers etc.) excluded.
deps/onnxruntime-linux-x64-*
!deps/onnxruntime-linux-x64-1.26.0
deps/onnxruntime-linux-x64-1.26.0/*
!deps/onnxruntime-linux-x64-1.26.0/lib
deps/whisper.cpp/**
!deps/whisper.cpp
!deps/whisper.cpp/ggml
!deps/whisper.cpp/ggml/include
!deps/whisper.cpp/ggml/include/**
# local secrets — never bake into an image layer
deploy/db_key.env