2026-08-05 21:05:43 +01:00
2026-08-01 21:41:44 +01:00
2026-08-03 17:30:19 +01:00
2026-08-05 21:05:43 +01:00
2026-08-05 21:05:43 +01:00
2026-08-01 21:41:44 +01:00
2026-08-05 19:38:16 +01:00
2026-08-05 21:05:43 +01:00
2026-08-03 12:45:27 +01:00
2026-08-03 17:27:42 +01:00
2026-08-05 21:05:43 +01:00
2026-08-05 21:05:43 +01:00
2026-08-03 12:45:27 +01:00

Pulse Signage

Pulse Signage is a self-hosted digital signage platform built for teams that want clear, flexible control over what appears on every screen.

It gives you one place to manage playlists, slides, templates, screen assignments, announcements, data-driven content, and live player control without handing that workflow to a third-party service.

Why It Stands Out

  • Keep signage under your own control.
  • Build polished screen experiences with reusable templates and playlists.
  • Push announcements, schedules, RSS feeds, API content, and other dynamic content to screens.
  • See what is live, what is queued, and what needs attention from a single admin dashboard.
  • Use the same system for everyday signage, timed messages, and more structured information displays.

What It Handles

  • Screens and playlist assignments.
  • Slides, templates, and canvas sizes.
  • Announcements and screen-specific targeting.
  • RSS feeds, API sources, and schedule-based content.
  • Roles and permissions for admin access.
  • Background tasks and scheduled refresh jobs.
  • Player onboarding and live playback control.

Simple Deployment

Pulse Signage ships with a Docker Compose stack for the published image:

  • Published-image stack: docker compose -f docker-compose.yml up -d

Use this stack when you want to run the tagged image instead of building from source.

Environment File

The compose files read from a root .env file. Start by copying .env.example to .env, then adjust the values for your setup.

The variables are split by who uses them:

Shared across the stack:

  • PULSE_SIGNAGE_IMAGE
  • PULSE_SIGNAGE_SHARED_SECRET

Web container:

  • SESSION_MAX_AGE_DAYS
  • DEFAULT_ADMIN_USERNAME
  • DEFAULT_ADMIN_NAME
  • DEFAULT_ADMIN_PASSWORD
  • PASSWORD_HASH_ITERATIONS

Player container:

  • PLAYER_PUBLIC_BASE_URL
  • PLAYER_INTERNAL_BASE_URL

MySQL container:

  • DB_HOST
  • DB_PORT
  • DB_NAME
  • DB_USER
  • DB_PASSWORD
  • MYSQL_ROOT_PASSWORD

DB_HOST, DB_PORT, DB_NAME, DB_USER, and DB_PASSWORD are shared in practice because both app containers talk to the same database service.

PLAYER_INTERNAL_BASE_URL is used by the web side for server-to-player calls, while PLAYER_PUBLIC_BASE_URL is used for browser-facing player links.

First-Time Use

The first startup seeds a default admin account if the database is empty.

  • Username: admin
  • Password: admin

In Practice

Pulse Signage is designed to feel focused and reliable rather than heavy or noisy. It works well when you want a clean internal signage system for offices, venues, dashboards, or any environment where screens need to stay up to date without a lot of manual effort.

The player and admin pieces stay linked, so changes made in the dashboard can flow out to screens quickly and consistently.

S
Description
No description provided
https://pulse.lzstealth.com
Readme
12 MiB
Languages
JavaScript 85.4%
Handlebars 10.6%
CSS 2.9%
HTML 1%