Quick Start Guide
Get the Vantrexia Remote Patient Monitoring platform running on your local machine in under 5 minutes. This guide uses Docker Compose to spin up the entire stack — backend API, frontend dashboard, PostgreSQL database, and Redis cache — with a single command.
This quick start guide is designed for local development and evaluation. For production deployments with HIPAA-compliant infrastructure, see the Deployment Guide.
Prerequisites
Ensure the following tools are installed on your machine before proceeding:
| Requirement | Minimum Version | Verify Command |
|---|---|---|
| Docker | 20.10+ | docker --version |
| Docker Compose | 2.0+ | docker compose version |
| Git | 2.30+ | git --version |
| Available RAM | 4 GB | — |
| Available Disk | 2 GB | — |
If you are on macOS or Windows, ensure Docker Desktop is running and allocated at least 4 GB of memory. You can adjust this in Docker Desktop → Settings → Resources.
Step 1: Clone the Repository
Clone the Vantrexia monorepo from GitHub and navigate into the project directory:
git clone https://github.com/highlandpc/Vantrexia.git
cd Vantrexia
Step 2: Configure Environment Variables
Copy the example environment files for the backend and frontend. The defaults are pre-configured for local development:
# Copy the root environment template
cp .env.example .env
# Edit .env and set the required values:
# SECRET_KEY, POSTGRES_PASSWORD, REDIS_PASSWORD
The .env file at the project root is required. At minimum, set SECRET_KEY, POSTGRES_PASSWORD, and REDIS_PASSWORD. The frontend reads VITE_API_BASE_URL from the docker-compose environment. See the Configuration Guide for details on every variable.
Step 3: Start All Services
Launch the full stack using Docker Compose. This will pull the required images, build the application containers, and start all services:
docker compose up -d
This starts the following services:
| Service | Port | Description |
|---|---|---|
| frontend | 3000 |
React dashboard (Vite dev server) |
| backend | 8000 |
Django REST API |
| postgres | 5432 |
PostgreSQL 15 database |
| redis | 6379 |
Redis cache & Celery broker |
| celery | — | Async task processing |
| celery-beat | — | Scheduled task runner |
First-time startup takes 2–4 minutes depending on your internet connection. Subsequent starts are much faster due to cached Docker layers.
Step 4: Run Migrations & Create Superuser
The backend container automatically runs migrations and creates default roles on startup via start.sh. To create your admin account:
# Create a superuser for the admin panel
docker compose exec backend python manage.py createsuperuser
Follow the prompts to set your admin email, username, and password. This account gives you full access to the Django admin panel and all API endpoints.
The backend entrypoint runs migrate and create_default_roles automatically on container start. You can also set DJANGO_SUPERUSER_EMAIL, DJANGO_SUPERUSER_USERNAME, and DJANGO_SUPERUSER_PASSWORD environment variables to auto-create the superuser.
Step 5: Verify the Installation
Confirm everything is running by checking the application endpoints:
Health Check
curl http://localhost:8000/health/
Expected response (HTTP 200 if all checks pass):
{
"DatabaseBackend": "working",
"CacheBackend": "working"
}
A more detailed status is available at /api/v1/monitoring/health/ and /api/v1/monitoring/status/.
Access the Applications
| Application | URL | Credentials |
|---|---|---|
| Provider Dashboard | http://localhost:3000 | Your superuser credentials |
| API Root | http://localhost:8000/api/v1/ | JWT token (see below) |
| Django Admin | http://localhost:8000/admin/ | Your superuser credentials |
| API Documentation (Swagger) | http://localhost:8000/api/docs/ | Admin/staff login required |
Get a JWT Token
Authenticate against the API to obtain an access token for testing endpoints:
curl -X POST http://localhost:8000/api/v1/auth/login/ \
-H "Content-Type: application/json" \
-d '{"email": "admin@yourpractice.com", "password": "your-password"}'
The response includes a tokens object with access (valid for 15 minutes) and refresh (valid for 1 day) tokens. Use the access token in the Authorization: Bearer <token> header for subsequent API requests. If 2FA is enabled for the user, a totp_token field is also required.
Stopping Services
To stop all running containers without removing data:
# Stop services (preserves data volumes)
docker compose stop
# Or stop and remove containers (preserves data volumes)
docker compose down
# Stop and remove everything including data volumes
docker compose down -v
Using docker compose down -v will permanently delete all database data, uploaded files, and Redis cache. Use this only when you want a completely clean slate.
Next Steps
Now that Vantrexia is running locally, here are the recommended next steps:
Set up a native development environment with Python virtualenv and npm for faster iteration.
Customize environment variables, eClinicalWorks integration, security settings, and feature flags.
Walk through enrolling a patient, connecting a device, and viewing vital sign data on the dashboard.
Explore the full REST API with 150+ endpoints for patients, observations, billing, triage, and FHIR resources.