Readme erzeugt
This commit is contained in:
122
README.md
122
README.md
@@ -0,0 +1,122 @@
|
|||||||
|
📺 CANCOM Simple Signage
|
||||||
|
CANCOM Simple Signage ist ein leichtgewichtiges, browserbasiertes Digital‑Signage‑System auf Basis von Python + Flask.
|
||||||
|
Ziel ist eine einfache, robuste und wartbare Lösung für interne Info‑Screens, ohne die Komplexität klassischer Digital‑Signage‑Plattformen.
|
||||||
|
|
||||||
|
✨ Features
|
||||||
|
|
||||||
|
✅ Browser‑basierter Player (kein nativer Client erforderlich)
|
||||||
|
✅ Bilder & Videos (MP4, H.264)
|
||||||
|
✅ Pro Screen eine eigene Playlist
|
||||||
|
✅ Drag‑&‑Drop‑Reihenfolge im Admin‑Portal
|
||||||
|
✅ Automatischer Player‑Reload bei Änderungen
|
||||||
|
✅ Upload & Löschen von Medien
|
||||||
|
✅ Screen‑Status (aktiv / leer)
|
||||||
|
✅ CI‑konformes Admin‑UI (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, Kiosk‑Mode)
|
||||||
|
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 Video‑Konvertierung 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
|
||||||
|
Admin‑Portal
|
||||||
|
/admin
|
||||||
|
|
||||||
|
Funktionen:
|
||||||
|
|
||||||
|
Screens konfigurieren
|
||||||
|
Medien hochladen / löschen
|
||||||
|
Playlist per Drag & Drop sortieren
|
||||||
|
|
||||||
|
|
||||||
|
Player‑URLs
|
||||||
|
/player/<screen-name>
|
||||||
|
|
||||||
|
Beispiel:
|
||||||
|
http://server:5000/player/lobby
|
||||||
|
|
||||||
|
Empfehlung:
|
||||||
|
|
||||||
|
Browser im Kiosk‑Modus
|
||||||
|
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 Admin‑Upload
|
||||||
|
oder via Samba / Fileshare
|
||||||
|
bereitgestellt.
|
||||||
|
|
||||||
|
|
||||||
|
🎞️ Video‑Empfehlungen
|
||||||
|
|
||||||
|
Format: MP4
|
||||||
|
Codec: H.264
|
||||||
|
Audio: optional, Autoplay ist standardmäßig ohne Ton
|
||||||
|
Auflösung: max. Full‑HD (1920×1080)
|
||||||
|
|
||||||
|
Beispiel‑Konvertierung:
|
||||||
|
Shellffmpeg -i input.mov -c:v libx264 -pix_fmt yuv420p -movflags +faststart output.mp4Weitere Zeilen anzeigen
|
||||||
|
|
||||||
|
🔐 Sicherheit
|
||||||
|
|
||||||
|
Admin‑Bereich per Login geschützt
|
||||||
|
Keine anonyme Administration
|
||||||
|
Player‑Seiten öffentlich (Read‑Only)
|
||||||
|
Für externe Zugriffe: Reverse Proxy + TLS (z. B. Nginx Proxy Manager)
|
||||||
|
|
||||||
|
|
||||||
|
🧭 Roadmap (optional)
|
||||||
|
|
||||||
|
⏰ Zeitsteuerung pro Playlist‑Eintrag
|
||||||
|
👁 Vorschau im Admin‑Portal
|
||||||
|
👥 Mehrere Admin‑User / Rollen
|
||||||
|
🗄️ Migration von config.json → SQLite
|
||||||
|
🐳 Docker‑Compose‑Setup
|
||||||
|
|
||||||
|
|
||||||
|
👤 Maintainer
|
||||||
|
CANCOM Simple Signage
|
||||||
|
Interne Lösung – nicht für externe Weitergabe bestimmt.
|
||||||
Reference in New Issue
Block a user