Diese Dokumentation enthält alle Schritte zur Installation sowie Erklärungen zur Tischansteuerung, UI-Logik, Training-Features und OBS-Integration.
/obs/ (alle 15 Sekunden aktualisiert, konfigurierbar). Ideal für OBS Browser-Quellen.sudo apt update sudo apt install nginx php8.3-fpm php8.3-sqlite3 -y
sudo mkdir -p /var/www/billard/assets/css sudo mkdir -p /var/www/billard/assets/js sudo mkdir -p /var/www/billard/logos
sudo chown -R www-data:www-data /var/www/billard sudo chmod -R 775 /var/www/billard
sudo chown -R www-data:www-data /var/www/html sudo chmod -R 775 /var/www/html
Konfigurationspfad: /etc/nginx/sites-available/default
server {
listen 80;
root /var/www/billard;
index index.php index.html;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
}
}
sudo nginx -t sudo systemctl restart nginx
| Ansicht | URL | Beschreibung |
|---|---|---|
| Scoreboard | http://[IP]/ | Haupt-Anwendung für Spieler |
| Monitor (DE) | http://[IP]/monitor_de.php | Live-Anzeige aller Tische (Deutsch) |
| Monitor (EN) | http://[IP]/monitor_en.php | Live-Anzeige aller Tische (Englisch) |
| OBS Small | http://[IP]/obs_small.php?Tisch=1 | OBS Overlay klein - Style 1 |
| OBS Small 2 | http://[IP]/obs_small_2.php?Tisch=1 | OBS Overlay klein - Style 2 (schwarze Scores, roter Streifen) |
| OBS Small 3 | http://[IP]/obs_small_3.php?Tisch=1 | OBS Overlay klein - Style 3 (blaue Scores) |
| OBS Small 4 | http://[IP]/obs_small_4.php?Tisch=1 | OBS Overlay klein - Style 4 (Bordeaux/Maroon) |
| OBS Big | http://[IP]/obs_big.php?Tisch=1 | OBS Overlay groß - Style 1 |
| OBS Big 2 | http://[IP]/obs_big_2.php?Tisch=1 | OBS Overlay groß - Style 2 (geteilte Streifen, Logos) |
| OBS Big 3 | http://[IP]/obs_big_3.php?Tisch=1 | OBS Overlay groß - Style 3 (Logos, blaue Scores) |
| OBS Big 4 | http://[IP]/obs_big_4.php?Tisch=1 | OBS Overlay groß - Style 4 (Bordeaux/Maroon, Logos) |
| Hilfe (DE) | http://[IP]/help_de.html | Diese Dokumentation (Deutsch) |
| Help (EN) | http://[IP]/help_en.html | Documentation (English) |
| Parameter | Verhalten |
|---|---|
| index.php | Freie Auswahl: Tisch 1-8 wählbar im Setup |
| index.php?Tisch=0 | Admin-Modus: Tisch-Auswahl ausgeblendet |
| index.php?Tisch=1 | Fixer Modus: Tisch fest vorgegeben (1-8) |
Das Farbschema kann direkt über einen URL-Parameter gesetzt werden. Sowohl deutsche als auch englische Bezeichnungen werden akzeptiert:
| Parameter (DE) | Parameter (EN) | Farbschema |
|---|---|---|
| ?theme=gelb | ?theme=yellow | Standard (Gelb/Gold) |
| ?theme=blau | ?theme=blue | Blau/Cyan |
| ?theme=gruen | ?theme=green | Grün |
| ?theme=weiss | ?theme=white | Hell/Light Mode |
Die Sprache kann direkt über einen URL-Parameter gesetzt werden:
| Parameter | Sprache |
|---|---|
| ?lang=de | Deutsch |
| ?lang=en | Englisch |
http://[IP]/?Tisch=1&theme=blau&lang=en
http://[SERVER-IP]/obs_big.php?Tisch=1| Version | Breite | Höhe | Verwendung |
|---|---|---|---|
| obs_small.php | 700 px | 100 px | Kompakte Anzeige, Ecke des Streams |
| obs_small_2.php | 700 px | 120 px | Getrennte Felder, schwarze Scores, roter Streifen |
| obs_small_3.php | 700 px | 120 px | Getrennte Felder, blaue Scores |
| obs_small_4.php | 500 px | 120 px | Bordeaux/Maroon Design, kompakt |
| obs_big.php | 1400 px | 150 px | Vollbreite, unterer Bildschirmrand |
| obs_big_2.php | 1400 px | 180 px | Geteilte Streifen (Name/Verein), Logos, rote Akzente |
| obs_big_3.php | 1400 px | 150 px | Logos, blaue Scoreboxen |
| obs_big_4.php | 1200 px | 150 px | Bordeaux/Maroon Design, Logos, gelbe Akzente |
Logos werden automatisch angezeigt, wenn eine PNG-Datei mit dem exakten Vereinsnamen existiert:
# Logo-Ordner erstellen sudo mkdir -p /var/www/billard/logos # Logos hochladen (Beispiele) /var/www/billard/logos/BC Berlin.png /var/www/billard/logos/BC Bremen.png /var/www/billard/logos/Imperium.png
Während eines laufenden Spiels werden im Header die Disziplin und die laufende Spielzeit angezeigt.
HH:MM:SSZusätzlich zu den Browser-Overlays werden automatisch einzelne TXT-Dateien im Ordner /obs/ generiert. Diese können als Browser-Quellen in OBS eingebunden werden.
| Datei | Inhalt | Beispiel |
|---|---|---|
table1_discipline.txt | Disziplin | 14/1 |
table1_raceto.txt | Race to | 100 |
table1_player1.txt | Spieler 1 Name | Max Mustermann |
table1_player2.txt | Spieler 2 Name | John Doe |
table1_club1.txt | Verein Spieler 1 | BC Berlin |
table1_club2.txt | Verein Spieler 2 | BC Bremen |
table1_score1.txt | Punkte Spieler 1 | 42 |
table1_score2.txt | Punkte Spieler 2 | 38 |
table1_innings1.txt | Aufnahmen Spieler 1 | 12 |
table1_innings2.txt | Aufnahmen Spieler 2 | 11 |
table1_highseries1.txt | Höchstserie Spieler 1 | 15 |
table1_highseries2.txt | Höchstserie Spieler 2 | 9 |
table1_series1.txt | Laufende Serie Spieler 1 | 3 |
table1_series2.txt | Laufende Serie Spieler 2 | 0 |
table1_gd1.txt | GD Spieler 1 | 3.50 |
table1_gd2.txt | GD Spieler 2 | 3.45 |
table1_starttime.txt | Startzeit | 14:30:00 |
table1_matchtime.txt | Spielzeit (HH:MM) | 01:23 |
table1_balls.txt | Ball-Zählung (One Pocket / Bank Pool) | 5/8 - 3/8 |
Die empfohlene Methode ist die Verwendung einer Browser-Quelle mit dem Plugin xObsBrowserAutoRefresh:
http://[SERVER-IP]/obs/table1_score1.txtbody {
color: #ffffff;
font-family: "Arial";
font-size: 40px;
font-weight: bold;
text-shadow: 2px 2px 4px #000000;
overflow: hidden;
}
OBS_INTERVAL in config.php). Der Ordner /obs/ wird automatisch erstellt.
Bei 8-Ball, 9-Ball und 10-Ball kann im Setup der Break-Modus gewählt werden:
| Modus | Verhalten |
|---|---|
| Wechselbreak | Der Anstoß wechselt nach jeder Aufnahme (+ oder -) zum anderen Spieler |
| Winnerbreak | Der Gewinner eines Racks behält den Anstoß (wechselt nur bei +) |
Alle Disziplinen (14/1, 8-Ball, 9-Ball, 10-Ball) haben einen Hilfe-Button (blaues Fragezeichen) in der Steuerungsleiste.
| Disziplin | Seiten | Besonderheiten |
|---|---|---|
| 14/1 Endlos | 5 Regelseiten + 7 Beispiele | Wiederaufbau-Beispiele mit Vorher/Nachher-SVGs |
| 8-Ball | 4 Regelseiten | Aufbaubild (SVG) direkt auf der "Aufbau & Anstoß"-Seite |
| 9-Ball | 4 Regelseiten | Aufbaubild (SVG) direkt auf der "Aufbau & Anstoß"-Seite |
| 10-Ball | 4 Regelseiten | Aufbaubild (SVG) direkt auf der "Aufbau & Anstoß"-Seite |
/regeln/. Das Popup ist scrollbar und hat Vor/Zurück-Buttons zur Navigation.
Der GD (Gesamtdurchschnitt = Punkte / Aufnahmen) wird bei 14/1-Spielen an mehreren Stellen angezeigt:
| Ort | Anzeige | Beschreibung |
|---|---|---|
| Laufendes Spiel | GD: X.XX | Live-GD in der Stats-Zeile unter dem Score (Aufn | Serie | HS | GD) |
| Spielerbilanz | Bester GD: X.XX | Höchster jemals erreichter GD auf der Spielerkarte |
| Champions | Bester GD | Neue Champion-Karte für den Spieler mit dem höchsten GD |
| Historie | Aufnahmen: X / HS: X / GD: X.XX | GD pro Spieler in jedem 14/1-Eintrag der Spielhistorie |
Jeder Spieler hat nun ein Verlaufsdiagramm für seine 14/1 Spiele. Das Diagramm zeigt die Entwicklung von Höchstserie und GD über die letzten 20 Partien.
| Element | Farbe | Y-Achse | Beschreibung |
|---|---|---|---|
| Höchstserie | Grün | Links (0-100) | Beste Serie pro Spiel |
| GD | Blau | Rechts (0-20) | Gesamtdurchschnitt pro Spiel |
| X-Achse | - | - | Letzte 20 Spiele (-20 bis 0) |
Unter dem Diagramm werden folgende Werte angezeigt:
Das Scoreboard unterstützt nun vollständige Mehrsprachigkeit. Die Sprache kann jederzeit in der Sidebar umgeschaltet werden.
| Sprache | Code | Datei |
|---|---|---|
| Deutsch | de | /assets/lang/de.json |
| Englisch | en | /assets/lang/en.json |
Während eines 14/1-Spiels kann jederzeit eine Übersicht aller bisherigen Aufnahmen angezeigt werden.
| Spalte | Beschreibung |
|---|---|
| Aufn. | Nummer der Aufnahme |
| Punkte (links) | Punkte von Spieler 1 in dieser Aufnahme |
| Stand | Aktueller Zwischenstand nach der Aufnahme |
| Punkte (rechts) | Punkte von Spieler 2 in dieser Aufnahme |
61 Punkte-Spiel mit der 3-Foul-Regel. Verliert ein Spieler 3 Fouls in Folge, verliert er das Spiel.
Kugeln in die eigene Tasche versenken. Standardziel: 8 Kugeln.
Nur Bankshots erlaubt. Ziel: 5 Kugeln.
Nur Bankshots mit allen 15 Kugeln. Ziel: 8 Kugeln.
8-Ball, 9-Ball und 10-Ball können als Doppel (2 vs 2) gespielt werden. Die Teamnamen werden automatisch kombiniert.
| Level | Fehler | GD | Ziel | Maximum |
|---|---|---|---|---|
| Level 1 | 2 | 4 | 120 | 150 |
| Level 2 | 1 | 6 | 120 | 150 |
| Level 3 | 0 | 12 | 120 | 150 |
| Level 4 | 0 | 17 | 170 | 200 |
| Level | Fehler | Startbälle | Ziel | Maximum |
|---|---|---|---|---|
| Level 1 | 2 | 4 | 40 | 90 |
| Level 2 | 1 | 6 | 60 | 90 |
| Level 3 | 0 | 9 | 90 | 90 |
Bowling-Wertung auf dem Pooltisch. Einzelspieler-Training mit klassischer Bowling-Punkteberechnung.
| Eigenschaft | Wert |
|---|---|
| Frames | 10 |
| Kugeln pro Frame | 10 |
| Max. Versuche pro Frame | 2 (Frame 10: bis zu 3) |
| Maximalpunktzahl | 300 (12 Strikes) |
| Ergebnis | Symbol | Punkte |
|---|---|---|
| Strike | X (rot) | 10 + nächste 2 Würfe |
| Spare | / (blau) | 10 + nächster 1 Wurf |
| Open | Zahl | Summe der versenkten Kugeln |
| PIN-Typ | Standard | Verwendung |
|---|---|---|
| Master-PIN | 12345 |
Spieler verwalten, Stats löschen, History-Einträge löschen |
| Spieler-PIN | 000000 |
Training starten |
assets/js/app.js (Zeile 7): masterPin: "12345"
| Endpunkt | Beschreibung |
|---|---|
api.php?action=load |
Alle Spielerdaten laden |
api.php?action=save |
Daten speichern (POST) |
api.php?action=get_tables |
Live-Tischdaten für Monitor/OBS |
api.php?action=update_table |
Tisch-Update senden (POST) |
| Problem | Lösung |
|---|---|
| HTTP 500 | Schreibrechte prüfen (Schritt 4) |
| OBS zeigt nichts | Browser-Quelle Breite erhöhen, CSS leer lassen |
| Logo nicht sichtbar | Dateiname muss exakt dem Vereinsnamen entsprechen |
| Training-Buttons reagieren nicht | Browser-Konsole (F12) prüfen, training.js vollständig? |
sudo tail -f /var/log/nginx/error.log - Fehler-Log
# Backup erstellen cd /var/www sudo tar -czf billard-backup-$(date +%Y%m%d).tar.gz billard/ # Backup wiederherstellen sudo tar -xzf billard-backup-20250127.tar.gz
Pro Billiard Scoreboard System v4.2 | Entwickelt für Billard-Spieler