MagicMirror as a Photo Frame and Dashboard
I liked the ambient photo slideshows on Google Home displays, but wanted something more extensible—calendar, weather, commute times for me and my wife, what’s playing on Spotify.
Looked at TRMNL since they recently added LCD and color support, but the setup seemed more involved than I wanted. MagicMirror was simpler: web app that runs in Docker, huge module ecosystem, and I could get it working in an afternoon.
Hardware
- Raspberry Pi 3 running Chromium in kiosk mode
- Acer monitor I got on sale on eBay
Modules I’m Using
Built-in:
- Clock + Calendar (syncs work and personal Google calendars)
- Weather via OpenMeteo (no API key needed)
Third-party:
- MMM-BackgroundSlideshow - cycles through photos from my NAS
- MMM-MyCommute - commute times to my office and my wife’s
- MMM-NowPlayingOnSpotify - shows current track
- MMM-KeyBindings - arrow keys to manually skip photos
- MMM-Remote-Control - web API for controlling it remotely
Setup
MagicMirror runs in Docker on my NAS, not on the Pi itself. The Pi just runs Chromium pointing at the NAS. This way I can update the config without touching the Pi.
Photos are mounted from my NAS photo library. Had to run the container as root to read the NAS mount—not ideal but it works.
The commute module needs a Google Maps API key with Directions API enabled. Spotify module needs a Spotify developer app. Both straightforward to set up.
What I’d Change
The third-party modules don’t persist after container restarts—have to reinstall them manually. Could fix this by building a custom Docker image with the modules baked in, but hasn’t bothered me enough yet.
Links: MagicMirror