EMQX на VPS: MQTT-брокер для IoT — иллюстрация к статье Storm Cloud Blog, категория DevOps
EMQX на VPS: MQTT-брокер для IoT — иллюстрация к статье Storm Cloud Blog, категория DevOps
DevOps·2 мин··

EMQX на VPS: MQTT-брокер для IoT

Установка EMQX MQTT broker на VPS: IoT устройства, pub/sub, TLS, WebSocket. Self-hosted альтернатива облачному IoT Hub.

Краткий ответ: EMQX — MQTT-брокер для IoT: датчики публикуют в topics, подписчики получают. Docker на VPS за 5 минут. TLS + auth для production.

MQTT — лёгкий протокол для умного дома, телеметрии, Telegram-ботов с hardware.


MQTT vs HTTP для IoT

MQTT HTTP
Overhead Минимальный Высокий
Push от server Да Polling
Offline queue Да Нет
Battery devices Идеально Плохо

Docker установка

services:
  emqx:
    image: emqx/emqx:5
    ports:
      - "1883:1883"
      - "8883:8883"
      - "127.0.0.1:18083:18083"
    environment:
      EMQX_NAME: emqx
    volumes:
      - emqx_data:/opt/emqx/data

Dashboard: http://127.0.0.1:18083 (admin/public → смените пароль).


TLS

Порт 8883 — MQTT over TLS. Сертификат — Let’s Encrypt или wildcard DNS.


Масштабирование

Устройств RAM
< 1000 512 MB–1 GB
10k+ 2 GB+

Мониторинг — Netdata + EMQX metrics.


Связка с приложением

Backend на Node.js или Go подписывается на MQTT → пишет в MongoDB или PostgreSQL.


Безопасность

  • Смените default credentials
  • ACL per device
  • Не открывайте 1883 без TLS в интернет
  • Fail2ban

Итог

EMQX на VPS — свой IoT hub без облачной подписки. Docker + TLS + ACL = production-ready.

VPS от 1 GB — StormNet Cloud. Очереди — RabbitMQ.

Частые вопросы

EMQX или Mosquitto для MQTT на VPS?

Mosquitto — легче для home lab. EMQX — масштаб, dashboard, clustering для production IoT.

Нужен ли TLS для MQTT?

Да в production. Порт 8883 (MQTTS) с Let's Encrypt. Не используйте plaintext 1883 в интернете.