VIPR Framework - Docker Deployment

This guide covers deploying the full VIPR stack (Web UI + API + Worker) using Docker Compose.


Quick Start

# 1. Start all services with your user ID (recommended)
docker compose up --wait

# 2. Check service health
docker compose ps

Accessing the services

The Web Application is exposed on port 5000 The API Docs are exposed on port 8000

The easiest way to start is to bind the port using docker-compose.override.yml file:

services:
  vipr-frontend:
    ports:
      - "5000:5000"
  vipr-api:
    ports:
      - "8000:8000"

Restart the services:

docker compose up --wait

Access Points:


Services

Service

Purpose

Port

redis

Message broker & result backend

6379

vipr-api

FastAPI backend service

8000

vipr-worker

Celery background worker

-

vipr-frontend

Nuxt.js web interface

5000

Key Concepts:

  • vipr-core: CLI framework with plugin architecture (Cement)

  • Plugins: Extend vipr-core functionality (e.g., vipr-reflectometry)

  • vipr-api: FastAPI service that uses vipr-core + plugins as library

  • Celery: Async task execution for long-running inference

See ARCHITECTURE.md for detailed technical overview.


Common Tasks

View Logs

# All services
docker compose logs -f

# Specific service
docker compose logs -f vipr-api
docker compose logs -f vipr-worker

Restart Services

# Single service
docker compose restart vipr-worker

# All services
docker compose restart

Update Images

# Pull latest images
docker compose pull

# Restart with new images
docker compose up -d

Access Container Shell

docker compose exec vipr-api bash
docker compose exec vipr-worker bash

Troubleshooting

Service Won’t Start

Check health status and dependencies:

docker compose ps
docker compose logs vipr-api

Access Storage Directory

All application data is store in a volume named storage.

ls -la /var/lib/docker/volumes/vipr-framework_storage/_data
# storage/huggingface/    - Downloaded models
# storage/reflectorch/    - Reflectorch models and configs  
# storage/panpe/          - PANPE models
# storage/results/        - Inference results
# storage/plugins/        - Runtime plugins

Clear All Data

# Stop services
docker compose down --volumes

# Restart fresh (storage will be recreated)
docker compose up -d

Image Sources

Images are pulled from the HZDR registry:

  • API/Worker: registry.hzdr.de/vipr/vipr-api:latest

  • Frontend: registry.hzdr.de/vipr/vipr-frontend:latest

Both are built via GitLab CI/CD from their respective repositories.