Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

MQTT Service with Docker

Giới thiệu

MQTT Service là một dịch vụ sử dụng giao thức MQTT (Message Queuing Telemetry Transport) để truyền nhận dữ liệu giữa các thiết bị. Dự án này cung cấp môi trường MQTT đóng gói sẵn trong Docker để dễ dàng triển khai.

Yêu cầu hệ thống

  • Docker
  • Docker Compose

Hướng dẫn cài đặt

⚠️ QUAN TRỌNG: Tạo Username/Password trước khi khởi chạy

Dự án này yêu cầu xác thực username/password (allow_anonymous false). Bạn PHẢI tạo file password trước khi chạy docker-compose.

Cách 1: Sử dụng Docker container tạm thời (Khuyến nghị)

# Tạo user admin với password admin123
docker run --rm -v ./config:/mosquitto/config eclipse-mosquitto mosquitto_passwd -c -b /mosquitto/config/pwfile admin admin123

# Thêm user khác (tùy chọn)
docker run --rm -v ./config:/mosquitto/config eclipse-mosquitto mosquitto_passwd -b /mosquitto/config/pwfile user1 password123

Cách 2: Nếu đã cài Mosquitto trên máy local

# Tạo file password với user admin
mosquitto_passwd -c config/pwfile admin

# Thêm user khác
mosquitto_passwd config/pwfile user1

Cách 3: Tạo file password thủ công (ít bảo mật)

# Windows
echo admin:admin123 > config\pwfile
echo user1:password123 >> config\pwfile

# Linux/Mac
echo "admin:admin123" > config/pwfile
echo "user1:password123" >> config/pwfile

🚀 Khởi chạy MQTT Broker

  1. Clone repository:
git clone https://github.com/hungtx2001/mqtt-server.git
cd mqtt-server
  1. Tạo username/password (chọn một trong các cách trên)

  2. Khởi chạy MQTT broker:

docker-compose up -d
  1. Kiểm tra trạng thái:
docker-compose ps
docker-compose logs mqtt

📋 Cấu hình hiện tại

File config/mosquitto.conf:

allow_anonymous false          # Yêu cầu xác thực username/password
listener 1883                  # Port MQTT chuẩn
persistence true               # Lưu trữ dữ liệu vĩnh viễn
password_file /mosquitto/config/pwfile  # File chứa username/password
persistence_file mosquitto.db  # File database
persistence_location /mosquitto/data/   # Thư mục lưu trữ

Thông tin kết nối:

  • Host: localhost (hoặc IP server)
  • Port: 1883
  • Username: Theo file config/pwfile
  • Password: Theo file config/pwfile
  • Protocol: MQTT v3.1.1/v5.0

🔧 Quản lý Users

Thêm user mới:

# Thêm user vào file password hiện có
docker run --rm -v ./config:/mosquitto/config eclipse-mosquitto mosquitto_passwd -b /mosquitto/config/pwfile newuser newpassword

# Restart container để áp dụng
docker-compose restart

Xóa user:

# Xóa user khỏi file password
docker run --rm -v ./config:/mosquitto/config eclipse-mosquitto mosquitto_passwd -D /mosquitto/config/pwfile username

# Restart container
docker-compose restart

Đổi password:

# Đổi password cho user hiện có
docker run --rm -v ./config:/mosquitto/config eclipse-mosquitto mosquitto_passwd -b /mosquitto/config/pwfile username newpassword

# Restart container
docker-compose restart

🧪 Test kết nối

Sử dụng mosquitto_pub/sub (nếu đã cài):

# Subscribe
mosquitto_sub -h localhost -p 1883 -u admin -P admin123 -t test/topic

# Publish
mosquitto_pub -h localhost -p 1883 -u admin -P admin123 -t test/topic -m "Hello MQTT"

Sử dụng MQTT client tools:

  • MQTT Explorer: GUI tool để test MQTT
  • MQTTX: Cross-platform MQTT client
  • Postman: Hỗ trợ MQTT testing

🚨 Troubleshooting

Lỗi "Connection Refused":

  1. Kiểm tra container đang chạy: docker-compose ps
  2. Kiểm tra log: docker-compose logs mqtt5
  3. Kiểm tra file password tồn tại: ls -la config/pwfile

Lỗi "Authentication failed":

  1. Kiểm tra username/password đúng
  2. Kiểm tra file config/pwfile có nội dung
  3. Restart container: docker-compose restart

Container không khởi động:

  1. Kiểm tra cấu hình: docker-compose config
  2. Kiểm tra quyền file: chmod 644 config/pwfile
  3. Xem log chi tiết: docker-compose logs -f mqtt5

Tài liệu tham khảo

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors