A New Chapter for MagicMirror: The Community Takes the Lead
Read the statement by Michael Teeuw here.

Categories

  • Announcements regarding the MagicMirror software and forum.

    66 Topics
    427 Posts
    karsten13K
    Release Notes Thanks to: @cgillinger, @khassel, @KristjanESPERANTO, @sonnyb9 ⚠️ This release needs nodejs version >=22.21.1 <23 || >=24 (no change to previous release) Compare to previous Release v2.35.0 This release falls outside the quarterly schedule. We opted for an early release due to: Security fix for the internal cors proxy API change of the weather provider smi Several bug fixes Breaking Changes The cors proxy is now disabled by default. If required, it must be explicitly enabled in the config.js file. See the documentation. ⚠️ Security You can find several publicly accessible MagicMirror² instances. This should never be done. Doing so makes your entire configuration, including secrets and API keys, publicly visible. Furthermore, it allows attackers to target the host; this is only prevented beginning with this release. Public MagicMirror² instances should always run behind a reverse proxy with authentication. [core] Prepare Release 2.36.0 (#4126) Allow HTTPFetcher to pass through 304 responses (#4120) fix(http-fetcher): fall back to reloadInterval after retries exhausted (#4113) config endpoint must handle functions in module configs (#4106) fix replaceSecretPlaceholder (#4104) restrict replaceSecretPlaceholder to cors with allowWhitelist (#4102) fix: prevent crash when config is undefined in socket handler (#4096) fix cors function for alpine linux (#4091) fix(cors): prevent SSRF via DNS rebinding (#4090) add option to disable or restrict cors endpoint (#4087) fix: prevent SSRF via /cors endpoint by blocking private/reserved IPs (#4084) chore: add permissions section to enforce pull-request rules workflow (#4079) update version for develop [dependencies] update dependencies (#4124) chore: update dependencies (#4088) refactor: enable ESLint rule “no-unused-vars” and handle related issues (#4080) [modules/newsfeed] fix(newsfeed): prevent duplicate parse error callback when using pipeline (#4083) [modules/updatenotification] fix(updatenotification): harden git command execution + simplify checkUpdates (#4115) fix(tests): correct import path for git_helper module in updatenotification tests (#4078) [modules/weather] fix(weather): use nearest openmeteo hourly data (#4123) fix(weather): avoid loading state after reconnect (#4121) weather: fix UV index display and add WeatherFlow precipitation (#4108) fix(weather): restore OpenWeatherMap v2.5 support (#4101) fix(weather): use stable instanceId to prevent duplicate fetchers (#4092) SMHI: migrate to SNOW1gv1 API (replace deprecated PMP3gv2) (#4082) [testing] ci(actions): set explicit token permissions (#4114) fix(http_fetcher): use undici.fetch when dispatcher is present (#4097) ci(codeql): also scan develop branch on push and PR (#4086) refactor: replace implicit global config with explicit global.config (#4085)
  • Discuss the MagicMirror² core framework.

    493 Topics
    4k Posts
    S
    @Bungle68 there is no auto update. You can go the manual install/update or use the scripted install/update. For the base. See the doc, alternative install My script are first there There are various mechanisms for modules
  • Anything harware related can be found here.

    797 Topics
    7k Posts
    B
    It’s easy to forget that while OLED is the biggest concern for burn-in, older LCDs can still suffer from image persistence if things stay static for too long. Moving the modules around slightly or using a screen saver script is such a practical way to extend the life of the hardware.
  • Add exciting new features to your mirror.

    6k Topics
    58k Posts
    A
    Hi everyone! I wanted to share something that came from my own frustration developing MagicMirror modules. For years, testing a module meant either setting up a full MagicMirror installation (overkill for just iterating on one module), or developing blind and hoping it works when you finally deploy. I built MagicMirror Module Sandbox to change that. It’s a lightweight dev tool that spins up a local testing environment for your module in seconds — no full MagicMirror install, no Docker, just your module and a browser window. [image: 1777687821836-runtime-lifecycle.png] What you get: 🚀 Zero setup — Run npx @angeldeejay/magicmirror-module-sandbox from inside your module folder and you’re done ⚡ Live reload — Changes to your config or module files reload instantly 🎛️ Visual config editor — Edit your module’s config through a browser UI instead of hand-editing JSON 🔄 Full MagicMirror lifecycle — Simulates start(), notificationReceived(), updateDom(), and all real lifecycle hooks 🔌 Real node_helper.js support — Socket.io communication works exactly like production 🐛 Debug panel — Inspect both helper logs (server-side) and browser console in one place 📡 Notifications inspector — Send frontend notifications, monitor socket traffic in real time ✅ Module quality check — Quick analysis against MagicMirror’s third-party module standards How to use it: One-off test (no install needed) npx @angeldeejay/magicmirror-module-sandbox Then open http://localhost:3010 and start hacking. Works great for: Rapid iteration while developing Validating config changes before deploying to your Pi Testing in CI pipelines (Playwright integration test support included) Debugging why a module behaves differently on the actual MagicMirror GitHub: https://github.com/angeldeejay/magicmirror-module-sandbox npm: https://www.npmjs.com/package/@angeldeejay/magicmirror-module-sandbox This is v1.1.0, tested across real third-party modules. Stable and ready to use. If you’re a module developer, I’d love to hear what you think — open issues if something doesn’t behave as expected, or let me know what you’d like to see next.
  • Make your mirror your own but modifying its appearance.

    433 Topics
    3k Posts
    S
    @kkmirr04 can you try release 2.36 just released.
  • Share your project story with pictures.

    577 Topics
    5k Posts
    J
    @mrchips83 Thanks for sharing. Interest is peeked again! Think I’m going to dive back into MM.
  • You have a problem with your mirror? Ask for help.

    5k Topics
    36k Posts
    1
    @sdetweil many thanks for your help once again sam!
  • A place to talk about whatever you want.

    1k Topics
    10k Posts
    mumblebajM
    @miriamburrell If those can be linked to Strava then MMM-Strava can be used. I still use MMM-Strava and it still works fine but I am using Suunto watch connected to Strava and I can then display that via the MMM-Strava module.