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.3. 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.3.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.3-py3-none-any.whl (2.7 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: macrosignage-0.2.3.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.3.tar.gz
Algorithm Hash digest
SHA256 f8da9da7b0ffee7697fbb7c3d29fec2fc2630d4eb2956537db2576c40e7c5e46
MD5 822b8fa7df6636950b3fc9957ad42d3a
BLAKE2b-256 63ee3d471afc40f69c4f014903f17232eda3ff498780c2e6191d7a68c15e5ba1

See more details on using hashes here.

Provenance

The following attestation bundles were made for macrosignage-0.2.3.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.3-py3-none-any.whl.

File metadata

  • Download URL: macrosignage-0.2.3-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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 a297fb05b0dbcd8cc659e982e27a68bcda30ded35c72dc89c848f5820f239a02
MD5 3996a0cdaa2d3ad56d076dbb66b6b1f5
BLAKE2b-256 96c7f54c785ef54af01f5fc1bd78cc25c7c6f842a187d8a05d8f547bc8b6c78d

See more details on using hashes here.

Provenance

The following attestation bundles were made for macrosignage-0.2.3-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