# 📺 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 ``` Browser (Player) │ ▼ Flask App (Server) ├── Admin UI ├── Player UI ├── config.json └── media/ └── / ├── bild.jpg └── video.mp4 ``` - **Server:** Python 3 + Flask - **Player:** Jeder moderne Browser (Chrome, Edge, Firefox, Kiosk-Modus) - **State:** `config.json` + Dateisystem - **Frontend:** Tabler + SortableJS (CDN) --- ## 📂 Projektstruktur ``` 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:5005 ``` --- ## 🛠️ Betrieb ### Admin-Portal ``` /admin ``` - Screens konfigurieren - Medien hochladen / löschen - Playlist per Drag & Drop sortieren ### Player-URLs ``` /player/ ``` Beispiel: ``` http://server:5000/player/lobby ``` --- ## 🔄 Automatischer Reload Der Player aktualisiert sich selbst, wenn: - Medien hinzugefügt oder gelöscht werden - Playlist-Reihenfolge geändert wird - Screen-Einstellungen angepasst werden --- ## ⚠️ Git & Medien > **Dieses Repository ist für Code gedacht, nicht für Medien.** Empfohlene `.gitignore`: ```gitignore media/ *.mp4 *.mov *.jpg *.jpeg *.png ``` --- ## 🎞️ Video-Empfehlungen - Format: MP4 - Codec: H.264 - Auflösung: max. 1920x1080 ```bash ffmpeg -i input.mov -c:v libx264 -pix_fmt yuv420p -movflags +faststart output.mp4 ``` --- ## 🔐 Sicherheit - Admin-Bereich per Login geschützt - Player-Seiten Read-Only - Externe Nutzung via Reverse Proxy + TLS empfohlen --- ## 🧭 Roadmap - 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.