Open PowerShell as Administrator and run:
wsl --installThen restart Windows when prompted.
After reboot:
- Open the new Ubuntu terminal.
- Finish the first-run Ubuntu setup.
- Verify WSL is running version 2:
wsl -l -vIf your Ubuntu distro is not on version 2:
wsl --set-version Ubuntu 2Run these commands in the Ubuntu shell:
sudo apt update
sudo apt install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo service docker start
sudo docker run hello-worldIf hello-world works, Docker is ready.
Clone this repo inside WSL or open the existing checkout from your Ubuntu shell, then go to the repo root:
cd /path/to/M_CIRCreate the env file:
cp .env.example .envEdit .env and set a real JWT_SECRET.
Build and start:
sudo docker compose up --build -dCheck that all containers are up:
sudo docker compose psIf something fails during boot:
sudo docker compose logs -fThe backend container includes a database init script. Run it once after the containers are up:
sudo docker compose exec backend npm run init-dbThis loads the JSON files from warrior-support-system/test-data/ into MongoDB.
If you want to wipe and reload the database later:
sudo docker compose exec backend npm run reset-dbAfter startup:
- Frontend:
http://localhost:8080 - Node API:
http://localhost:5000 - Python API:
http://localhost:8000 - MongoDB:
localhost:27017