Appearance
Deployment
Backend Services (md-cloud, md-hub)
Both services are containerized with Docker using eclipse-temurin:21-jdk-alpine.
Building
bash
# md-cloud
cd md-cloud
./gradlew build
# md-hub
cd md-hub
./gradlew buildDocker
Each service has a Dockerfile and supports custom build args:
JAR_SOURCE— path to the built JARJAR_NAME— name of the JAR in the container
Profiles
Set via SPRING_PROFILES_ACTIVE environment variable:
| Profile | Description |
|---|---|
dev | Local development, debug ports enabled |
test | Test environment |
stage | Staging / pre-production |
prod | Production |
Debug Ports
| Service | Debug Port |
|---|---|
| md-cloud | 9110 |
| md-hub | 9111 |
Dependencies
- PostgreSQL database
- Keycloak identity provider
- MQTT broker (for md-hub)
Frontend (md-cloud-portal)
bash
cd md-cloud-portal
npm install
npx quasar build # production web buildEnvironment-specific builds are available (dev, test, stage, prod).
Mobile App (md-my-door)
Web Build
bash
cd md-my-door
npm install # use Node 18
npx quasar buildAndroid Build (Cordova)
Requires: Node 20, Android Studio, SDK platform 35, Gradle 8.13, Java 21.
bash
cd md-my-door
npm install # use Node 20
npx quasar build -m cordova -T androidFirmware
md-firmware (Gateway)
Requires ESP-IDF v5.5.2. Build profiles: prod, stage, test, dev (different cloud endpoints).
bash
idf.py build
idf.py -p /dev/ttyUSBx flash monitorCI/CD: GitHub Actions triggers on tag push (v*.*, v*.*-rc*), builds and creates GitHub releases.
doorson_ble_smartswitch
Requires nRF Connect SDK v2.9.0, GNU ARM Embedded Toolchain.
bash
west build -b xb122
west flash # via J-Link SWDShared Library (md-npm)
bash
cd md-npm
npm install
npm run build # outputs dist/doorson-npm.umd.cjs + dist/doorson-npm.js
npm pack # creates doorson-npm-1.0.1.tgzConsumed by md-cloud-portal and md-my-door as a file dependency (../md-npm/doorson-npm-1.0.1.tgz).