Developer Guide
Once your .env file is configured and your initial administrator account is bootstrapped, you are ready to start running and interacting with the CrowdVision platform.
Because the entire ecosystem is containerized, your day-to-day workflow relies entirely on a few core NPM scripts run from the root of the Lerna monorepo.
For active development, you will almost exclusively use the dev script.
npm run docker:devWhat happens when you run this?
.env file and cryptographic keys are intact.docker-compose.yml with the docker-compose.dev.yml override file../src directories directly to the running containers.Once the terminal output settles and the containers are healthy, you can access the platform via your browser:
| Interface | URL/Port | Description |
|---|---|---|
| Vue Frontend | http://localhost:8080 | The main CrowdVision user interface. |
| API Gateway (Backend) | http://localhost:80 | The Caddy reverse proxy routing to all microservices (e.g., http://localhost/auth/login). |
| Services | Whatever you like | Exposed only internally within the Docker network. |
The Database GUIs are only available when running in dev mode. They are explicitly excluded from the production startup sequence for security reasons.
You do not need to restart the server when you change code.
server/twin-service/src), Docker Watch detects the change and uses nodemon / ts-node inside the container to gracefully restart that specific microservice without dropping the rest of the network.If you just want to run the application to test it without making code changes (or if you are deploying it to a staging server), use the standard start command:
npm run docker:startThis command runs the stack using only the base docker-compose.yml file.
-d), meaning it will start the containers in the background and free up your terminal.When you are done working, you should gracefully spin down the containers and remove the isolated networks to free up system resources.
To stop the application:
npm run docker:stopThe “Nuclear” Option Occasionally, during development, you might corrupt your database state (e.g., by uploading an invalid building schema while testing). If you want to wipe everything and start completely fresh, you can use the clear command.
This command is destructive. It will permanently delete the persistent Docker volumes containing your databases.
npm run db:clearAfter running this, the next time you boot the app, the databases will be completely empty. You will need to run npm run enterprise:create again to bootstrap a new admin account!