CompCubeCompCubeWiki
Developers

Local development

Clone correctly

The website consumes the generated client through a submodule:

git clone --recurse-submodules https://github.com/CompCubeBS/CompCube-Website.git
cd CompCube-Website
git submodule update --init --recursive

When client work should be tested in the website, commit/push the client change, then update the website submodule pointer deliberately. Do not copy client sources between repositories.

Backend with hot reload

cd CompCube-Server-TS
cp .env.example .env
# Fill at least BK_CLIENT_ID and BK_CLIENT_SECRET.
docker compose -f docker-compose.yml -f docker-compose.dev.yml up --build

This exposes REST/Swagger at http://localhost:7198, Socket.IO/replay at http://localhost:8008, and PostgreSQL at localhost:5432. It runs schema setup before Nodemon.

Website with hot reload

Set the website .env:

PUBLIC_COMPCUBE_API_URL=http://localhost:7198
PUBLIC_COMPCUBE_SOCKET_URL=http://localhost:8008
COMPCUBE_INTERNAL_API_URL=http://host.docker.internal:7198
PUBLIC_SITE_URL=http://localhost:5173

Then run:

cd CompCube-Website
git submodule update --init --recursive
docker compose -f docker-compose.yml -f docker-compose.dev.yml up --build

Open http://localhost:5173. On Linux, the Compose file maps host.docker.internal to the host gateway.

Wiki with hot reload

cd CompCube-Wiki
docker compose -f docker-compose.yml -f docker-compose.dev.yml up --build

Open http://localhost:3001. MDX, React, and CSS changes reload automatically.

Run everything

Start the three commands in separate terminals: backend first, then website, then wiki. They remain independently deployable; connection occurs through published host URLs rather than a root Compose project. Use the backend's dev-only mock-client UI to test without two headsets. Mock matches never alter rating and only role:dev can create/control them.

On this page