{"repo":"AiryAir/signage2","free":true,"listed":false,"github":"https://github.com/AiryAir/signage2","clone":"git clone https://github.com/AiryAir/signage2.git","description":"A simple self-hosted web-based digital signage system. Create and manage unlimited displays with clocks, timers, announcements, RSS feeds, and iframes using just a browser. Built with Python Flask - no complex setup.","language":"JavaScript","stars":14,"topics":["digital-signage","self-hosted"],"license":null,"category":"self-hosted-apps","readme_excerpt":"Digital Signage A browser-based digital signage system built with Flask and vanilla JavaScript. Design layouts, configure widgets, and push updates to displays in real time. Quick Start Open http://localhost:5000 . On first run you'll set an admin password. Docker: docker compose up -d Features Widgets : Clock, countdown timer, announcements (static/crossfade/marquee), RSS feeds (list/rotate/ticker), weather (Open-Meteo, no API key), images, videos (with mute toggle), slideshows, iframes Layout : 1x1 to 6x6 grid with inline add/remove buttons, zone merging via click handles, horizontal and vertical splitting, configurable screen resolution with portrait support, OLED burn-in protection Editor : Two-panel Figma-style config editor, visual zone type picker, per-zone Content/Style/Schedule tabs, live preview, 30+ Google Fonts, zone backgrounds (transparent/color/glass/image), global backgrounds (color/gradient/image) Management : Multi-display dashboard, real-time config push via SSE, heartbeat polling fallback, per-zone content scheduling by time and day Full feature list Widgets - Clock with 12/24h format and multiple date formats - Countdown timer with progress bar and color-coded warnings - Announcements with static, crossfade, and marquee scroll modes - RSS feeds with list, rotate, and ticker modes, configurable refresh interval (1-60 min) - Weather with current conditions, 3-day forecast, geocoding search (Open-Meteo, no API key) - Images with cover fit - Videos with local","default_branch":null,"files":null,"tree":[],"storefront":"/r/AiryAir","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/AiryAir/signage2/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}