Add Docker build for browser mode with optimized 3-stage build, multi-platform support, comprehensive UI testing, one-click deployment, enterprise SSO integration, and biweekly CI pipeline - #934
Conversation
Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com>
Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com>
|
@copilot rename to ghcr.io/thomasnordquist/mqtt-explorer Build docker images from raspberry pis as well |
… Node.js 24 Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com>
Done in commit a7742fc:
The workflow will now build for all three platforms automatically. |
Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com>
|
@copilot check webpack build errors, update the docker file so only node-modules required to run the server remain in the image, optimize for small layers |
…yer optimization Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com>
Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com>
Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com>
Completed in commits f822cdc, 3d28977, 785cc42: Webpack fixes:
Docker optimizations:
The image now contains only runtime essentials: compiled code, frontend bundles, and production node_modules. |
|
@copilot run the browser-test test suite against the built docker image |
Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com>
Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com>
Done in commit e7e3913: MQTT broker now configurable:
Workflow configuration:
The browser tests now properly connect to the CI Mosquitto broker service. |
|
@copilot Also publish a docker image with |
The Docker workflow already implements the requested tagging strategy: Current tag configuration (lines 64-67 in docker-browser.yml):
Tags produced:
All images are published to |
|
@copilot check if there are one click solutions to launch docker containers from a readme, like a "try it out" badge |
…form badges Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com>
Head branch was pushed to by a user without write access
Done in commit 8ae915d: One-click deployment solutions added:
Badges visible in:
|
|
@copilot Add an environment variable to skip authentication, so environments that have their own auth can integrate better. |
…tion integration Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com>
Done in commit 8944539: Skip authentication feature added:
Use cases:
Security: The documentation includes prominent warnings that this should ONLY be used when MQTT Explorer is behind a secure authentication layer. |
|
@copilot the socket should inform the frontend that it is authenticated when connecting. (Either requesting auth or confirming no auth required), remove the api endpoint /api/auth-status Also the logout buttons should not be visible |
… when auth disabled Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com>
Done in commit 8beb173: Socket.IO auth-status event:
Logout button hidden when auth disabled:
The authentication flow now works entirely through Socket.IO events, providing better real-time synchronization between frontend and backend. |
Docker Build for Browser Solution
This PR creates a Docker build for the browser solution (MQTT Explorer server mode).
Completed:
Dockerfile.browser)yarn --productiontest:browser) runs against Docker containertest:uitotest:electronfor Electron-specific teststest:browserscript for browser mode tests (runs same UI test suite)test:uias backward-compatible aliasui-testsworkflow job toelectron-testsfor clarityMQTT_EXPLORER_SKIP_AUTHenvironment variableauth-statusevent on connection with authentication stateDocker Image Features:
/app/dataAvailable Tags:
latest- Latest stable from mastermaster,beta,release- Latest from each branch<branch>-<sha>- Specific commitsAuthentication Options:
MQTT_EXPLORER_USERNAMEandMQTT_EXPLORER_PASSWORDenvironment variablesMQTT_EXPLORER_SKIP_AUTH=truefor proxy-based authOne-Click Deployment:
Try MQTT Explorer instantly without installation:
Security Summary:
Original prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.