diff --git a/docs/install/configuration.md b/docs/install/configuration.md index 2f57f84d3b..d5a1420238 100644 --- a/docs/install/configuration.md +++ b/docs/install/configuration.md @@ -113,18 +113,6 @@ Option | Description `driver.options.customHostname.ingressClass` | The name of the Ingress Class that should be used for the custom hostname. Default: not set `driver.options.customHostname.certManagerIssuer` | The name of the CertManager ClusterIssuer to provision HTTPS certificates for custom hostnames. Default: not set -## MQTT Broker configuration - -By default, the platform runs without an MQTT broker. This restricts some features -in the platform, such as the Project Nodes, Device Actions and Remote Device Editing. - -If a broker has been setup in the platform, the following configuration is required: - -Option | Description ---------------|------------ -`broker.url` | The url for the platform to access the broker. For example: `mqtt://localhost:4800`. -`broker.public_url` | The url used by devices to connect to the broker, if different to `broker.url`. For example, this may require devices to use WebSockets instead: `ws://localhost:4881`. - ## Email configuration By default, email is disabled. This restricts some features in the platform around @@ -218,11 +206,26 @@ Option | Description ## MQTT Broker configuration -The platform depends on the [Mosquitto MQTT Broker](https://mosquitto.org/) to -provide real-time messaging between devices and the platform. +The platform uses an MQTT broker to provide real-time messaging between devices, +Node-RED instances and the platform. The broker shipped with the platform's +Docker Compose and Kubernetes installations is [EMQX](https://www.emqx.io/): the +Docker Compose installation includes it by default, and the Helm chart deploys it +when the broker is enabled (`forge.broker.enabled`), which requires the +[EMQX Operator](https://docs.emqx.com/en/emqx-operator/latest/getting-started/getting-started.html#install-emqx-operator) +to be installed on the cluster. This is currently an *optional* component - the platform will work without the -broker, but some features will not be available. +broker, but some features will not be available: + +- Without a broker: Project Nodes, Device Actions and Remote Device Editing are unavailable. +- The following features additionally require the platform broker to be EMQX: + the [Team Broker](/docs/user/teambroker.md), [FlowFuse Expert](/docs/user/expert/) + and live device log and performance views in the platform UI. + +[Mosquitto](https://mosquitto.org/) is supported at a legacy level for existing +installations that manage their own broker: core platform messaging works, but the +EMQX-dependent features listed above are unavailable. Replacing the platform broker +with a different customer-supplied broker is not supported. Option | Description ---------------|-------------- diff --git a/docs/install/kubernetes/README.md b/docs/install/kubernetes/README.md index ec68498e35..51c4425841 100644 --- a/docs/install/kubernetes/README.md +++ b/docs/install/kubernetes/README.md @@ -92,7 +92,7 @@ Before you begin, ensure you have the following: - [Digital Ocean](digital-ocean.md) - MicroK8s 5. **Ingress Controller:** [The Traefik](https://doc.traefik.io/traefik/) installed on the cluster. -6. **EMQX Operator:** This is required to install the required MQTT broker when the Team Broker features are enabled. Instructions for installing the operator can be found [here](https://docs.emqx.com/en/emqx-operator/latest/getting-started/getting-started.html#install-emqx-operator) +6. **EMQX Operator:** This is required to install the platform's MQTT broker when the broker is enabled. Instructions for installing the operator can be found [here](https://docs.emqx.com/en/emqx-operator/latest/getting-started/getting-started.html#install-emqx-operator) For a production-ready environment, we also recommend: * **Database:** Prepare dedicated database on a external database server (see [FAQ](#how-to-use-external-database-server%3F) for more details) diff --git a/docs/upgrade/README.md b/docs/upgrade/README.md index 97decaec8e..7cfa87e092 100644 --- a/docs/upgrade/README.md +++ b/docs/upgrade/README.md @@ -28,6 +28,20 @@ Details of how to upgrade can be found for each deployment model: To upgrade the version of Node-RED your Instances run (for example, moving to Node-RED 5.0), see [Upgrading the Node-RED version](./nodered-version.md). +### Upgrading to 2.31.2 + +#### Kubernetes: MQTT broker is now EMQX + +From Helm chart v2.78.0 (FlowFuse 2.31.2), the chart deploys [EMQX](https://www.emqx.io/) +as the platform MQTT broker, replacing Mosquitto. The migration happens automatically as +part of upgrading the chart; it is not possible to stay on Mosquitto when using the Helm +chart. If the broker is enabled, the +[EMQX Operator](https://docs.emqx.com/en/emqx-operator/latest/getting-started/getting-started.html) +must be installed on the cluster before upgrading, otherwise the upgrade will fail. + +See [MQTT Broker configuration](../install/configuration.md#mqtt-broker-configuration) +for which platform features depend on the broker. + ### Upgrading to 2.6.0 #### Required AWS EKS configuration change diff --git a/docs/user/expert/index.md b/docs/user/expert/index.md index e3978e8e79..6ea0c59045 100644 --- a/docs/user/expert/index.md +++ b/docs/user/expert/index.md @@ -8,6 +8,8 @@ FlowFuse Expert is the AI built into FlowFuse and the Node-RED editor. It is not **FlowFuse Expert is automatically installed and available in all hosted and remote instances running within or connected to FlowFuse**, no manual installation or configuration required. For self-hosted Enterprise customers, FlowFuse Expert can be enabled on request. [Contact us](https://flowfuse.com/contact-us/) to get it set up on your infrastructure. +> **Note:** On self-hosted installations, FlowFuse Expert requires an Enterprise license and the platform's EMQX-based MQTT broker with the Team Broker capability enabled in the platform configuration (see [MQTT Broker configuration](/docs/install/configuration.md#mqtt-broker-configuration)); installations running without EMQX cannot enable Expert. + ## Managing AI Features **Team owners** can enable or disable all AI features for their team from the team settings page. When disabled, the Expert chat panel with all AI feature will get removed for that team. Running instances need to be restarted for the change to take full effect. diff --git a/docs/user/teambroker.md b/docs/user/teambroker.md index a45ae47c2d..1978ee149d 100644 --- a/docs/user/teambroker.md +++ b/docs/user/teambroker.md @@ -6,7 +6,9 @@ navTitle: Team Broker When FlowFuse is deployed with an Enterprise license from v2.11.0 onwards comes with the option to enable a MQTT broker for each Team. -This is a single shared MQTT broker, but each team has their own separate topic space and the ability to provision credentials for clients. +This is a single shared MQTT broker, but each team has their own separate topic space and the ability to provision credentials for clients. It removes the need to install and manage a broker of your own. + +If your company already operates its own MQTT broker, that broker can also be connected to FlowFuse as an external broker to browse its topic hierarchy alongside the Team Broker. ## Foreword FlowFuse offers zero config MQTT integration with the Team Broker via the [FlowFuse MQTT Nodes](/docs/user/mqtt-nodes/) that greatly simplifies the whole process by removing the need for manual configuration.