Digital Signage im Krautspace
- Python 70.2%
- HTML 13.1%
- CSS 9.2%
- Nix 4%
- Shell 3.5%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
The hackerspace now has one external broker (Home Assistant's own Mosquitto add-on) that's the natural default for anything MQTT-based, rather than retyping the same host/port/credentials into every slide or hand-editing a root-only env file over SSH. - New "MQTT broker (default)" settings section in the admin UI. - API/MQTT status slides fall back to it when their own broker host is left blank (all four fields together, never a per-field mix with a slide's own settings). - c3lounge.sh now reads the same signage.db keys directly (both run as the same unprivileged user, so no cross-user permission issue), with /etc/krautspace-mqtt.env kept as an optional bootstrap fallback for a fresh install that hasn't touched the web UI yet. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011ob9hgT5q1JAqy6okeG97o |
||
| backend | ||
| deploy | ||
| docs | ||
| tests | ||
| .envrc | ||
| .gitignore | ||
| CLAUDE.md | ||
| devenv.lock | ||
| devenv.nix | ||
| devenv.yaml | ||
| flake.lock | ||
| flake.nix | ||
| pyproject.toml | ||
| README.md | ||
| uv.lock | ||
krautspaceTV
Digital Signage im Krautspace: a Raspberry Pi driving a TV in the hackerspace, rotating between the 3D printer webcam, feeds, train departure boards, weather and other web content, with a web admin UI for managing slides.
Using it
- Admin UI:
http://krautspaceTV/(orhttps://, self-signed cert). It is open to anyone on the network on purpose, so people can add their own content. - "Add slide", pick a type, fill in its fields, save. "View now" pushes a slide to the display immediately.
- Rotation interval is under "Rotation settings"; keep it above ~25s.
Setup
On the Pi, as admin (details and the optional boot splash in
docs/setup.md):
sudo apt install chromium xinit x11-xserver-utils unclutter scrot
curl -LsSf https://astral.sh/uv/install.sh | sh
git clone https://github.com/paulloth1/krautspaceTV.git ~/signage && cd ~/signage
uv sync --frozen --no-dev
# create the self-signed TLS cert first (docs/setup.md), then:
sudo cp deploy/backend*.service deploy/kiosk.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now backend.service backend-http.service \
backend-tls.service backend-tls-443.service kiosk.service
Development
devenv shell, then check (lint + tests) and serve. Without devenv:
uv sync && uv run pytest. Version bumps follow CLAUDE.md.
More
- docs/architecture.md: how the backend, rotation and kiosk fit together, and the hardware
- docs/slides.md: slide types, overlays, known limitations
- docs/setup.md: full setup
- docs/casting.md: optional AirPlay, Spotify Connect, DLNA and Bluetooth receivers
- docs/development.md: devenv, Nix, versioning