Skip to content

Commit

Permalink
add(app): emqx (#4942)
Browse files Browse the repository at this point in the history
* add(app): emqx

* fix(emqx): networks

* fix(emqx): containers name

* fix(emqx): config timestamps

* fix(emqx): container name

* fix(emqx): form field linter
  • Loading branch information
JigSawFr authored Sep 23, 2024
1 parent 3a36730 commit 34c3dcb
Show file tree
Hide file tree
Showing 4 changed files with 136 additions and 0 deletions.
20 changes: 20 additions & 0 deletions apps/emqx/config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"$schema": "../schema.json",
"name": "EMQX Open Source",
"port": 18083,
"available": true,
"exposable": true,
"id": "emqx",
"tipi_version": 1,
"version": "5.8.0",
"categories": ["utilities", "automation"],
"description": "The most scalable open-source MQTT broker for IoT, IIoT, and connected vehicles.",
"short_desc": "Scalable open-source MQTT broker.",
"author": "EMQ Technologies Co., Ltd.",
"source": "https://github.com/emqx/emqx",
"website": "https://www.emqx.com/",
"form_fields": [],
"supported_architectures": ["arm64", "amd64"],
"created_at": 1727127845000,
"updated_at": 1727127845000
}
71 changes: 71 additions & 0 deletions apps/emqx/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
services:
emqx:
image: emqx/emqx:5.8.0
container_name: emqx
environment:
- TZ=${TZ}
- "EMQX_NODE_NAME=emqx@emqx"
- "EMQX_CLUSTER__DISCOVERY_STRATEGY=static"
- "EMQX_CLUSTER__STATIC__SEEDS=[emqx@emqx,emqx@emqx-n2]"
ports:
- 1883:1883
- 8083:8083
- 8084:8084
- 8883:8883
- 18083:18083
healthcheck:
test: ["CMD", "/opt/emqx/bin/emqx", "ctl", "status"]
interval: 5s
timeout: 25s
retries: 5
volumes:
- ${APP_DATA_DIR}/data/n1:/opt/emqx/data
restart: unless-stopped
networks:
- tipi_main_network
labels:
# Main
traefik.enable: true
traefik.http.middlewares.emqx-web-redirect.redirectscheme.scheme: https
traefik.http.services.emqx.loadbalancer.server.port: 18083
# Web
traefik.http.routers.emqx-insecure.rule: Host(`${APP_DOMAIN}`)
traefik.http.routers.emqx-insecure.entrypoints: web
traefik.http.routers.emqx-insecure.service: emqx-web
traefik.http.routers.emqx-insecure.middlewares: emqx-web-redirect
# Websecure
traefik.http.routers.emqx.rule: Host(`${APP_DOMAIN}`)
traefik.http.routers.emqx.entrypoints: websecure
traefik.http.routers.emqx.service: emqx-web
traefik.http.routers.emqx.tls.certresolver: myresolver
# Local domain
traefik.http.routers.emqx-local-insecure.rule: Host(`emqx.${LOCAL_DOMAIN}`)
traefik.http.routers.emqx-local-insecure.entrypoints: web
traefik.http.routers.emqx-local-insecure.service: emqx-web
traefik.http.routers.emqx-local-insecure.middlewares: emqx-web-redirect
# Local domain secure
traefik.http.routers.emqx-local.rule: Host(`emqx.${LOCAL_DOMAIN}`)
traefik.http.routers.emqx-local.entrypoints: websecure
traefik.http.routers.emqx-local.service: emqx-web
traefik.http.routers.emqx-local.tls: true
runtipi.managed: true
emqx-n2:
image: emqx/emqx:5.8.0
container_name: emqx-n2
environment:
- TZ=${TZ}
- "EMQX_NODE_NAME=emqx@emqx-n2"
- "EMQX_CLUSTER__DISCOVERY_STRATEGY=static"
- "EMQX_CLUSTER__STATIC__SEEDS=[emqx@emqx,emqx@emqx-n2]"
healthcheck:
test: ["CMD", "/opt/emqx/bin/emqx", "ctl", "status"]
interval: 5s
timeout: 25s
retries: 5
volumes:
- ${APP_DATA_DIR}/data/n2:/opt/emqx/data
restart: unless-stopped
networks:
- tipi_main_network
labels:
runtipi.managed: true
45 changes: 45 additions & 0 deletions apps/emqx/metadata/description.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# EMQX

EMQX is the world's most scalable open-source [MQTT broker](https://www.emqx.com/en/blog/the-ultimate-guide-to-mqtt-broker-comparison) with a high performance that connects 100M+ IoT devices in 1 cluster, while maintaining 1M message per second throughput and sub-millisecond latency.

EMQX supports multiple open standard protocols like MQTT, HTTP, QUIC, and WebSocket. It’s 100% compliant with MQTT 5.0 and 3.x standard, and secures bi-directional communication with MQTT over TLS/SSL and various authentication mechanisms.

With the built-in powerful SQL-based [rules engine](https://www.emqx.com/en/solutions/iot-rule-engine), EMQX can extract, filter, enrich and transform IoT data in real-time. In addition, it ensures high availability and horizontal scalability with a masterless distributed architecture, and provides ops-friendly user experience and great observability.

EMQX boasts more than 20K+ enterprise users across 50+ countries and regions, connecting 100M+ IoT devices worldwide, and is trusted by over 400 customers in mission-critical scenarios of IoT, IIoT, connected vehicles, and more, including over 70 Fortune 500 companies like HPE, VMware, Verifone, SAIC Volkswagen, and Ericsson.

For more information, please visit [EMQX homepage](https://www.emqx.com/en).

## Documentation

The EMQX documentation is available at [docs.emqx.com/en/emqx/latest](https://docs.emqx.com/en/emqx/latest/).

The EMQX Cloud documentation is available at [docs.emqx.com/en/cloud/latest](https://docs.emqx.com/en/cloud/latest/).

## Contributing

Please see our [contributing guide](./CONTRIBUTING.md).

For more organised improvement proposals, you can send pull requests to [EIP](https://github.com/emqx/eip).

## Resources

- [MQTT client programming](https://www.emqx.com/en/blog/category/mqtt-programming)

A series of blogs to help developers get started quickly with MQTT in PHP, Node.js, Python, Golang, and other programming languages.

- [MQTT SDKs](https://www.emqx.com/en/mqtt-client-sdk)

We have selected popular MQTT client SDKs in various programming languages and provided code examples to help you quickly understand the use of MQTT clients.

- [MQTTX](https://mqttx.app/)

An elegant cross-platform MQTT 5.0 client tool that provides desktop, command line, and web to help you develop and debug MQTT services and applications faster.

- [Internet of Vehicles](https://www.emqx.com/en/blog/category/internet-of-vehicles)

Build a reliable, efficient, and industry-specific IoV platform based on EMQ's practical experience, from theoretical knowledge such as protocol selection to practical operations like platform architecture design.

## License

See [LICENSE](./LICENSE).
Binary file added apps/emqx/metadata/logo.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 34c3dcb

Please sign in to comment.