Installation
EMQX binary packages are released on below operating systems:
- CentOS 7 (EL7)
- CentOS 8 (EL8)
- Raspbian 10
- Debian 9
- Debian 10
- Ubuntu 16.04
- Ubuntu 18.04
- Ubuntu 20.04
- macOS 10
- Windows Server 2019
Package Installation (Linux)
Download EMQX package emqx.com
(opens new window) or Github
(opens new window)Install EMQX Broker:
RPM package:
$ sudo yum install emqx-cenots7-v4.0.0.x86_64.rpm
DEB package:
# for ubuntu/debian$ sudo apt install ./emqx-ubuntu18.04-v4.0.0_amd64.deb$ sudo apt install ./emqx-debian10-v4.0.0_amd64.deb
Start EMQX Broker
quick start
$ emqx startemqx 4.0.0 is started successfully!$ emqx_ctl statusNode 'emqx@127.0.0.1' is startedemqx v4.0.0 is running
systemctl
$ sudo systemctl start emqx
start as service
$ sudo service emqx start
Stop EMQX Broker
$ emqx stopok
Uninstall EMQX Broker
DEB:
$ sudo apt remove --purge emqx
RPM:
$ sudo yum remove emqx
ZIP (Linux、MacOS、Windows)
WARING
ZIP packages are released for quick testing and hot-beam upgrade. Do NOT install zip packages for production unless you know how to manually resolve all the runtime dependencies.
Download EMQX zip package from emqx.com
(opens new window) or Github
(opens new window).Unzip the installation file:
$ unzip emqx-ubuntu18.04-v4.0.0.zip
Start EMQX Broker
$ ./bin/emqx startemqx 4.0.0 is started successfully!$ ./bin/emqx_ctl statusNode 'emqx@127.0.0.1' is startedemqx v4.0.0 is running
Stop EMQX Broker
$ ./bin/emqx stopok
Remove EMQX Broker
Simply delete the EMQX Broker directory
Running EMQX in Docker (Contain a simple docker-compose cluster)
Run a single container
Get docker image
From Docker Hub
(opens new window)$ docker pull emqx/emqx:v4.0.0
Start docker container
$ docker run -d --name emqx -p 1883:1883 -p 8081:8081 -p 8083:8083 -p 8883:8883 -p 8084:8084 -p 18083:18083 emqx/emqx:v4.0.0
Create a simple static cluster by docker-compose
Create
docker-compose.yamlfileversion: '3'services:emqx1:image: emqx/emqx:v4.0.0environment:- "EMQX_NAME=emqx"- "EMQX_HOST=node1.emqx.io"- "EMQX_CLUSTER__DISCOVERY=static"- "EMQX_CLUSTER__STATIC__SEEDS=emqx@node1.emqx.io, emqx@node2.emqx.io"- "EMQX_ZONE__EXTERNAL__RETRY_INTERVAL=2s"- "EMQX_MQTT__MAX_TOPIC_ALIAS=10"volumes:- ./tmp/emqx.lic:/opt/emqx/etc/emqx.lichealthcheck:test: ["CMD", "/opt/emqx/bin/emqx_ctl", "status"]interval: 5stimeout: 25sretries: 5networks:emqx-bridge:aliases:- node1.emqx.ioemqx2:image: emqx/emqx:v4.0.0environment:- "EMQX_NAME=emqx"- "EMQX_HOST=node2.emqx.io"- "EMQX_CLUSTER__DISCOVERY=static"- "EMQX_CLUSTER__STATIC__SEEDS=emqx@node1.emqx.io, emqx@node2.emqx.io"- "EMQX_ZONE__EXTERNAL__RETRY_INTERVAL=2s"- "EMQX_MQTT__MAX_TOPIC_ALIAS=10"volumes:- ./tmp/emqx.lic:/opt/emqx/etc/emqx.lichealthcheck:test: ["CMD", "/opt/emqx/bin/emqx_ctl", "status"]interval: 5stimeout: 25sretries: 5networks:emqx-bridge:aliases:- node2.emqx.ioclient:image: python:3.7.2-alpine3.9depends_on:- emqx1- emqx2tty: truenetworks:emqx-bridge:networks:emqx-bridge:driver: bridge
Start docker-compose cluster
$ docker-compose -p my_emqx up -d
View cluster
$ docker exec -it my_emqx_emqx1_1 sh -c "emqx_ctl cluster status"Cluster status: #{running_nodes => ['emqx@node1.emqx.io','emqx@node2.emqx.io'],stopped_nodes => []}
For more information about EMQX Broker Docker, please visit Docker Hub
(opens new window) or Github
(opens new window)
Install and cluster via Helm (K8S、K3S)
- Add helm repository
$ helm repo add emqx https://repos.emqx.io/charts$ helm repo update
- Query EMQX Broker
helm search repo emqxNAME CHART VERSION APP VERSION DESCRIPTIONemqx/emqx v4.0.0 v4.0.0 A Helm chart for EMQXemqx/emqx-ee v4.0.0 v4.0.0 A Helm chart for EMQXemqx/kuiper 0.1.1 0.1.1 A lightweight IoT edge analytic software
- Start EMQX Broker cluster
$ helm install my-emqx emqx/emqx
- View EMQX Broker cluster situation
$ kubectl get podsNAME READY STATUS RESTARTS AGEmy-emqx-0 1/1 Running 0 56smy-emqx-1 1/1 Running 0 40smy-emqx-2 1/1 Running 0 21s$ kubectl exec -it my-emqx-0 -- emqx_ctl cluster statusCluster status: #{running_nodes =>['my-emqx@my-emqx-0.my-emqx-headless.default.svc.cluster.local','my-emqx@my-emqx-1.my-emqx-headless.default.svc.cluster.local','my-emqx@my-emqx-2.my-emqx-headless.default.svc.cluster.local'],stopped_nodes => []}
Source code compilation and installation
- Get the source code
$ git clone https://github.com/emqx/emqx.git
- Checkout to latest tag
$ cd emqx$ git checkout $(git describe --abbrev=0 --tags)
- Compile
$ make
- Start EMQX Broker
$ cd _build/emqx/rel/emqx$ ./bin/emqx startEMQX Broker 4.3-beta.1 is started successfully!$ ./bin/emqx_ctl statusNode 'emqx@127.0.0.1' is startedemqx 4.3-beta.1 is running
