Run With Docker Compose#
This guide covers building the images from source and running the full
stack with docker compose. For source code changes to any service, see
Build from Source.
Microphone audio is captured by the browser and uploaded to kiosk-core
as a WAV file. No host audio device is passed into the containers.
Prerequisites#
Complete Steps 1–4 of Get Started (Docker, GPU drivers, repo clone, HuggingFace token).
Run
./setup_models.shto download the OVMS LLM model (Step 5 of Get Started). The stack will not start correctly without it.
Build and Start#
From smart-kiosk-assistant/:
docker compose build
docker compose up -d
Container |
Port |
Purpose |
|---|---|---|
|
8000 |
Serves Qwen3-4B via OpenAI-compatible API |
|
9000 |
Hardware utilization metrics |
|
8010 |
Whisper ASR + speaker diarization |
|
8011 |
SpeechT5 TTS synthesis |
|
8020 |
RAG pipeline + ordering agent |
|
8012 |
Session API + product ordering |
|
7860 |
React voice kiosk UI |
Containers run as non-root; every image is built with UID/GID
1000:1000 and the named volumes are initialized with that ownership,
so no host UID/GID configuration is required.
Verify#
docker compose ps
curl --noproxy '*' http://127.0.0.1:8000/v3/models # ovms-llm
curl --noproxy '*' http://127.0.0.1:8010/health # audio-analyzer
curl --noproxy '*' http://127.0.0.1:8011/health # text-to-speech
curl --noproxy '*' http://127.0.0.1:8020/health # rag-service
curl --noproxy '*' http://127.0.0.1:8012/health # kiosk-core
Open http://127.0.0.1:7860 in a browser, click the microphone, and
speak your question.
Logs#
docker compose logs -f kiosk-core
docker compose logs -f kiosk-ui
Restart / Stop#
docker compose restart # after env var change
docker compose build && docker compose up -d # after a source code change
docker compose down # teardown
Notes#
The default Compose wiring connects
kiosk-coreandkiosk-uito the internalaudio-analyzer,rag-service, andtext-to-speechcontainers. Override these URLs only when this stack must call services outside the local Compose network.See Configuration for environment variables, model selection, and inference device, and API Reference for endpoint details.