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