Updates of Tutorials and adding new ones#160
Conversation
Removed unnecessary tip and caution formatting from the tutorial.
Added prerequisites and steps for creating a flow rule to convert Celsius to Fahrenheit.
Clarified the tutorial introduction for better understanding.
Added tips, notes, and cautions to enhance tutorial clarity.
Updated tutorial structure and content for clarity and organization.
Added sidebar position and improved tutorial content for clarity.
Updated tutorial to clarify the role of OpenRemote as a gateway for Modbus devices and improved formatting with tips and notes.
Added next steps for deploying a local edge gateway.
Updated section headers to include step numbers for better organization.
Updated tutorial steps for clarity and consistency in formatting.
Updated tutorial to include sidebar position and refined title.
Updated tutorial to include sidebar position and enhanced content on OTA firmware updates with Eclipse hawkBit.
There was a problem hiding this comment.
Pull request overview
This PR expands and reorganizes the Tutorials section by adding several new end-to-end guides (multi-tenancy/white-labeling, enterprise identity, auto-provisioning, Modbus, OTA updates) and adjusting tutorial ordering via sidebar_position updates.
Changes:
- Added new tutorials covering white-label multi-tenancy, enterprise identity (SSO/RBAC), device auto-provisioning, Modbus connectivity, and OTA firmware updates (hawkBit).
- Refreshed existing tutorials to use clearer step-based headings and updated the weather tutorial intro to mention the dedicated OpenWeatherMap Agent.
- Reordered tutorials in the sidebar by updating
sidebar_positionvalues.
Reviewed changes
Copilot reviewed 11 out of 11 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| docs/tutorials/white-label-multi-tenant-iot-platform.md | New tutorial on realms-based multi-tenancy and per-tenant branding. |
| docs/tutorials/open-weather-api-using-http-agent.md | Updated title/intro and added note pointing to the dedicated OpenWeatherMap Agent; sidebar reorder. |
| docs/tutorials/connect-your-mqtt-client.md | Converted headings to step-based structure; sidebar reorder. |
| docs/tutorials/receive-lorawan-sensor-data-from-chirpstack.md | Sidebar reorder only. |
| docs/tutorials/simulating-data-in-attribute.md | Sidebar reorder only. |
| docs/tutorials/change-celsius-to-fahrenheit-with-flow.md | Added prerequisites + step structure; sidebar reorder. |
| docs/tutorials/configure-mobile-app-behaviour.md | Step-based headings; sidebar reorder. |
| docs/tutorials/connect-modbus-devices.md | New tutorial for Modbus TCP/RTU connectivity via Modbus agent. |
| docs/tutorials/enterprise-identity-sso-rbac.md | New tutorial covering SSO/OIDC, RBAC, restricted users, and service users. |
| docs/tutorials/auto-provision-devices-at-scale.md | New tutorial describing X.509-based auto-provisioning at scale. |
| docs/tutorials/ota-firmware-updates-with-hawkbit.md | New tutorial explaining hawkBit-based OTA rollout workflow. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Updated sidebar position and removed keywords for clarity.
Removed title and description from the tutorial header.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
| 1. Switch to the realm you want to brand (realm picker, top-right). | ||
| 2. Go to **Settings → Appearance**. | ||
| 3. Upload your **logo**, **mobile logo** and **favicon**, set the **app title** (e.g. `ACME IoT`), and configure the colour variables to match your brand. | ||
| 4. Configure map defaults, navigation items and default language for that realm. |
There was a problem hiding this comment.
Users might clicking the "Save" button to persist the changes.
| 3. Upload your **logo**, **mobile logo** and **favicon**, set the **app title** (e.g. `ACME IoT`), and configure the colour variables to match your brand. | ||
| 4. Configure map defaults, navigation items and default language for that realm. | ||
|
|
||
| For a fully reproducible, version-controlled setup, define the same values in a `manager_config.json` instead: |
There was a problem hiding this comment.
It would help to tell users where this file is located.
|
|
||
| ## Step 3 — Serve each tenant on its own domain (optional) | ||
|
|
||
| Point your customer's domain (e.g. `iot.acme.com`) at the Docker host running the OpenRemote stack and set the `OR_HOSTNAME`/proxy configuration. The built-in HAProxy-based reverse proxy provisions TLS/SSL automatically (Let's Encrypt), so each branded tenant is served securely over HTTPS without extra tooling. |
There was a problem hiding this comment.
I think the realm query parameter always needs to be specified in the URL to be able to login to.
To be able to use different hostnames per customers you'd also need to configure this in Keycloak (Valid redirect URIs) and set OR_ADDITIONAL_HOSTNAMES in the manager environment variables.
|
|
||
| ## Prerequisites | ||
|
|
||
| - A running OpenRemote instance — see the [Quick Start](https://docs.openremote.io/docs/quick-start). |
There was a problem hiding this comment.
Use relative URLs instead of docs.openremote.io so links keep working if you run the docs locally or browse them on GitHub. This will also make sure links point to the page within the same version instead of the latest version (where the page may no longer exist).
This is also an issue with all the other links added in this PR.
| - A running OpenRemote instance — see the [Quick Start](https://docs.openremote.io/docs/quick-start). | |
| - A running OpenRemote instance — see the [Quick Start](../quick-start). |
|
|
||
| ## Step 1 — Create a Modbus agent | ||
|
|
||
| 1. On the **Assets** page, click **+** and add a **Modbus TCP Agent** (or **Modbus RTU Agent**). |
There was a problem hiding this comment.
There are the "Modbus serial agent" and "Modbus tcp agent". The "Modbus RTU Agent" does not exist.
No description provided.