{% extends 'layouts/_base.html' %} {% set repo_url = 'https://github.com/BaezFJ/MacroSignage' %} {% set issues_url = repo_url ~ '/issues' %} {% set pypi_url = 'https://pypi.org/project/MacroSignage/' %} {% set license_url = repo_url ~ '/blob/master/LICENSE' %} {% block body %} Skip to content

Open Source · MIT Licensed

Self-hosted digital signage, controlled from your browser.

MacroSignage is a Flask-based platform for managing screens, scheduling playlists, and serving signage content across any number of displays — all from a single web console you run on your own hardware.

100% Open Source — server and client.

Both packages are released under the MIT License. Self-host on a Raspberry Pi, a NAS, or a fleet of cloud VMs. No telemetry, no lock-in, no per-screen pricing.

Read the license

Features

Everything you need to run signage at scale.

A focused toolkit for the everyday operator — register a display, drop in media, build a schedule, walk away.

Display Management

Register screens, group them by location or zone, and monitor health (online · offline · maintenance) at a glance.

Rich Media Library

Mix images, video, plain text, raw HTML, and YouTube embeds. One library, every common signage format.

Schedules & Playlists

Build active windows with weekday rules, target specific displays, and rotate playlists automatically.

Multi-screen Targeting

Many-to-many assignment between media and displays. Push the right content to the right wall — never both.

Self-hosted & Private

Runs on your network. Your media, your schedules, your audit trail — CSRF-protected forms and login sessions out of the box.

Modern Stack

Flask 3 + SQLAlchemy on the server, Bootstrap 5.3 on the client. Familiar, batteries-included, easy to extend.

Built on

A familiar, boring-on-purpose stack.

  • Flask 3.1+
  • SQLAlchemy
  • Flask-Login
  • Flask-WTF
  • Bootstrap 5.3
  • Animate.css
  • Waitress
  • SQLite
  • Python 3.10+

Quick start

Up and running in under a minute.

Install from PyPI, or clone the repo for development.

From PyPI

pip install MacroSignage
macrosignage dev

Then open http://127.0.0.1:5000 in your browser.

From source

git clone https://github.com/BaezFJ/MacroSignage.git
cd MacroSignage
uv venv && source .venv/bin/activate
uv sync --all-groups
macrosignage dev

Production: macrosignage prod --host 0.0.0.0 --port 8080

Roadmap

Where MacroSignage is heading.

Pre-Alpha today (v0.2.3). Tracking toward a stable v1.0.

  1. v0.2

    Foundation

    App factory, configuration system, DB, auth scaffolding, test suite.

  2. v0.3

    Core Features

    Admin dashboard, media management, display registration & assignment.

  3. v0.4

    Scheduling & Playback

    Time-based rotation, fullscreen player view, playlist management.

  4. v0.5

    Polish & Scale

    REST API, real-time updates, multi-user roles, GitHub Actions CI.

  5. v1.0

    Stable Release

    Production-hardened, full docs, deployment guides for Docker & systemd.

{% endblock %}