Skip to content

docs: embedded MQTT broker — configurator option, feature docs, blog post#3063

Merged
Yeraze merged 2 commits into
mainfrom
worktree-docs-embedded-mqtt-broker
May 18, 2026
Merged

docs: embedded MQTT broker — configurator option, feature docs, blog post#3063
Yeraze merged 2 commits into
mainfrom
worktree-docs-embedded-mqtt-broker

Conversation

@Yeraze
Copy link
Copy Markdown
Owner

@Yeraze Yeraze commented May 18, 2026

Summary

Documentation pass for the embedded MQTT broker feature that landed in #3053 + #3054 (resolving #3003).

  • Docker Configurator — new "Expose embedded MQTT broker (port 1883)" toggle under section 8, with an info-box and a coexistence note for users who also have the MQTT Proxy sidecar checked. Emits - "1883:1883" on the meshmonitor service when on.
  • docs/features/mqtt-broker.md — full feature page: the two source types, the two device paths (direct TCP and mqttClientProxyMessage client-proxy), filter semantics, quick-setup walk-through, comparison table against the MQTT Proxy Sidecar and node's built-in MQTT, troubleshooting, limitations. Linked from the Features sidebar.
  • docs/add-ons/mqtt-proxy.md — info callout at the top pointing readers at the new built-in alternative, with a deep-link to the comparison table.
  • docs/blog/2026-05-17-embedded-mqtt-broker.md — release announcement following the established blog-post format (frontmatter with id/title/date/category/priority/minVersion).

Fact-check notes

Every external claim was cross-referenced before drafting:

Version placeholder

The blog post and the feature-doc admonition use 4.6.0 as the minimum version. The active release PR is #3059 (4.5.3, doesn't include the MQTT broker). Adjust the version label before publishing if the feature ships under a different number — the placeholder is in three places:

  • docs/blog/2026-05-17-embedded-mqtt-broker.md frontmatter minVersion: 4.6.0
  • docs/blog/2026-05-17-embedded-mqtt-broker.md title "MeshMonitor 4.6 — …"
  • docs/features/mqtt-broker.md admonition "Added in 4.6"
  • docs/add-ons/mqtt-proxy.md admonition "Built-in alternative since 4.6"

Test plan

  • All five files lint-clean (markdown + Vue + TypeScript).
  • No new broken internal links — all /features/mqtt-broker, /configurator, /add-ons/mqtt-proxy, /features/multi-source, /features/device paths already exist.
  • Visual review of the configurator section in a dev VitePress server (reviewer to confirm the new checkbox + info-box render cleanly).

🤖 Generated with Claude Code

…post

Documentation pass for the MQTT broker feature merged in PRs #3053
(embedded broker + bidirectional bridges) and #3054 (client-proxy
bridge follow-up), which together resolved issue #3003.

- `docs/.vitepress/theme/DockerComposeConfigurator.vue` — new
  "Expose embedded MQTT broker (port 1883)" checkbox under section 8.
  When enabled, emits `- "1883:1883"` on the meshmonitor service.
  Adds an info-box with the post-deploy setup steps and the
  Aedes / MQTT 3.1.1 / IANA-port reference, plus a small advisory when
  both the embedded broker AND the LN4CY proxy sidecar are selected
  (they coexist but most users only need one).
- `docs/features/mqtt-broker.md` — new feature page covering the two
  source types (`mqtt_broker`, `mqtt_bridge`), the two device paths
  (direct TCP and client-proxy via `mqttClientProxyMessage`), filter
  semantics, a quick setup walk-through, and the side-by-side
  comparison table against the MQTT Proxy Sidecar and the firmware's
  built-in MQTT. Linked from the Features sidebar.
- `docs/add-ons/mqtt-proxy.md` — adds an "info" callout at the top
  pointing readers at the new built-in broker alternative, with a
  deep-link to the comparison table.
- `docs/blog/2026-05-17-embedded-mqtt-broker.md` — release announcement.
  References issue #3003, PRs #3053 / #3054 / #3060, the relevant
  Meshtastic protobuf files for `proxy_to_client_enabled` and
  `MqttClientProxyMessage`, and meshtastic.org/docs for the firmware
  side. Version 4.6.0 used as a placeholder — adjust before release if
  the feature ships under a different number.

Every claim cross-referenced against the package.json (aedes ^1.0.2,
mqtt ^5.15.1), the vendored protobufs in /protobufs/meshtastic/
(MqttClientProxyMessage in mesh.proto, proxy_to_client_enabled in
module_config.proto), the merged PRs, and meshtastic.org upstream
docs.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 18, 2026

Claude finished @Yeraze's task —— View job


PR Review: Embedded MQTT Broker Documentation

Comprehensive review of this documentation PR for the embedded MQTT broker feature.

Review Summary

This is a high-quality documentation PR that properly documents the new embedded MQTT broker feature. The code changes are clean and the documentation is comprehensive.

✅ Strengths

Vue Component (DockerComposeConfigurator.vue):

  • Excellent Vue 3 Composition API usage - Clean reactive refs, computed properties, and proper event handling
  • Smart dependency handling - Lines 667-671 automatically enable Virtual Node when MQTT Proxy is selected
  • Clear user guidance - Lines 504-516 provide comprehensive setup instructions with external links
  • Proper Docker configuration - Lines 776-779 correctly expose port 1883 with descriptive comment
  • Coexistence awareness - Lines 528-531 warn users about potential overlap with MQTT Proxy sidecar

Documentation Quality:

  • Comprehensive feature documentation - /docs/features/mqtt-broker.md covers all aspects thoroughly
  • Proper cross-referencing - Links between related docs are accurate and helpful
  • Well-structured blog post - Follows established format with proper frontmatter
  • Good comparison tables - Clear feature comparison between alternatives
  • Troubleshooting section - Addresses common setup issues

⚠️ Minor Issues

Code Quality:

  • Template complexity - The section numbering logic using ternary operators (lines 174, 195, 245, 403, 569 in DockerComposeConfigurator.vue) makes maintenance harder. Consider a computed property for cleaner section numbering.

Documentation:

  • Version placeholder consistency - The PR description mentions 4.6.0 version placeholders need adjustment if the feature ships under a different version number

🔒 Security Assessment

  • No credential exposure - Passwords properly handled through .env file generation
  • Proper port binding - MQTT broker port exposure is opt-in via checkbox
  • No XSS vulnerabilities - Template uses proper Vue binding and escaping
  • No raw SQL or injection risks - This is documentation-only

📋 Test Coverage Assessment

  • Appropriate for documentation PR - No unit tests needed for docs changes
  • Vue component follows existing patterns - Uses same reactive patterns as rest of configurator
  • Author verified fact-checking - PR description shows thorough verification of external claims

🎯 Performance Considerations

  • Minimal performance impact - Only adds conditional template rendering
  • Proper form reactivity - No unnecessary re-renders or computations

📝 Recommendations

  1. Consider refactoring section numbering in DockerComposeConfigurator.vue:174+:

    const sectionNumber = computed(() => ({
      ports: config.value.deploymentMode === 'production-proxy' ? 5 : 4,
      security: config.value.deploymentMode === 'production-proxy' ? 6 : 5,
      // ... etc
    }))
  2. Version number coordination - Remember to update the version placeholders mentioned in the PR description when the release version is finalized.

🏁 Overall Assessment

This is an exemplary documentation PR that thoroughly covers a complex new feature. The Vue component changes are well-implemented with good UX considerations. The documentation is comprehensive, well-structured, and properly cross-referenced. No blocking issues found.

Recommendation: ✅ APPROVE - This PR is ready to merge.


…er cards

Front-page feature cards got reorganised and tightened — each card now
fits in 1-2 sentences instead of full paragraphs. Two new cards added
between Multi-Source Networks and the existing entries:

- **MeshCore Support** — promotes MeshCore from a buried sentence in
  the Multi-Source card to its own top-level entry, matching how
  MeshCore was elevated in 4.5.0 (first-class source type, per-source
  permissions, multi-pane page).
- **Embedded MQTT Broker** — describes the 4.6 broker + bridges
  feature: bidirectional bridges to public upstreams with filter rules
  (topic / channel / portnum / geographic bounding box).

Also fixed the "MQTT is coming soon" line in the Multi-Source
Dashboard screenshot caption — it shipped, so the caption now lists
the embedded broker alongside Meshtastic TCP and USB MeshCore.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 18, 2026

Claude finished @Yeraze's task —— View job


PR Review: Embedded MQTT Broker Documentation

Comprehensive review of this documentation PR for the embedded MQTT broker feature.

Review Summary

This is a high-quality documentation PR that properly documents the new embedded MQTT broker feature. The code changes are clean and the documentation is comprehensive.

✅ Strengths

Vue Component (DockerComposeConfigurator.vue):

  • Excellent Vue 3 Composition API usage - Clean reactive refs, computed properties, and proper event handling
  • Smart dependency handling - Lines 667-671 automatically enable Virtual Node when MQTT Proxy is selected
  • Clear user guidance - Lines 504-516 provide comprehensive setup instructions with external links
  • Proper Docker configuration - Lines 776-779 correctly expose port 1883 with descriptive comment
  • Coexistence awareness - Lines 528-531 warn users about potential overlap with MQTT Proxy sidecar

Documentation Quality:

  • Comprehensive feature documentation - /docs/features/mqtt-broker.md covers all aspects thoroughly
  • Proper cross-referencing - Links between related docs are accurate and helpful
  • Well-structured blog post - Follows established format with proper frontmatter
  • Good comparison tables - Clear feature comparison between alternatives
  • Troubleshooting section - Addresses common setup issues

⚠️ Minor Issues

Code Quality:

  • Template complexity - The section numbering logic using ternary operators (lines 174, 195, 245, 403, 569 in DockerComposeConfigurator.vue) makes maintenance harder. Consider a computed property for cleaner section numbering.

Documentation:

  • Version placeholder consistency - The PR description mentions 4.6.0 version placeholders need adjustment if the feature ships under a different version number

🔒 Security Assessment

  • No credential exposure - Passwords properly handled through .env file generation
  • Proper port binding - MQTT broker port exposure is opt-in via checkbox
  • No XSS vulnerabilities - Template uses proper Vue binding and escaping
  • No raw SQL or injection risks - This is documentation-only

📋 Test Coverage Assessment

  • Appropriate for documentation PR - No unit tests needed for docs changes
  • Vue component follows existing patterns - Uses same reactive patterns as rest of configurator
  • Author verified fact-checking - PR description shows thorough verification of external claims

🎯 Performance Considerations

  • Minimal performance impact - Only adds conditional template rendering
  • Proper form reactivity - No unnecessary re-renders or computations

📝 Recommendations

  1. Consider refactoring section numbering in DockerComposeConfigurator.vue:174+:

    const sectionNumber = computed(() => ({
      ports: config.value.deploymentMode === 'production-proxy' ? 5 : 4,
      security: config.value.deploymentMode === 'production-proxy' ? 6 : 5,
      // ... etc
    }))
  2. Version number coordination - Remember to update the version placeholders mentioned in the PR description when the release version is finalized.

🏁 Overall Assessment

This is an exemplary documentation PR that thoroughly covers a complex new feature. The Vue component changes are well-implemented with good UX considerations. The documentation is comprehensive, well-structured, and properly cross-referenced. No blocking issues found.

Recommendation: ✅ APPROVE - This PR is ready to merge.

@Yeraze Yeraze merged commit 34417f4 into main May 18, 2026
18 checks passed
@Yeraze Yeraze deleted the worktree-docs-embedded-mqtt-broker branch May 18, 2026 01:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant