Skip to content

[ViPPET] Add model-download service to Docker Compose stack#2092

Open
p-zak wants to merge 3 commits intoopen-edge-platform:mainfrom
p-zak:vippet-add-model-download-service
Open

[ViPPET] Add model-download service to Docker Compose stack#2092
p-zak wants to merge 3 commits intoopen-edge-platform:mainfrom
p-zak:vippet-add-model-download-service

Conversation

@p-zak
Copy link
Copy Markdown
Contributor

@p-zak p-zak commented Apr 7, 2026

Summary

Add the model-download microservice (intel/model-download:2026.1.0-20260331-weekly) to the ViPPET Docker Compose stack as a long-running service.
This is the first step in replacing the legacy models container - both services coexist in this PR; the old one will be removed in a follow-up.

What changed

compose.yml - Added model-download service definition:

  • Uses the pre-built intel/model-download image (no local build).
  • Shares the ./shared/models/ volume with vippet so downloaded models are immediately visible to inference pipelines.
  • Persists the Python venv (/opt/.venv) and uv package cache (/cache) on host-mounted volumes under shared/model-download/ to avoid re-downloading ~2 GB of plugin dependencies on every container restart.
  • Enabled plugins: openvino, huggingface, ultralytics, geti (configurable via MODEL_DOWNLOAD_PLUGINS env var).
  • Health check on /api/v1/health, restart policy on-failure:5.

ui/nginx.conf - Added reverse proxy location /model-download/http://model-download:8000/api/v1/ so the UI can reach the service through the same origin (no CORS issues). Extended timeouts (300 s) and client_max_body_size 5G for large model uploads.

ui/vite.config.ts - Added dev proxy /model-downloadhttp://localhost:8000 with path rewrite to /api/v1 for local development.

Makefile - Additive changes only:

  • env-setup creates shared/model-download/{venv,cache} directories.
  • Added shell-model-download target.
  • stop and clean targets now include the new service/directories.
  • All legacy models targets (install-models-*, build-models, shell-models) are preserved unchanged.

Routing

Browser → :80/model-download/* → nginx → model-download:8000/api/v1/*

How to test

make build && make run
# Wait for model-download to become healthy (~1-2 min first run, seconds on subsequent runs)
docker ps --filter name=model-download
curl http://localhost:80/model-download/health   # → {"status":"ok"}
curl http://localhost:80/model-download/plugins   # → list of available plugins

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant