A complete Docker Compose setup for running the MEDDREAM ViewportsCore demonstration with Orthanc PACS integration.
βββββββββββββββ βββββββββββββββ βββββββββββββββ
β Frontend βββββΆβ MEDDREAM βββββΆβ Orthanc β
β (nginx) β β (viewer) β β (PACS) β
β Port 80 β β Port 8080 β β Port 4242/ β
βββββββββββββββ βββββββββββββββ β 8042 β
βββββββββββββββ
# Clone/download this demo
chmod +x setup.sh
./setup.sh
# Set your NPM token
export NPM_TOKEN=your_meddream_npm_tokendocker-compose --profile build up builderdocker-compose up -ddocker-compose --profile tools up dicom-loader- Frontend Application: http://localhost/
- MEDDREAM Direct: http://localhost:8080/
- Orthanc PACS: http://localhost:8042/
orthanc: DICOM PACS server with Python integrationmeddream: DICOM viewer applicationfrontend: nginx serving the ViewportsCore demo app
builder: Builds the frontend applicationdicom-loader: Loads sample DICOM studies
# Start all services
docker-compose up -d
# Stop all services
docker-compose down
# View logs
docker-compose logs -f
# View specific service logs
docker-compose logs -f meddream# Rebuild frontend after code changes
docker-compose --profile build up --build builder
# Restart specific service
docker-compose restart meddream
# Update a single service
docker-compose up -d --no-deps meddream# Reset all data (including DICOM studies)
docker-compose down -v
# Reload sample DICOM data
docker-compose --profile tools up dicom-loader
# Backup Orthanc database
docker-compose exec orthanc tar czf - /var/lib/orthanc/db > orthanc-backup.tar.gzCreate .env file:
NPM_TOKEN=your_meddream_npm_token
COMPOSE_PROJECT_NAME=meddream-demoorthanc.json: Orthanc PACS configurationapplication.properties: MEDDREAM viewer settingsnginx.conf: Frontend proxy configurationmeddream.py: Orthanc-MEDDREAM integration script
Edit application.properties:
# Change PACS connection
pacs.host=your-pacs-server
pacs.port=11112
pacs.type=dimse
# Adjust logging
logging.level.com.softneta=DEBUGEdit nginx.conf to add custom proxy rules or static file handling.
All services include health checks. Check status:
docker-compose psIndividual health check URLs:
- Frontend: http://localhost/health
- MEDDREAM: http://localhost:8080/actuator/health
- Orthanc: http://localhost:8042/system
1. Frontend won't build
# Check NPM_TOKEN is set
echo $NPM_TOKEN
# Rebuild with verbose output
docker-compose --profile build up --build builder2. MEDDREAM can't connect to Orthanc
# Check Orthanc is running
docker-compose ps orthanc
# Check network connectivity
docker-compose exec meddream ping orthanc
# Verify Orthanc API
curl http://localhost:8042/system3. No DICOM studies visible
# Check if studies were loaded
curl http://localhost:8042/studies
# Reload sample data
docker-compose --profile tools up dicom-loader4. ViewportsCore chunk loading errors
# Check frontend build exists
ls -la build/
# Verify nginx proxy configuration
docker-compose exec frontend cat /etc/nginx/conf.d/default.conf# Run with debug logging
COMPOSE_LOG_LEVEL=DEBUG docker-compose up
# Access container shells
docker-compose exec meddream bash
docker-compose exec orthanc bash
docker-compose exec frontend shmeddream-demo/
βββ docker-compose.yml # Main orchestration
βββ nginx.conf # Frontend proxy config
βββ setup.sh # Setup script
βββ .env # Environment variables
βββ orthanc.json # Orthanc configuration
βββ application.properties # MEDDREAM configuration
βββ meddream.py # Orthanc integration
βββ build/ # Built frontend (created by builder)
βββ src/ # Frontend source code
βββ package.json # Frontend dependencies
βββ README.md # This file
- This is a development/demo environment
- Default credentials are used (if any)
- No HTTPS/SSL configured
- Not suitable for production without hardening
For issues with:
- MEDDREAM: Contact Softneta support
- Orthanc: Check Orthanc community forums
- This demo: Check Docker and configuration logs