From 6faf2072467e06f3abc3c913c91f72322dbf3e84 Mon Sep 17 00:00:00 2001 From: Erik Thiele Date: Fri, 17 Apr 2026 14:13:53 +0200 Subject: [PATCH] neue Readme --- README.md | 223 ++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 143 insertions(+), 80 deletions(-) diff --git a/README.md b/README.md index 0b06518..0524c82 100644 --- a/README.md +++ b/README.md @@ -1,122 +1,185 @@ -đŸ“ș 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. +# đŸ“ș CANCOM Simple Signage -✹ Features +**CANCOM Simple Signage** ist ein leichtgewichtiges, browserbasiertes Digital-Signage-System auf Basis von **Python + Flask**. -✅ 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 +Ziel ist eine **einfache, robuste und wartbare Lösung** fĂŒr interne Info-Screens, ohne die KomplexitĂ€t klassischer Digital-Signage-Plattformen. +--- -đŸ§± Architektur -CSSBrowser (Player) │ â–ŒFlask App (Server)├── Admin UI├── Player UI├── config.json└── media/ └── / ├── bild.jpg └── video.mp4Weitere Zeilen anzeigen +## ✹ Features -Server: Python 3 + Flask -Player: Jeder moderne Browser (Chrome, Edge, Firefox, Kiosk‑Mode) -State: config.json + Dateisystem -Frontend: Tabler + SortableJS (CDN) +- ✅ 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 +--- -📂 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 +## đŸ§± Architektur -🚀 Installation -Voraussetzungen +``` +Browser (Player) + │ + â–Œ +Flask App (Server) +├── Admin UI +├── Player UI +├── config.json +└── media/ + └── / + ├── bild.jpg + └── video.mp4 +``` -Python ≄ 3.9 -pip -ffmpeg (fĂŒr Video‑Konvertierung empfehlenswert) +- **Server:** Python 3 + Flask +- **Player:** Jeder moderne Browser (Chrome, Edge, Firefox, Kiosk-Modus) +- **State:** `config.json` + Dateisystem +- **Frontend:** Tabler + SortableJS (CDN) -CSSsudo apt install python3 python3-pip ffmpegWeitere Zeilen anzeigen +--- -Setup -Shellgit clone cd signagepip install flask flask-login werkzeugWeitere Zeilen anzeigen +## 📂 Projektstruktur -Starten -Shellpython app.pyWeitere Zeilen anzeigen -Server lĂ€uft standardmĂ€ĂŸig auf: +``` +signage/ +├── app.py +├── config.json +├── media/ +│ ├── lobby/ +│ └── meetingroom/ +├── templates/ +│ ├── admin.html +│ ├── player.html +│ └── login.html +├── static/ +└── README.md +``` + +--- + +## 🚀 Installation + +### Voraussetzungen + +- Python ≄ 3.9 +- pip +- ffmpeg + +```bash +sudo apt install python3 python3-pip ffmpeg +``` + +### Setup + +```bash +git clone +cd signage +pip install flask flask-login werkzeug +``` + +### Starten + +```bash +python app.py +``` + +Server lĂ€uft auf: + +``` http://localhost:5000 +``` +--- -đŸ› ïž Betrieb -Admin‑Portal +## đŸ› ïž Betrieb + +### Admin-Portal + +``` /admin +``` -Funktionen: +- Screens konfigurieren +- Medien hochladen / löschen +- Playlist per Drag & Drop sortieren -Screens konfigurieren -Medien hochladen / löschen -Playlist per Drag & Drop sortieren +### Player-URLs - -Player‑URLs +``` /player/ +``` Beispiel: + +``` http://server:5000/player/lobby +``` -Empfehlung: +--- -Browser im Kiosk‑Modus -Autostart beim Login +## 🔄 Automatischer Reload +Der Player aktualisiert sich selbst, wenn: -🔄 Automatischer Reload -Der Player prĂŒft regelmĂ€ĂŸig, ob sich die Playlist geĂ€ndert hat: +- Medien hinzugefĂŒgt oder gelöscht werden +- Playlist-Reihenfolge geĂ€ndert wird +- Screen-Einstellungen angepasst werden -Datei hinzugefĂŒgt -Datei gelöscht -Reihenfolge geĂ€ndert -Einstellungen geĂ€ndert +--- -âžĄïž Bei Änderung lĂ€dt sich der Player automatisch neu. +## ⚠ Git & Medien -⚠ 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: +> **Dieses Repository ist fĂŒr Code gedacht, nicht fĂŒr Medien.** -per Admin‑Upload -oder via Samba / Fileshare -bereitgestellt. +Empfohlene `.gitignore`: +```gitignore +media/ +*.mp4 +*.mov +*.jpg +*.jpeg +*.png +``` -đŸŽžïž Video‑Empfehlungen +--- -Format: MP4 -Codec: H.264 -Audio: optional, Autoplay ist standardmĂ€ĂŸig ohne Ton -Auflösung: max. Full‑HD (1920×1080) +## đŸŽžïž Video-Empfehlungen -Beispiel‑Konvertierung: -Shellffmpeg -i input.mov -c:v libx264 -pix_fmt yuv420p -movflags +faststart output.mp4Weitere Zeilen anzeigen +- Format: MP4 +- Codec: H.264 +- Auflösung: max. 1920x1080 -🔐 Sicherheit +```bash +ffmpeg -i input.mov -c:v libx264 -pix_fmt yuv420p -movflags +faststart output.mp4 +``` -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) +--- +## 🔐 Sicherheit -🧭 Roadmap (optional) +- Admin-Bereich per Login geschĂŒtzt +- Player-Seiten Read-Only +- Externe Nutzung via Reverse Proxy + TLS empfohlen -⏰ Zeitsteuerung pro Playlist‑Eintrag -👁 Vorschau im Admin‑Portal -đŸ‘„ Mehrere Admin‑User / Rollen -đŸ—„ïž Migration von config.json → SQLite -🐳 Docker‑Compose‑Setup +--- +## 🧭 Roadmap -đŸ‘€ Maintainer -CANCOM Simple Signage -Interne Lösung – nicht fĂŒr externe Weitergabe bestimmt. \ No newline at end of file +- Zeitsteuerung pro Playlist-Eintrag +- Vorschau im Admin-Portal +- Mehrere Admin-User +- SQLite statt config.json +- Docker-Compose Setup + +--- + +## đŸ‘€ Maintainer + +**CANCOM Simple Signage** +Interne Lösung – nicht fĂŒr externe Weitergabe bestimmt.