Files
signage/README.md
2026-04-17 14:09:11 +02:00

122 lines
3.5 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
📺 CANCOM Simple Signage
CANCOM Simple Signage ist ein leichtgewichtiges, browserbasiertes DigitalSignageSystem auf Basis von Python + Flask.
Ziel ist eine einfache, robuste und wartbare Lösung für interne InfoScreens, ohne die Komplexität klassischer DigitalSignagePlattformen.
✨ Features
✅ Browserbasierter Player (kein nativer Client erforderlich)
✅ Bilder & Videos (MP4, H.264)
✅ Pro Screen eine eigene Playlist
✅ Drag&DropReihenfolge im AdminPortal
✅ Automatischer PlayerReload bei Änderungen
✅ Upload & Löschen von Medien
✅ ScreenStatus (aktiv / leer)
✅ CIkonformes AdminUI (CANCOM)
✅ Läuft lokal, in VMs oder auf Proxmox
🧱 Architektur
CSSBrowser (Player) │ ▼Flask App (Server)├── Admin UI├── Player UI├── config.json└── media/ └── <screen-name>/ ├── bild.jpg └── video.mp4Weitere Zeilen anzeigen
Server: Python 3 + Flask
Player: Jeder moderne Browser (Chrome, Edge, Firefox, KioskMode)
State: config.json + Dateisystem
Frontend: Tabler + SortableJS (CDN)
📂 Projektstruktur
CSSsignage/├── app.py # Flask Application├── config.json # Konfiguration (Screens, Playlists, Intervalle)├── media/ # Medien pro Screen│ ├── lobby/│ └── meetingroom/├── templates/│ ├── admin.html # Admin UI│ ├── player.html # Player UI│ └── login.html # Login Page├── static/ # (optional) eigene Assets└── README.md``Weitere Zeilen anzeigen
🚀 Installation
Voraussetzungen
Python ≥ 3.9
pip
ffmpeg (für VideoKonvertierung empfehlenswert)
CSSsudo apt install python3 python3-pip ffmpegWeitere Zeilen anzeigen
Setup
Shellgit clone <repository-url>cd signagepip install flask flask-login werkzeugWeitere Zeilen anzeigen
Starten
Shellpython app.pyWeitere Zeilen anzeigen
Server läuft standardmäßig auf:
http://localhost:5000
🛠️ Betrieb
AdminPortal
/admin
Funktionen:
Screens konfigurieren
Medien hochladen / löschen
Playlist per Drag & Drop sortieren
PlayerURLs
/player/<screen-name>
Beispiel:
http://server:5000/player/lobby
Empfehlung:
Browser im KioskModus
Autostart beim Login
🔄 Automatischer Reload
Der Player prüft regelmäßig, ob sich die Playlist geändert hat:
Datei hinzugefügt
Datei gelöscht
Reihenfolge geändert
Einstellungen geändert
➡️ Bei Änderung lädt sich der Player automatisch neu.
⚠️ Wichtig: Git & Medien
👉 Dieses Repository ist für Code gedacht, nicht für Inhalte.
Empfohlene Praxis:
Plain Textmedia/*.mp4*.jpg*.pngWeitere Zeilen anzeigen
in .gitignore aufnehmen.
Medien werden:
per AdminUpload
oder via Samba / Fileshare
bereitgestellt.
🎞️ VideoEmpfehlungen
Format: MP4
Codec: H.264
Audio: optional, Autoplay ist standardmäßig ohne Ton
Auflösung: max. FullHD (1920×1080)
BeispielKonvertierung:
Shellffmpeg -i input.mov -c:v libx264 -pix_fmt yuv420p -movflags +faststart output.mp4Weitere Zeilen anzeigen
🔐 Sicherheit
AdminBereich per Login geschützt
Keine anonyme Administration
PlayerSeiten öffentlich (ReadOnly)
Für externe Zugriffe: Reverse Proxy + TLS (z.B. Nginx Proxy Manager)
🧭 Roadmap (optional)
⏰ Zeitsteuerung pro PlaylistEintrag
👁 Vorschau im AdminPortal
👥 Mehrere AdminUser / Rollen
🗄️ Migration von config.json → SQLite
🐳 DockerComposeSetup
👤 Maintainer
CANCOM Simple Signage
Interne Lösung nicht für externe Weitergabe bestimmt.