Getting Started
This guide walks you through spinning up the entire Med-SEAL Suite locally using Docker Compose.
Prerequisites
Docker Desktop ≥ 4.25 (with Docker Compose v2)
16 GB RAM recommended (multiple services run concurrently)
20 GB disk free (images + volumes)
Node.js ≥ 18 (for patient portal native development)
Git
Clone the Repository
git clone https://github.com/IgoyAI/Med-SEAL-Suite.git
cd Med-SEAL-Suite
Start All Services
docker compose up -d
This brings up:
OpenEMR + MariaDB
Medplum Server + PostgreSQL + Redis + Admin App
AI Service + SSO PostgreSQL
AI Frontend
Monitor startup progress:
docker compose ps # Check container status
docker compose logs -f # Stream all logs
Note
First startup takes 5–10 minutes as services initialise databases and run health checks. Wait until all containers show healthy status.
Access Points
Service |
URL |
Credentials |
|---|---|---|
OpenEMR (Clinical EMR) |
|
|
Medplum App (FHIR Admin) |
Register new account |
|
Medplum API (FHIR R4) |
- |
|
AI Service (API) |
- |
|
AI Frontend (Dashboard) |
- |
Seed Sample Data
Med-SEAL includes scripts to populate the system with realistic synthetic patient data:
# Generate and load Synthea patients into Medplum
node scripts/load-synthea.js
# Seed a specific Medplum patient with full clinical data
node scripts/seed-medplum-patient.js
# Sync patients between Medplum and OpenEMR
node scripts/sync-medplum-openemr.js
See the Scripts Reference page for full details on every utility script.
Verify the Stack
OpenEMR - Log in at
http://localhost:8081withadmin/pass. You should see the clinical dashboard.Medplum - Open
http://localhost:3000, register an account, and browse FHIR resources.AI Service - Check the health endpoint:
curl http://localhost:4003/healthPatient Portal Native - See Patient Portal Native for Expo setup.
Stop & Reset
# Stop services (data preserved)
docker compose down
# Stop and delete all data volumes (full reset)
docker compose down -v