Getting Started
This guide gets your full local development environment running — backend API, frontend SPA, and docs site.
Prerequisites
- Docker 24+ and Docker Compose v2
- Git with SSH key configured for GitLab
- Node 20+ and pnpm 9+ (for frontend / testing work outside Docker)
Clone the Monorepo
bash
git clone --recurse-submodules git@gitlab.com:nova-hc/mwe/v2/pod-portals.git
cd pod-portalsIf you already cloned without --recurse-submodules:
bash
git submodule update --init --recursiveStarting All Services
From the pod-portals root:
bash
# 1. First-time only — copies .env files and builds images
make build
# 2. Bring everything up
make up
# 3. First-time only — load seed fixtures (migrations run automatically via start.sh)
docker compose run --rm django bash -c "python manage.py loaddata novahomecareapi/fixtures/*.json"| Service | URL |
|---|---|
| Django API | http://localhost:8000 |
| Portals SPA | http://localhost:3000 |
| Docs | http://localhost:4173 |
| Django Admin | http://localhost:8000/admin/ |
| API Schema (Swagger) | http://localhost:8000/api/schema/swagger-ui/ |
Individual Services
bash
docker compose up django # backend only
docker compose up portals # frontend only
docker compose up docs # docs onlyUpdating Submodules
bash
git submodule update --remote --mergeDaily Workflow
- Pull latest in the parent repo:
git pull - Update submodules:
git submodule update --remote --merge - Start services:
docker compose up - Work in the relevant submodule directory
- Commit inside the submodule, then update the parent's pointer:
git add <submodule-dir> && git commit