Zum Inhalt springen
nexdeck
Installation

Ein Container, und dann sieh dich um

Keine Datenbank daneben, kein Zwischenspeicher, kein Bauschritt. Der erste Start legt den Betreiber an und bietet ein Brett mit erfundenen, sich bewegenden Daten an. Du kannst also alles ansehen, bevor du einen einzigen Schlüssel eintippst.

Ein Infrastrukturbrett mit Rechnern, Containern, Platten und Erreichbarkeit
Starten

Drei Zeilen

Terminal
mkdir nexdeck && cd nexdeck
curl -fsSL https://raw.githubusercontent.com/DerKezorm/nexdeck/main/docker-compose.yml -o docker-compose.yml
docker compose up -d

Danach steht nexdeck auf http://dein-host:5175. Das Abbild kommt von ghcr.io/derkezorm/nexdeck.

1 Betreiber anlegen Beim ersten Aufruf. Name, Kennwort, fertig. Eine E-Mail-Adresse lohnt sich, sonst gibt es keinen Weg zurück bei einem vergessenen Kennwort.
2 Umsehen Nimm das angebotene Brett mit erfundenen Daten. Es bewegt sich wie ein echtes und zeigt, was die Karten können.
3 Anschließen Unter System eine Anbindung anlegen: Adresse, Schlüssel, testen. Danach stehen ihre Karten in der Bibliothek.
4 Legen und ziehen Karten auf das Brett ziehen, in Größe bringen, einstellen. Die Vorschau zeigt jede Änderung sofort.
Schalter

Umgebungsvariablen

Alle stehen mit ihrer Voreinstellung in .env.example im Repository. Die hier braucht man wirklich.

VariableVoreinstellungWofür
NEXDECK_SECRET_KEYwird erzeugtVerschlüsselt die abgelegten Schlüssel und unterschreibt die Sitzungen. Einmal setzen und behalten.
NEXDECK_PUBLIC_URLleerWie Browser nexdeck erreichen. Nötig für OpenID Connect und Web Push.
NEXDECK_URL_BASEleerUnterpfad, wenn nexdeck darunter läuft, etwa /deck.
NEXDECK_DEMO0Jede Karte startet mit erfundenen Daten.
NEXDECK_LOG_LEVELINFODEBUG schreibt jede Anfrage eines Adapters mit.
PUID, PGID1000Wem die Dateien im Datenverzeichnis gehören.
DOCKER_GIDwird erkanntGruppe des eingehängten Docker-Sockets, wenn die Erkennung danebengeht.

Der Docker-Socket ist in der Compose-Datei schon eingehängt. Damit siehst du die Container dieser Maschine, kannst sie neu starten und ihr Protokoll mitlesen. Auf einer Synology bedient derselbe Socket den Container Manager. Wer das nicht will, nimmt die Zeile heraus; alles andere läuft weiter.

Reverse Proxy

Eine Zeile, an die alle denken müssen

nexdeck spricht innen einfaches HTTP auf Port 8000 und glaubt X-Forwarded-Proto, wenn es um seine Plätzchen geht.

Die Daten kommen über Server-Sent Events, und die verträgt kein Proxy, der zwischenpuffert. Traefik und Caddy brauchen dafür nichts. nginx braucht eine Zeile:

nginx
location / {
    proxy_pass http://nexdeck:8000;
    # Ohne diese Zeile stehen die Karten still.
    proxy_buffering off;
}

Woran man es merkt

Die Seite lädt, die Karten füllen sich einmal, und danach bewegt sich nichts mehr. Das sieht aus, als wäre nexdeck kaputt, und ist der Proxy.

Zwei weitere Fußangeln

  • Broadcast bleibt im Netz des Containers. Das Wecken über Wake-on-LAN erreicht nur, was im selben Netz hängt.
  • Der Hauptschlüssel gehört gesetzt, bevor die erste Anbindung angelegt wird. Wird er später ausgetauscht, sind die abgelegten Zugänge nicht mehr lesbar.
Weiter

Und wenn etwas klemmt

Die Anleitungen

Anbindungen und Karten, Docker-Beschriftungen, Bretter als Dateien, Kiosk und die Schnittstelle liegen im Repository unter docs/.

Fehler melden

Am hilfreichsten mit der Version des Dienstes, um den es geht. Bei einer Anbindung mit Beta-Zeichen ist genau das der fehlende Beweis.

Selbst bauen

Backend Python mit FastAPI, Oberfläche React und Vite. Ein Adapter ist eine Datei, und für seine Karten braucht es keinen Frontend-Code.