selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

magic-frame logo

Self-host magic-frame

v1.5.10

Drag-and-drop home dashboard for tablets and picture frames

ReleaseSource AvailableOther
Updated8 hours ago
LanguageTypescript
Setup difficultyModerate
MobileResponsive
ThemeDark mode
Stars
511
Ports
80 (HTTP (Caddy reverse proxy)), 443 (HTTPS (Caddy reverse proxy with automatic Let's Encrypt)), 3000 (Internal app port (exposed only within Docker network))
Requires
PostgreSQL
Docker
ghcr.io/jeremiaa/magic-frame-app
Control center dashboard with welcome screen, status strip, and view thumbnailsViews page showing layout thumbnails for Kitchen, Preview, and Tablet displaysDrag-and-drop layout editor with widget catalog on the left and 24-column grid on the rightPicture frame mode on a small framed tablet with HA scene buttons and wallpaperWall-mounted portrait monitor as family board with clock, calendar, notifications, and weatherClose-up of notification tiles showing washing machine done, feed reminder, dryer done

What is magic-frame?

Magic Frame is a self-hosted dashboard for turning any browser-capable screen into a versatile home display. It works as a family board with shopping lists, calendars, and weather; a smart-home hub with live Home Assistant entity updates, camera feeds, and scene buttons; a picture frame rotating wallpapers from Immich or WebDAV; and a status display showing device activity. A drag-and-drop editor on a 24-column grid lets you build layouts with live preview, and changes sync to all connected displays in under 100 ms via WebSocket. It runs via Docker Compose with pre-built multi-arch images (works on Raspberry Pi 4/5), as a Home Assistant add-on, or on Kubernetes via a community Helm chart. The license is Polyform Noncommercial 1.0.0 — free for non-commercial use by individuals, households, clubs, NGOs, and schools; commercial use requires a separate license.

Should you self-host magic-frame?

magic-frame scores 52/100 on selfhost.directory (how scoring works) and ranks #58 of 104 in Home Automation. It has 511 GitHub stars.

It shipped 21 stable releases in the past year. The latest, v1.5.10, came out on 27 October 2026. New versions land roughly every 3 days.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is Other-licensed and written mostly in Typescript.

Its closest alternative on selfhost.directory is home-screens (50/100, 89 stars). magic-frame scores higher overall. See magic-frame vs home-screens side by side.

Features

  • 2FA TOTP authentication
  • Automatic HTTPS with Let's Encrypt
  • Calendar widgets
  • Custom widgets via JS modules
  • Drag-and-drop dashboard editor
  • Family widgets
  • Home Assistant Integration
  • Immich wallpaper integration
  • Live sync across displays
  • MCP server for AI agents
  • Media player widget
  • Notification tiles
  • Picture frame mode
  • Status cards
  • Weather widgets

magic-frame README

How to configure magic-frame

  • APP_BASE_URLBase URL where dashboard is reachable (for OAuth callbacks)

    Base URL where dashboard is reachable (for OAuth callbacks)

  • APP_UPSTREAMAddress Caddy uses to reach the app (for Kubernetes)

    Address Caddy uses to reach the app (for Kubernetes)

  • CADDY_ADMIN_URLhttp://caddy:2019Caddy admin API URL for reloads

    Caddy admin API URL for reloads

  • COOKIE_SECURESet to true when HTTPS is active

    Set to true when HTTPS is active

    values: true, false

  • DATABASE_URLpostgresql://postgres:postgres@db:5432/magicdashboard?schema=publicPostgreSQL connection string

    PostgreSQL connection string

  • GOOGLE_CLIENT_IDGoogle Calendar OAuth client ID

    Google Calendar OAuth client ID

  • GOOGLE_CLIENT_SECRETGoogle Calendar OAuth client secret

    Google Calendar OAuth client secret

  • HTTP_PORT80Host HTTP port

    Host HTTP port

  • HTTPS_PORT443Host HTTPS port

    Host HTTPS port

  • MAGIC_FRAME_HA_ACTION_UNRESTRICTEDDisable entity allowlist for HA actions

    Disable entity allowlist for HA actions

    values: 1

  • MAGIC_FRAME_UPDATE_REPOjeremiaa/magic-frameGitHub repo to check for updates

    GitHub repo to check for updates

  • MS_CLIENT_IDMicrosoft/Outlook Calendar OAuth client ID

    Microsoft/Outlook Calendar OAuth client ID

  • MS_CLIENT_SECRETMicrosoft/Outlook Calendar OAuth client secret

    Microsoft/Outlook Calendar OAuth client secret

  • OPENWEATHERMAP_API_KEYOpenWeatherMap API key for weather widget

    OpenWeatherMap API key for weather widget

  • SESSION_SECRETSession cookie encryption key (min 32 chars)

    Session cookie encryption key (min 32 chars)

  • TRUSTED_PROXY_HOPS1Number of reverse proxies before Magic Frame

    Number of reverse proxies before Magic Frame

  • TZIANA timezone for containers

    IANA timezone for containers

magic-frame releases & version history

More in Digital Signage

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…