Zum Inhalt springen

Neukunde: Unterschied zwischen den Versionen

Aus MegBes Wiki
Clawtronics (Diskussion | Beiträge)
Interne Servereinrichtung mit konkreten Befehlen und Prüfungen erweitert
Clawtronics (Diskussion | Beiträge)
Seite als geführten, praxisnahen Ablauf für neue Projekte überarbeitet
 
Zeile 1: Zeile 1:
= Neukunde / neues Projekt =
= Neukunde / neues Projekt =


Diese Seite beschreibt den vollständigen Ablauf zur Einrichtung eines neuen MegBes-Kunden beziehungsweise eines neuen Projekts. Projektspezifische Werte werden zunächst gesammelt und anschließend in den jeweils maßgeblichen Systemen eingetragen.
Diese Seite ist der rote Faden für die Einrichtung eines neuen MegBes-Projekts. Sie führt von den ersten Angaben bis zur Übergabe. Technische Einzelheiten stehen auf den jeweils verlinkten Fachseiten – hier geht es vor allem darum, '''was als Nächstes zu tun ist''' und woran du erkennst, dass eine Etappe abgeschlossen ist.


'''Wichtig:''' Passwörter, Tokens, private Schlüssel und geheime Update-URLs dürfen nicht auf dieser Seite oder einer Projektseite gespeichert werden. Dafür ist ausschließlich der vorgesehene Passwortmanager zu verwenden.
Nicht jedes Projekt benötigt alle hier genannten Bausteine. Wenn beispielsweise kein lokaler MegBes-Server vorgesehen ist, können die entsprechenden Schritte übersprungen werden.


== 1. Projekt festlegen ==
== Der Weg zum fertigen Projekt ==


Vor Beginn sind mindestens zu bestimmen:
# Projekt und Ansprechpartner erfassen
# Betriebsart und benötigte Komponenten festlegen
# Öffentliche MegBes-Seite bereitstellen
# Technik am Standort vorbereiten
# Stationen anbinden
# Gesamtsystem abnehmen und dokumentieren


* vollständiger Projekt- und Kundenname
== 1. Projekt beginnen ==
* eindeutiges technisches Projektkürzel
* zuständige Personen bei tinetronics
* gewünschte Bedienoberfläche
* Art der Anmeldung:
** Anmeldung über Ticket-Monitor
** direkter Zugriff ohne Ticket-Monitor, wie beim Subprojekt MiQua Guide
** gegebenenfalls weitere projektspezifische Variante
* Anzahl und Art der Medienstationen
* Stationsnummern und benötigte UDP-Befehle
* lokales Subnetz und gewünschter UDP-Port
* projektspezifischer Stations-Timer


Anschließend eine neue Seite in der [[Projektübersicht]] anlegen.
'''Ziel dieser Etappe:''' Alle Beteiligten sprechen über dasselbe Projekt, und die wichtigsten Ansprechpartner sind bekannt.


== 2. Domains und Erreichbarkeit ==
Lege zunächst in der [[Projektübersicht]] eine eigene Projektseite an. Verwende dafür den Namen, unter dem das Projekt später auch intern wiedergefunden werden soll.


Im Regelfall werden zwei Adressen benötigt:
Auf der Projektseite sollten mindestens diese Angaben stehen:


; Externe Adresse
{| class="wikitable"
: Subdomain für `megbes-external`, beispielsweise `<projekt>.megbes.de`.
! Angabe
! Beispiel oder Erläuterung
|-
| Kunde und Projektname
| Museum Beispielstadt – Dauerausstellung
|-
| Technischer Projektschlüssel
| Kurzer, eindeutiger Name ohne Leerzeichen, z. B. <code>beispielstadt</code>
|-
| Zuständige Personen
| Projektleitung, technische Betreuung und Ansprechpartner vor Ort
|-
| Geplanter Betriebsbeginn
| Eröffnung, Testbetrieb oder Übergabetermin
|-
| Anzahl der Stationen
| Einschließlich Reserve- oder Teststationen
|-
| Aktueller Stand
| Planung, Einrichtung, Test oder Betrieb
|}


; Interne Erreichbarkeit
Der technische Projektschlüssel wird später unter anderem für Container, Konfigurationsdateien und Adressen verwendet. Er sollte deshalb früh festgelegt und danach nicht mehr geändert werden.
: DynDNS-Adresse oder eine andere dauerhaft erreichbare Adresse für `megbes-internal`, beispielsweise `<projekt>-dyndns.megbes.de`.


Für die externe Subdomain ist der DNS-Eintrag auf den zentralen Plesk-Server zu richten. Die konkrete Zieladresse muss vor der Einrichtung anhand der aktuellen IONOS-/Plesk-Konfiguration geprüft werden und wird nicht als allgemeiner Festwert im Wiki hinterlegt.
'''Weiter, wenn …''' eine Projektseite vorhanden ist, der Projektschlüssel feststeht und mindestens je ein organisatorischer und technischer Ansprechpartner bekannt ist.


Für die interne Seite wird bevorzugt IONOS DynDNS eingesetzt. Alternative Anbieter sind nur zu verwenden, wenn dies technisch erforderlich ist.
== 2. Gemeinsam festlegen, wie das Projekt funktionieren soll ==


== 3. Projektkonfiguration in GitHub ==
'''Ziel dieser Etappe:''' Die grundlegenden Entscheidungen sind getroffen, bevor Server oder Container eingerichtet werden.


Im privaten Repository `tinetronics/megbes-config` sind die produktiven Konfigurationen anzupassen.
=== Was sollen Besucherinnen und Besucher sehen? ===


=== megbes-external-config.json ===
Kläre, welche Informationen auf der MegBes-Seite erscheinen sollen, zum Beispiel:


Für das Projekt werden mindestens gepflegt:
* aktuelle Verfügbarkeit oder Zustände der Stationen,
* Hinweise zu einzelnen Angeboten,
* eine für das Projekt gestaltete Oberfläche,
* mehrere Sprachen.


* technischer Projektschlüssel
Halte Gestaltungswünsche, Sprachen und besondere Inhalte auf der Projektseite fest.
* Kommunikationsprotokoll zum internen Server
* Adresse von `megbes-internal`
* Port von `megbes-internal`
* bei Projekten mit zentraler Anmeldung: initialer Administratorname und verschlüsseltes Administratorpasswort


Das Administratorpasswort darf niemals im Klartext eingetragen werden. Die Verschlüsselung erfolgt mit dem vorgesehenen Werkzeug des Status-Monitors.
=== Wie wird die Seite aufgerufen? ===


=== megbes-status-config.json ===
Entscheide zwischen den üblichen Betriebsarten:


Das Projekt wird zusätzlich mit seiner internen und externen Adresse in die Status-Konfiguration aufgenommen.
* '''Direkter Zugriff:''' Die Seite ist ohne vorherige Prüfung erreichbar.
* '''Zugriff über Ticket-Monitor:''' Der Aufruf wird anhand der vorgesehenen Berechtigung freigegeben.


=== Prüfung ===
Eine verständliche Gegenüberstellung steht unter [[Bedienung und Authentifizierung]].


# JSON-Syntax prüfen.
=== Welche Technik wird benötigt? ===
# Änderungen nachvollziehbar committen.
# Änderungen über den vereinbarten Git-Prozess bereitstellen.
# Nach der Übernahme die betroffenen Dienste kontrolliert neu laden.


Siehe auch [[Konfiguration]].
Prüfe gemeinsam mit der technischen Betreuung:


== 4. megbes-external unter Plesk ==
* Wird nur die öffentliche MegBes-Seite benötigt?
* Gibt es vor Ort einen lokalen MegBes-Server?
* Wie melden die Stationen ihren Zustand – insbesondere per UDP oder über einen anderen vorgesehenen Weg?
* Wird für den Standort DynDNS oder eine feste öffentliche Adresse benötigt?
* Wer kann Änderungen an Router, Firewall und Standortnetz freigeben?


Für jedes Projekt wird auf dem zentralen IONOS-Server ein eigener Docker-Container betrieben.
'''Weiter, wenn …''' Betriebsart, benötigte Komponenten, Stationenzahl und Verantwortlichkeiten für das Standortnetz feststehen.


# Neue externe Subdomain in Plesk anlegen.
'''Noch nicht weitermachen, wenn …''' unklar ist, ob ein lokaler Server benötigt wird oder wer Router- und Firewall-Änderungen genehmigen darf. Diese Entscheidungen beeinflussen den gesamten weiteren Aufbau.
# TLS-Zertifikat für die Subdomain einrichten.
# Docker-Container aus dem freigegebenen `megbes-external`-Image erstellen.
# Container eindeutig nach dem Projekt benennen.
# automatischen Start nach einem Serverneustart aktivieren.
# erforderliche Umgebungsvariablen anhand der aktuellen freigegebenen Vorlage setzen.
# Zertifikatsdateien beziehungsweise Volumes korrekt einbinden.
# automatische Portzuordnung nach der initialen Einrichtung deaktivieren.
# Docker-Proxy-Regel von der Subdomain auf den Container einrichten.
# Container starten und Protokoll auf Fehler prüfen.


Der einzusetzende Release wird bewusst festgelegt. Ein neuer Kunde erhält grundsätzlich den aktuell freigegebenen Release, sofern kein bekannter projektspezifischer Grund dagegenspricht.
== 3. Die öffentliche Seite vorbereiten ==


== 5. Zertifikate ==
'''Ziel dieser Etappe:''' Das Projekt ist über seine spätere öffentliche Adresse erreichbar und zeigt die richtige Konfiguration.


Projektbezogene Zertifikate werden über den Status-Monitor erstellt und entsprechend der dortigen Anleitung installiert.
Gehe in dieser Reihenfolge vor:


Zu prüfen sind:
# Lege die gewünschte Adresse fest, normalerweise <code>&lt;projekt&gt;.megbes.de</code>.
# Erstelle die Projektkonfiguration im Repository <code>tinetronics/megbes-config</code>. Die benötigten Felder sind unter [[Konfiguration]] beschrieben.
# Stelle unter Plesk einen eigenen <code>megbes-external</code>-Container für das Projekt bereit. Die technische Anleitung steht unter [[Megbes-external unter Plesk]].
# Verknüpfe Domain, Zertifikat und Container.
# Öffne die Adresse im Browser und kontrolliere Inhalt, Gestaltung und Verhalten.


* Zertifikat gehört zum richtigen Projekt und zur richtigen Adresse.
Verwende grundsätzlich eine freigegebene Release-Version. Zugangsdaten, Tokens, private Schlüssel und vollständige DynDNS-Aktualisierungsadressen gehören '''nicht''' ins Wiki oder in die Projektkonfiguration, sondern in den vorgesehenen Passwortmanager.
* Zertifikatsdateien liegen am vorgesehenen Ablageort.
* Container-Volume zeigt auf den korrekten Ordner.
* Kennwörter sind ausschließlich im Passwortmanager und in der geschützten Laufzeitkonfiguration hinterlegt.
* Verbindung wird nach dem Neustart erfolgreich getestet.


== 6. Interner Server beim Kunden ==
'''Weiter, wenn …'''


Für jedes Projekt wird beim Kunden ein eigener Server für `megbes-internal` eingerichtet. Die folgenden Schritte sind in dieser Reihenfolge abzuarbeiten.
* die öffentliche Adresse per HTTPS ohne Zertifikatswarnung erreichbar ist,
* die richtige Projektoberfläche erscheint,
* die vereinbarte Zugriffsart funktioniert,
* keine Zugangsdaten in Wiki, Repository oder Containerbeschreibung abgelegt wurden.


=== 6.1 Ubuntu installieren und anmelden ===
== 4. Den Standort vorbereiten ==


Die jeweils aktuelle Ubuntu-LTS-Version installieren. Während der Installation:
'''Ziel dieser Etappe:''' Der lokale MegBes-Server ist zuverlässig erreichbar und kann mit den Stationen sowie der öffentlichen Seite kommunizieren.


* eindeutigen Servernamen nach dem Projektschema vergeben
Dieser Abschnitt entfällt, wenn das Projekt keinen lokalen MegBes-Server benötigt.
* Administrationsbenutzer anlegen
* OpenSSH-Server installieren
* keine unnötigen Zusatzpakete auswählen
* Installationsmedium nach Aufforderung entfernen


Nach dem Neustart lokal oder per SSH anmelden.
=== Vor dem Aufbau klären ===


=== 6.2 Aktuelle Ubuntu-Version prüfen ===
Besorge oder bestätige zunächst:


lsb_release -a
* Standort und Hardware des Servers,
* feste interne IP-Adresse,
* DNS- und Gateway-Angaben,
* Zugang zum Router beziehungsweise eine zuständige Kontaktperson,
* DynDNS-Name, falls erforderlich,
* Liste der Stationen mit Namen und IP-Adressen,
* geplante Sicherung und verantwortliche Person.


Falls der Befehl fehlt:
=== Server in sinnvollen Etappen einrichten ===


cat /etc/os-release
# Ubuntu installieren und aktualisieren: [[Ubuntu installieren]] und [[Ubuntu aktualisieren]]
# Eine feste interne Adresse einrichten: [[Feste IP-Adresse unter Ubuntu]]
# Docker installieren und prüfen: [[Docker installieren]]
# <code>megbes-internal</code> mit der Projektkonfiguration starten: [[Megbes-internal]]
# Router, DynDNS und erforderliche Weiterleitungen einrichten: [[DynDNS und Router]]
# Zertifikate einrichten oder übertragen: [[Zertifikate]]


Prüfen, ob tatsächlich die vorgesehene LTS-Version installiert ist.
Führe nach jeder Etappe einen kurzen Funktionstest durch. So ist bei einem Fehler sofort klar, in welchem Abschnitt er entstanden ist.


=== 6.3 System vollständig aktualisieren ===
'''Weiter, wenn …'''


Zuerst aktuelle Paketlisten abrufen:
* der Server nach einem Neustart wieder erreichbar ist,
* der interne Container selbstständig startet,
* die Projektkonfiguration geladen wird,
* die benötigte Verbindung zwischen Standort und öffentlicher Seite funktioniert,
* keine unnötigen Dienste oder Ports aus dem Internet erreichbar sind.


sudo apt update
== 5. Stationen Schritt für Schritt anbinden ==


Der Befehl muss ohne Zeilen mit `E:` oder `Error` enden. Danach verfügbare Aktualisierungen installieren:
'''Ziel dieser Etappe:''' Jede Station erscheint eindeutig und mit dem richtigen Zustand im System.


sudo apt upgrade
Beginne nicht sofort mit allen Stationen. Nimm zuerst eine gut erreichbare Teststation:


Die Paketliste prüfen und die Rückfrage mit `Y` beziehungsweise `J` bestätigen. Nach Abschluss den Neustartbedarf prüfen:
# Vergib oder bestätige Namen und IP-Adresse der Station.
# Trage sie in der Projektkonfiguration ein.
# Richte die vorgesehene Zustandsmeldung ein.
# Prüfe den Signalweg vom Gerät bis zur Anzeige. Hilfestellung: [[UDP und Stationszustände]] und [[Routing und Signalweg]].
# Simuliere mindestens einen Zustandswechsel und kontrolliere die Anzeige.


if [ -f /run/reboot-required ]; then cat /run/reboot-required; else echo "Kein Neustart erforderlich"; fi
Wenn die Teststation zuverlässig funktioniert, übertrage das Vorgehen auf die übrigen Stationen. Arbeite die Stationsliste einzeln ab und markiere jede geprüfte Station auf der Projektseite.


Falls ein Neustart erforderlich ist:
'''Weiter, wenn …''' jede Station eindeutig zugeordnet ist, Zustandsänderungen korrekt erscheinen und ein Neustart der Station beziehungsweise des lokalen Servers erfolgreich getestet wurde.


sudo reboot
== 6. Gemeinsame Abnahme ==


Danach neu anmelden und prüfen:
'''Ziel dieser Etappe:''' Das System funktioniert nicht nur technisch, sondern auch im vorgesehenen Arbeitsalltag.


systemctl --failed
Führe die Abnahme möglichst gemeinsam mit einer verantwortlichen Person des Projekts durch.


Die vollständige Anleitung einschließlich Fehlerbehandlung und Funktionstest steht unter [[Ubuntu aktualisieren]].
=== Besucheransicht ===


=== 6.4 Feste lokale IP-Adresse einrichten ===
* Öffnet sich die richtige Seite auf Smartphone und einem normalen Rechner?
* Sind Texte, Logos, Farben und Sprachen korrekt?
* Ist die Bedienung verständlich?
* Funktioniert die vereinbarte Zugriffsart?


Die Netzwerkschnittstelle, IP-Adresse, Netzmaske, Gateway und DNS-Server anhand der Kundennetz-Dokumentation bestimmen. Keine Beispieladresse ungeprüft übernehmen. Die konkrete Anleitung folgt unter [[Feste IP-Adresse unter Ubuntu]].
=== Technischer Betrieb ===


Nach der Änderung Verbindung, Gateway und DNS testen:
* Werden alle Stationen mit dem richtigen Namen und Zustand angezeigt?
* Werden Ausfall, Rückkehr und Neustart einer Teststation korrekt erkannt?
* Starten Server und Container nach einem Neustart automatisch?
* Sind HTTPS und Zertifikatskette fehlerfrei?
* Sind nur die tatsächlich benötigten Ports erreichbar?


ip address
=== Betrieb und Wiederherstellung ===
ip route
ping -c 4 <Gateway-Adresse>
getent hosts download.docker.com


=== 6.5 Docker installieren ===
* Ist festgelegt, wer Störungen zuerst prüft?
* Sind Sicherung und Wiederherstellung beschrieben und mindestens einmal geprüft?
* Sind Zugangsdaten vollständig im Passwortmanager hinterlegt?
* Ist die eingesetzte Release-Version dokumentiert?


Docker aus der offiziellen Docker-Paketquelle installieren. Nicht mehr die veraltete GPG-/Repository-Anleitung aus dem Word-Dokument verwenden.
Für den späteren Betrieb dient [[Wartung, Backups und Fehlerdiagnose]] als zentrale Arbeitsseite. Der [[Status-Monitor]] hilft bei der laufenden Übersicht.


Die vollständige Schrittfolge steht unter [[Docker installieren]]. Abschließend müssen diese Prüfungen erfolgreich sein:
'''Das Projekt ist bereit zur Übergabe, wenn …''' alle Abnahmepunkte entweder bestätigt oder als bekannte Restpunkte mit Verantwortlichem und Termin dokumentiert sind.


docker --version
== 7. Projekt sauber übergeben ==
sudo systemctl status docker --no-pager
sudo docker run --rm hello-world


=== 6.6 Projektordner vorbereiten ===
Ergänze zum Abschluss die Projektseite um:


Einen eindeutig benannten Ordner für die geschützten Zertifikatsdateien anlegen. Beispiel – Benutzer und Projektkürzel anpassen:
* öffentliche und interne Adressen ohne geheime Bestandteile,
* eingesetzte Container und Release-Versionen,
* Stationsliste,
* Betriebsart und besondere Konfiguration,
* zuständige Personen,
* Datum und Ergebnis der Abnahme,
* bekannte Restpunkte,
* Verweise auf Sicherung, Passwortmanager-Eintrag und weitere Betriebsdokumentation.


mkdir -p /home/<Benutzername>/certs/<Projektkürzel>
Setze den Projektstatus in der [[Projektübersicht]] anschließend auf '''Betrieb'''.
chmod 700 /home/<Benutzername>/certs/<Projektkürzel>


Anschließend kontrollieren:
== Wenn etwas nicht wie erwartet funktioniert ==


ls -ld /home/<Benutzername>/certs/<Projektkürzel>
Gehe vom letzten erfolgreichen Prüfpunkt aus zurück. Prüfe zunächst nur den betroffenen Abschnitt, statt mehrere Komponenten gleichzeitig zu ändern.


=== 6.7 Projektbezogene Dateien übertragen ===
Eine hilfreiche Reihenfolge ist:


Benötigt werden mindestens:
# Ist die betroffene Station oder der Server eingeschaltet und im Netz erreichbar?
# Läuft der zuständige Container?
# Ist die richtige Projektkonfiguration geladen?
# Funktioniert der Signalweg zwischen Station, lokalem Server und öffentlicher Seite?
# Gibt es aktuelle Meldungen in den Container-Protokollen oder im [[Status-Monitor]]?


* projektspezifische Umgebungsdatei
Dokumentiere Ursache und Lösung auf der Projektseite, wenn der Fehler projektspezifisch war. Allgemein wiederverwendbare Erkenntnisse gehören nach [[Wartung, Backups und Fehlerdiagnose]].
* Key- und Truststore beziehungsweise aktuell verwendete Zertifikatsdateien
* dokumentierter Container-Name
* festgelegter External-/Internal-Port
* UDP-Port und lokales Subnetz
* freigegebener Release


Dateien nach dem Übertragen mit `ls -l` kontrollieren. Geheimnisdateien dürfen nicht für alle Benutzer lesbar sein.
[[Kategorie:Betrieb]]
 
[[Kategorie:Projekte]]
=== 6.8 megbes-internal starten ===
 
Der projektspezifische Docker-Befehl wird anhand der geprüften Vorlage erstellt. Keine Befehlszeile eines anderen Kunden ungeprüft kopieren. Vor dem Start insbesondere kontrollieren:
 
* Container-Name
* External-zu-Container-Port
* UDP-Port
* Pfad und Name der Umgebungsdatei
* Zertifikats-Volume
* Docker-Image und Release
* Neustartregel `unless-stopped`
 
Die ausführliche Anleitung folgt unter [[megbes-internal]].
 
=== 6.9 Start prüfen ===
 
sudo docker ps
sudo docker logs --tail 100 <Containername>
 
Der Container muss `Up` sein. Wiederholte Exceptions, Zertifikats- oder Verbindungsfehler müssen vor dem nächsten Schritt behoben werden.
 
=== 6.10 Neustarttest ===
 
Server kontrolliert neu starten:
 
sudo reboot
 
Danach neu anmelden und prüfen:
 
sudo systemctl status docker --no-pager
sudo docker ps
 
Der MegBes-Container muss aufgrund der Neustartregel automatisch wieder laufen.
== 7. Router, DynDNS und Portfreigabe ==
 
Am Kundenrouter sind – abhängig vom Projekt – folgende Punkte einzurichten:
 
* feste Zuordnung für den internen Server
* DynDNS-Konfiguration
* erforderliche TCP-Portfreigabe zu `megbes-internal`
* gegebenenfalls kundenspezifische Firewall-Regeln
 
Der externe Port, der interne Port und die in `megbes-external-config.json` eingetragene Portnummer müssen zueinander passen.
 
Router-Zugangsdaten und geheime DynDNS-Update-URLs gehören ausschließlich in den Passwortmanager.
 
== 8. Medienstationen ==
 
Für jede Station sind zu erfassen:
 
* Stationsnummer
* Gerätetyp
* lokale IP-Adresse
* unterstützte UDP-Befehle
* verwendeter UDP-Port
* Art der Bedienung und Anmeldung
* Verhalten bei `IDLE`, `TOUCHSCREEN`, `REMOTE` und gegebenenfalls `OPEN`
* erwartete Init-/Statusmeldung
 
Siehe [[UDP und Stationszustände]].
 
== 9. Abnahme und Funktionstest ==
 
Vor Übergabe müssen mindestens folgende Prüfungen erfolgreich sein:
 
# externe Projektadresse ist per HTTPS erreichbar.
# vorgesehene Anmeldung beziehungsweise der direkte Zugriff funktioniert.
# `megbes-external` erreicht `megbes-internal`.
# Befehle erreichen die richtige Station.
# Start, Stopp und weitere projektspezifische Befehle funktionieren.
# Stationszustände und Timer verhalten sich wie vereinbart.
# Neustart von externem und internem Container wurde getestet.
# Neustart des internen Servers wurde getestet.
# Status-Monitor erkennt die Projektinstanzen.
# Status-/Init-Meldungen erreichen den vorgesehenen Empfänger.
# Fehler und Besonderheiten sind auf der Projektseite dokumentiert.
 
== 10. Projektdokumentation abschließen ==
 
Auf der Projektseite werden anschließend mindestens eingetragen:
 
* Domains und technische Projektschlüssel
* Container-Namen
* Ports und Netzwerkbereiche
* installierte Releases von External und Internal
* Server- und Stationshardware
* Stations-Timer
* Datum und Ergebnis des letzten Funktionstests
* Besonderheiten und offene Aufgaben
* Verweis auf die zugehörigen Einträge im Passwortmanager – niemals die Geheimwerte selbst
 
[[Kategorie:MegBes]]
[[Kategorie:Einrichtung]]
[[Kategorie:Checkliste]]

Aktuelle Version vom 7. August 2026, 13:19 Uhr

Neukunde / neues Projekt

[Bearbeiten]

Diese Seite ist der rote Faden für die Einrichtung eines neuen MegBes-Projekts. Sie führt von den ersten Angaben bis zur Übergabe. Technische Einzelheiten stehen auf den jeweils verlinkten Fachseiten – hier geht es vor allem darum, was als Nächstes zu tun ist und woran du erkennst, dass eine Etappe abgeschlossen ist.

Nicht jedes Projekt benötigt alle hier genannten Bausteine. Wenn beispielsweise kein lokaler MegBes-Server vorgesehen ist, können die entsprechenden Schritte übersprungen werden.

Der Weg zum fertigen Projekt

[Bearbeiten]
  1. Projekt und Ansprechpartner erfassen
  2. Betriebsart und benötigte Komponenten festlegen
  3. Öffentliche MegBes-Seite bereitstellen
  4. Technik am Standort vorbereiten
  5. Stationen anbinden
  6. Gesamtsystem abnehmen und dokumentieren

1. Projekt beginnen

[Bearbeiten]

Ziel dieser Etappe: Alle Beteiligten sprechen über dasselbe Projekt, und die wichtigsten Ansprechpartner sind bekannt.

Lege zunächst in der Projektübersicht eine eigene Projektseite an. Verwende dafür den Namen, unter dem das Projekt später auch intern wiedergefunden werden soll.

Auf der Projektseite sollten mindestens diese Angaben stehen:

Angabe Beispiel oder Erläuterung
Kunde und Projektname Museum Beispielstadt – Dauerausstellung
Technischer Projektschlüssel Kurzer, eindeutiger Name ohne Leerzeichen, z. B. beispielstadt
Zuständige Personen Projektleitung, technische Betreuung und Ansprechpartner vor Ort
Geplanter Betriebsbeginn Eröffnung, Testbetrieb oder Übergabetermin
Anzahl der Stationen Einschließlich Reserve- oder Teststationen
Aktueller Stand Planung, Einrichtung, Test oder Betrieb

Der technische Projektschlüssel wird später unter anderem für Container, Konfigurationsdateien und Adressen verwendet. Er sollte deshalb früh festgelegt und danach nicht mehr geändert werden.

Weiter, wenn … eine Projektseite vorhanden ist, der Projektschlüssel feststeht und mindestens je ein organisatorischer und technischer Ansprechpartner bekannt ist.

2. Gemeinsam festlegen, wie das Projekt funktionieren soll

[Bearbeiten]

Ziel dieser Etappe: Die grundlegenden Entscheidungen sind getroffen, bevor Server oder Container eingerichtet werden.

Was sollen Besucherinnen und Besucher sehen?

[Bearbeiten]

Kläre, welche Informationen auf der MegBes-Seite erscheinen sollen, zum Beispiel:

  • aktuelle Verfügbarkeit oder Zustände der Stationen,
  • Hinweise zu einzelnen Angeboten,
  • eine für das Projekt gestaltete Oberfläche,
  • mehrere Sprachen.

Halte Gestaltungswünsche, Sprachen und besondere Inhalte auf der Projektseite fest.

Wie wird die Seite aufgerufen?

[Bearbeiten]

Entscheide zwischen den üblichen Betriebsarten:

  • Direkter Zugriff: Die Seite ist ohne vorherige Prüfung erreichbar.
  • Zugriff über Ticket-Monitor: Der Aufruf wird anhand der vorgesehenen Berechtigung freigegeben.

Eine verständliche Gegenüberstellung steht unter Bedienung und Authentifizierung.

Welche Technik wird benötigt?

[Bearbeiten]

Prüfe gemeinsam mit der technischen Betreuung:

  • Wird nur die öffentliche MegBes-Seite benötigt?
  • Gibt es vor Ort einen lokalen MegBes-Server?
  • Wie melden die Stationen ihren Zustand – insbesondere per UDP oder über einen anderen vorgesehenen Weg?
  • Wird für den Standort DynDNS oder eine feste öffentliche Adresse benötigt?
  • Wer kann Änderungen an Router, Firewall und Standortnetz freigeben?

Weiter, wenn … Betriebsart, benötigte Komponenten, Stationenzahl und Verantwortlichkeiten für das Standortnetz feststehen.

Noch nicht weitermachen, wenn … unklar ist, ob ein lokaler Server benötigt wird oder wer Router- und Firewall-Änderungen genehmigen darf. Diese Entscheidungen beeinflussen den gesamten weiteren Aufbau.

3. Die öffentliche Seite vorbereiten

[Bearbeiten]

Ziel dieser Etappe: Das Projekt ist über seine spätere öffentliche Adresse erreichbar und zeigt die richtige Konfiguration.

Gehe in dieser Reihenfolge vor:

  1. Lege die gewünschte Adresse fest, normalerweise <projekt>.megbes.de.
  2. Erstelle die Projektkonfiguration im Repository tinetronics/megbes-config. Die benötigten Felder sind unter Konfiguration beschrieben.
  3. Stelle unter Plesk einen eigenen megbes-external-Container für das Projekt bereit. Die technische Anleitung steht unter Megbes-external unter Plesk.
  4. Verknüpfe Domain, Zertifikat und Container.
  5. Öffne die Adresse im Browser und kontrolliere Inhalt, Gestaltung und Verhalten.

Verwende grundsätzlich eine freigegebene Release-Version. Zugangsdaten, Tokens, private Schlüssel und vollständige DynDNS-Aktualisierungsadressen gehören nicht ins Wiki oder in die Projektkonfiguration, sondern in den vorgesehenen Passwortmanager.

Weiter, wenn …

  • die öffentliche Adresse per HTTPS ohne Zertifikatswarnung erreichbar ist,
  • die richtige Projektoberfläche erscheint,
  • die vereinbarte Zugriffsart funktioniert,
  • keine Zugangsdaten in Wiki, Repository oder Containerbeschreibung abgelegt wurden.

4. Den Standort vorbereiten

[Bearbeiten]

Ziel dieser Etappe: Der lokale MegBes-Server ist zuverlässig erreichbar und kann mit den Stationen sowie der öffentlichen Seite kommunizieren.

Dieser Abschnitt entfällt, wenn das Projekt keinen lokalen MegBes-Server benötigt.

Vor dem Aufbau klären

[Bearbeiten]

Besorge oder bestätige zunächst:

  • Standort und Hardware des Servers,
  • feste interne IP-Adresse,
  • DNS- und Gateway-Angaben,
  • Zugang zum Router beziehungsweise eine zuständige Kontaktperson,
  • DynDNS-Name, falls erforderlich,
  • Liste der Stationen mit Namen und IP-Adressen,
  • geplante Sicherung und verantwortliche Person.

Server in sinnvollen Etappen einrichten

[Bearbeiten]
  1. Ubuntu installieren und aktualisieren: Ubuntu installieren und Ubuntu aktualisieren
  2. Eine feste interne Adresse einrichten: Feste IP-Adresse unter Ubuntu
  3. Docker installieren und prüfen: Docker installieren
  4. megbes-internal mit der Projektkonfiguration starten: Megbes-internal
  5. Router, DynDNS und erforderliche Weiterleitungen einrichten: DynDNS und Router
  6. Zertifikate einrichten oder übertragen: Zertifikate

Führe nach jeder Etappe einen kurzen Funktionstest durch. So ist bei einem Fehler sofort klar, in welchem Abschnitt er entstanden ist.

Weiter, wenn …

  • der Server nach einem Neustart wieder erreichbar ist,
  • der interne Container selbstständig startet,
  • die Projektkonfiguration geladen wird,
  • die benötigte Verbindung zwischen Standort und öffentlicher Seite funktioniert,
  • keine unnötigen Dienste oder Ports aus dem Internet erreichbar sind.

5. Stationen Schritt für Schritt anbinden

[Bearbeiten]

Ziel dieser Etappe: Jede Station erscheint eindeutig und mit dem richtigen Zustand im System.

Beginne nicht sofort mit allen Stationen. Nimm zuerst eine gut erreichbare Teststation:

  1. Vergib oder bestätige Namen und IP-Adresse der Station.
  2. Trage sie in der Projektkonfiguration ein.
  3. Richte die vorgesehene Zustandsmeldung ein.
  4. Prüfe den Signalweg vom Gerät bis zur Anzeige. Hilfestellung: UDP und Stationszustände und Routing und Signalweg.
  5. Simuliere mindestens einen Zustandswechsel und kontrolliere die Anzeige.

Wenn die Teststation zuverlässig funktioniert, übertrage das Vorgehen auf die übrigen Stationen. Arbeite die Stationsliste einzeln ab und markiere jede geprüfte Station auf der Projektseite.

Weiter, wenn … jede Station eindeutig zugeordnet ist, Zustandsänderungen korrekt erscheinen und ein Neustart der Station beziehungsweise des lokalen Servers erfolgreich getestet wurde.

6. Gemeinsame Abnahme

[Bearbeiten]

Ziel dieser Etappe: Das System funktioniert nicht nur technisch, sondern auch im vorgesehenen Arbeitsalltag.

Führe die Abnahme möglichst gemeinsam mit einer verantwortlichen Person des Projekts durch.

Besucheransicht

[Bearbeiten]
  • Öffnet sich die richtige Seite auf Smartphone und einem normalen Rechner?
  • Sind Texte, Logos, Farben und Sprachen korrekt?
  • Ist die Bedienung verständlich?
  • Funktioniert die vereinbarte Zugriffsart?

Technischer Betrieb

[Bearbeiten]
  • Werden alle Stationen mit dem richtigen Namen und Zustand angezeigt?
  • Werden Ausfall, Rückkehr und Neustart einer Teststation korrekt erkannt?
  • Starten Server und Container nach einem Neustart automatisch?
  • Sind HTTPS und Zertifikatskette fehlerfrei?
  • Sind nur die tatsächlich benötigten Ports erreichbar?

Betrieb und Wiederherstellung

[Bearbeiten]
  • Ist festgelegt, wer Störungen zuerst prüft?
  • Sind Sicherung und Wiederherstellung beschrieben und mindestens einmal geprüft?
  • Sind Zugangsdaten vollständig im Passwortmanager hinterlegt?
  • Ist die eingesetzte Release-Version dokumentiert?

Für den späteren Betrieb dient Wartung, Backups und Fehlerdiagnose als zentrale Arbeitsseite. Der Status-Monitor hilft bei der laufenden Übersicht.

Das Projekt ist bereit zur Übergabe, wenn … alle Abnahmepunkte entweder bestätigt oder als bekannte Restpunkte mit Verantwortlichem und Termin dokumentiert sind.

7. Projekt sauber übergeben

[Bearbeiten]

Ergänze zum Abschluss die Projektseite um:

  • öffentliche und interne Adressen ohne geheime Bestandteile,
  • eingesetzte Container und Release-Versionen,
  • Stationsliste,
  • Betriebsart und besondere Konfiguration,
  • zuständige Personen,
  • Datum und Ergebnis der Abnahme,
  • bekannte Restpunkte,
  • Verweise auf Sicherung, Passwortmanager-Eintrag und weitere Betriebsdokumentation.

Setze den Projektstatus in der Projektübersicht anschließend auf Betrieb.

Wenn etwas nicht wie erwartet funktioniert

[Bearbeiten]

Gehe vom letzten erfolgreichen Prüfpunkt aus zurück. Prüfe zunächst nur den betroffenen Abschnitt, statt mehrere Komponenten gleichzeitig zu ändern.

Eine hilfreiche Reihenfolge ist:

  1. Ist die betroffene Station oder der Server eingeschaltet und im Netz erreichbar?
  2. Läuft der zuständige Container?
  3. Ist die richtige Projektkonfiguration geladen?
  4. Funktioniert der Signalweg zwischen Station, lokalem Server und öffentlicher Seite?
  5. Gibt es aktuelle Meldungen in den Container-Protokollen oder im Status-Monitor?

Dokumentiere Ursache und Lösung auf der Projektseite, wenn der Fehler projektspezifisch war. Allgemein wiederverwendbare Erkenntnisse gehören nach Wartung, Backups und Fehlerdiagnose.