📺 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/
    └── <screen-name>/
        ├── 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
sudo apt install python3 python3-pip ffmpeg

Setup

git clone <repository-url>
cd signage
pip install flask flask-login werkzeug

Starten

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/<screen-name>

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:

media/
*.mp4
*.mov
*.jpg
*.jpeg
*.png

🎞️ Video-Empfehlungen

  • Format: MP4
  • Codec: H.264
  • Auflösung: max. 1920x1080
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.

Description
No description provided
Readme 204 KiB
Languages
HTML 50.1%
Python 49.2%
Shell 0.5%
Dockerfile 0.2%