Skip to main content

Web-based Digital Signage System

Project description

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.4. 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, and slider 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

macrosignage-0.2.4.tar.gz (2.7 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

macrosignage-0.2.4-py3-none-any.whl (2.7 MB view details)

Uploaded Python 3

File details

Details for the file macrosignage-0.2.4.tar.gz.

File metadata

  • Download URL: macrosignage-0.2.4.tar.gz
  • Upload date:
  • Size: 2.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for macrosignage-0.2.4.tar.gz
Algorithm Hash digest
SHA256 7a9ddf5d7b9b41b928b794a768e79396a2a6de838e5eddd9473fb5b68ef899b7
MD5 58902517b1163b7606803f3260c96573
BLAKE2b-256 032963f1bf2517b7a9895203bed18794178eaa52fa9e1c5fbf28916146a5f3c7

See more details on using hashes here.

Provenance

The following attestation bundles were made for macrosignage-0.2.4.tar.gz:

Publisher: publish-pypi.yml on BaezFJ/MacroSignage

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file macrosignage-0.2.4-py3-none-any.whl.

File metadata

  • Download URL: macrosignage-0.2.4-py3-none-any.whl
  • Upload date:
  • Size: 2.7 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for macrosignage-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 c36a47e36616769be367aa9b60ec46e9efc1e46d15c1287e26a66fcb1ed0edae
MD5 33afc760c8ec4c4da38ceae7ec36760b
BLAKE2b-256 431dd11dd0180abda31851f60c11da8ceee44dfe383bad78c42ad71fe03d5507

See more details on using hashes here.

Provenance

The following attestation bundles were made for macrosignage-0.2.4-py3-none-any.whl:

Publisher: publish-pypi.yml on BaezFJ/MacroSignage

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page