3.8 KiB
3.8 KiB
Info-Board Neu - Entwicklung
Ziel
Dieses Dokument soll den Einstieg auf einem anderen Entwicklungsrechner moeglichst reibungsfrei machen.
Es beschreibt:
- minimale Voraussetzungen
- wichtige Verzeichnisse
- Build- und Run-Kommandos
- aktuelle Annahmen fuer den lokalen Entwicklungsbetrieb
Repository
- Remote:
git.az-it.net:az/morz-infoboard.git - Standard-Branch:
main
Projektwurzel:
/srv/docker/info-board-neu
Wichtige Verzeichnisse
docs/fuer Architektur- und Fachkonzepteserver/backend/fuer das zentrale Go-Backendplayer/agent/fuer den Go-basierten Player-Agentplayer/ui/spaeter fuer die lokale Player-Oberflaecheansible/spaeter fuer Deployment und Provisionierungcompose/spaeter fuer den zentralen Server-Stack
Aktueller Entwicklungsstand
Bereits vorhanden:
- fachliche Architektur- und Betriebskonzepte
- relationaler Schema-Entwurf in
docs/SCHEMA.md - erstes Go-Geruest fuer
server/backend - erstes Go-Geruest fuer
player/agent
Noch nicht vorhanden:
- produktive API-Endpunkte
- Datenbankanbindung
- MQTT-Anbindung
- Player-Sync
- Player-UI
- Compose-Stack fuer lokale Serverdienste
Voraussetzungen auf dem Entwicklungsrechner
Mindestens empfohlen:
gitgoin Version1.24.xmake
Spaeter zusaetzlich sinnvoll:
dockerunddocker composepostgresql-clientmosquitto-clients
Schnellstart
Repository klonen:
git clone git.az-it.net:az/morz-infoboard.git
cd morz-infoboard
Dokumentationsbasis lesen:
README.mdPLAN.mdTECH-STACK.mddocs/SCHEMA.mddocs/OFFENE-ARCHITEKTURFRAGEN.md
Build-Kommandos
Backend bauen
cd server/backend
go build ./...
Agent bauen
cd player/agent
go build ./...
Alternativ ueber Makefile
make build
Lokaler Start
Backend lokal starten
cd server/backend
go run ./cmd/api
Standard:
- HTTP-Adresse:
:8080 - Health-Endpunkt:
GET /healthz - Basis-Endpunkt:
GET /api/v1
Konfigurierbar ueber:
MORZ_INFOBOARD_HTTP_ADDR
Beispiel:
MORZ_INFOBOARD_HTTP_ADDR=:18080 go run ./cmd/api
Agent lokal starten
cd player/agent
go run ./cmd/agent
Standardwerte:
MORZ_INFOBOARD_SCREEN_ID=unset-screenMORZ_INFOBOARD_SERVER_URL=http://127.0.0.1:8080MORZ_INFOBOARD_MQTT_BROKER=tcp://127.0.0.1:1883
Beispiel:
MORZ_INFOBOARD_SCREEN_ID=info01-dev \
MORZ_INFOBOARD_SERVER_URL=http://127.0.0.1:8080 \
MORZ_INFOBOARD_MQTT_BROKER=tcp://127.0.0.1:1883 \
go run ./cmd/agent
Aktuelle Architekturentscheidungen mit direkter Auswirkung auf Entwicklung
message_wallwird serverseitig in konkrete Screen-Szenen aufgeloest- Kampagnengruppen werden serverseitig in konkrete Screen-Assignments expandiert
playlist_itemshaben im finalen Implementierungsschema keinen direktenscreen_id-Fremdschluessel- Provisionierung wird worker-/jumphost-faehig geplant
- API-Fehler sollen einen einheitlichen Fehlerumschlag nutzen
Empfohlene naechste Implementierungsschritte
- Backend: einheitliches Fehlerformat und Routing-Grundstruktur anlegen
- Backend: Konfigurations- und App-Lifecycle stabilisieren
- Agent: dateibasierte Konfiguration zusaetzlich zu Env vorbereiten
- Agent: strukturierte Logs und Health-Modell einziehen
- Danach erst DB-, MQTT- und API-Funktionalitaet ausbauen
Arbeitsweise
Empfohlen:
- kleine, klar umrissene Commits
- zuerst Konzepte anpassen, dann Code
- Schema und API-Vertrag synchron halten
- neue Fachentscheidungen immer in
docs/dokumentieren
Hinweise fuer einen zweiten Entwicklungsrechner
- vor Arbeitsbeginn
git pull --rebaseoder gleichwertig den aktuellen Stand holen - bei paralleler Arbeit zuerst in den Dokumenten pruefen, ob neue Architekturentscheidungen getroffen wurden
- falls lokale Tools abweichen, mindestens
go versionundmake --versionpruefen