-
Notifications
You must be signed in to change notification settings - Fork 0
Deployment Modes
Oliver Hennhöfer edited this page Apr 7, 2026
·
1 revision
This page documents supported deployment patterns from project-code/.
Use this page when selecting or switching run modes (local, profile-based, cluster, swarm ingress).
docker compose up -d --buildCharacteristics:
- Single EMQX node (
emqx-main). - Local source broker (
source-broker) for deterministic development. -
mqtt-radarandmqtt-simulatorare profile-gated by default.
docker compose --profile standalone-radar up -d mqtt-radardocker compose --profile mqtt-sim up -d --build --force-recreate mqtt-simulatorStart full stack including simulator:
docker compose --profile mqtt-sim up -d --builddocker compose -f docker-compose.yml -f docker-compose.cluster.yml up -d --buildAdds emqx-worker and cluster seed wiring for multi-node broker behavior testing.
docker stack deploy -c docker-compose.swarm.yml off-keyUse for replicated frontend/API and overlay-network operation.
- Copy ingress template:
cp .env.ingress.example .env.ingress.local-
Fill required values (
INGRESS_UPSTREAM_MQTT_HOST, auth settings, state directory). -
Deploy overlay stack:
docker stack deploy \
--env-file .env.ingress.local \
-c docker-compose.swarm.yml \
-c docker-compose.ingress.yml \
off-key- Configure EMQX bridge target to
mqtt-tailscale-bridge:1883with upstream auth/TLS/topics.
When moving between local/cluster/ingress modes:
docker compose down -v
docker network rm off-key_app-network off-key_emqx-network || trueThen start target mode from a clean baseline.
| Goal | Recommended Mode |
|---|---|
| Day-to-day development | Local default |
| Test detection logic with synthetic data | Local + mqtt-sim profile |
| Test multi-node EMQX behavior | Local + cluster override |
| VPN ingress from external broker | Swarm + ingress overlay |
Use Environment Variables for per-mode variable setup.