Skip to main content

MacroSignage

PyPI version Python versions License CI

MacroSignage is a Flask-based digital signage manager with an admin console, token-secured display players, scheduling, media playback, REST API access, and a standalone pywebview display client.

Status: Pre-alpha v0.2.5. Data models and API contracts can change before v1.0.

Features

  • Admin dashboard with recent activity, diagnostics, and settings pages.
  • Display CRUD with online, offline, and maintenance states.
  • Token-secured display player pairing with remote disable/rotation.
  • Media CRUD for images, text, video, HTML, YouTube, slider, neon sign, and vCard QR media.
  • Slider media with backgrounds, foreground images, fonts, positions, durations, and Animate.css effects.
  • Schedule CRUD with active windows, weekday rules, display targets, playlists, and no-active-schedule fallback.
  • Auth, password reset flow, user CRUD, RBAC, and API token lifecycle management.
  • REST API for displays, media, schedules, users, fonts, settings, health, and player playlists.
  • Server-sent events for display player refresh.
  • Global logo overlay settings and managed Google Fonts.
  • SQLite by default with configurable Flask-SQLAlchemy database URI support.
  • Waitress-backed production CLI plus systemd and Docker examples.
  • Separate pywebview client package with GitHub Release executables.

Quick Start

Install from PyPI:

pip install MacroSignage
macrosignage dev

Or run from source:

git clone https://github.com/BaezFJ/MacroSignage.git
cd MacroSignage
uv sync --all-groups
cp .env.example .env
uv run macrosignage dev

Open http://127.0.0.1:5000, then create the first admin account at /auth/setup.

Production

Use the dedicated production script behind a reverse proxy:

MACROSIGNAGE_SECRET_KEY='replace-with-a-long-random-secret' \
MACROSIGNAGE_DATABASE_URI='sqlite:////var/lib/macrosignage/macrosignage.sqlite3' \
MACROSIGNAGE_MEDIA_UPLOAD_FOLDER='/var/lib/macrosignage/media' \
MACROSIGNAGE_SESSION_COOKIE_SECURE=true \
macrosignage-prod --host 127.0.0.1 --port 8080 --threads 4

See Deployment for systemd, Docker, HTTPS, health checks, backups, restore, and rollback.

Client Executables

Prebuilt standalone display client executables are available on the GitHub Releases page:

https://github.com/BaezFJ/MacroSignage/releases

The client source package lives in client/. See Standalone Client.

Documentation

Start with docs/index.md.

Core guides:

Development Commands

uv lock --check
uv run python -m pytest
uv run python -m unittest discover -s tests
uv run python -m compileall src/macrosignage tests
uv build
uv run twine check dist/*

Release Automation

  • CI runs on pull requests and pushes to main.
  • PyPI publishing runs when a v* tag is pushed.
  • Client executable build and release workflows produce Windows, macOS, and Linux assets.
  • Release documentation review is tracked in the checklist.

v1.0 Remaining Work

  • Production-hardened and fully tested (roadmap)
  • Complete documentation (roadmap)
  • Deployment guides for Docker, systemd, health checks, backups, and rollback

License

MacroSignage is licensed under the MIT License. See LICENSE.

Copyright (c) 2022 Javier Baez

Links

GitHub Repository | PyPI Package | Issue Tracker

Release files for MacroSignage 0.2.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for MacroSignage 0.2.5
File Size Uploaded
macrosignage-0.2.5.tar.gz 2.7 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for MacroSignage 0.2.5
File Interpreter ABI Platform
macrosignage-0.2.5-py3-none-any.whl Python 3 none any Details

Total release size: 5.4 MB

Release files / macrosignage-0.2.5.tar.gz

Download URL macrosignage-0.2.5.tar.gz
Size 2.7 MB
Tags Source
SHA-256 checksum
How to use checksums
eb61fa25c6a604a4164579336b917a2d05d7752c4683c3170d7a3b4d0ae2a293
BLAKE2b-256 checksum
How to use checksums
0d3b1f81ada7a4a91cb05192dfd11950428275a5f14fc7d75fa3ee9679cae4b8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 7, 2026.

Transparency log

Release files / macrosignage-0.2.5-py3-none-any.whl

Download URL macrosignage-0.2.5-py3-none-any.whl
Size 2.7 MB
Tags Python 3
SHA-256 checksum
How to use checksums
7228a75ef86f9abd4ce3b0c8a6495434b80aa272c9a6c6a773a2dfbb20cceaf2
BLAKE2b-256 checksum
How to use checksums
b4d4f281e355108336cf94fb44e4fe40fe465b324d37c5f9e44cd25921e060dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 7, 2026.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page