Skip to content

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 build

Docker

Each service has a Dockerfile and supports custom build args:

  • JAR_SOURCE — path to the built JAR
  • JAR_NAME — name of the JAR in the container

Profiles

Set via SPRING_PROFILES_ACTIVE environment variable:

ProfileDescription
devLocal development, debug ports enabled
testTest environment
stageStaging / pre-production
prodProduction

Debug Ports

ServiceDebug Port
md-cloud9110
md-hub9111

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 build

Environment-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 build

Android 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 android

Firmware

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 monitor

CI/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 SWD

Shared 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.tgz

Consumed by md-cloud-portal and md-my-door as a file dependency (../md-npm/doorson-npm-1.0.1.tgz).