<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.megbes.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Clawtronics</id>
	<title>MegBes Wiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.megbes.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Clawtronics"/>
	<link rel="alternate" type="text/html" href="https://wiki.megbes.de/index.php/Spezial:Beitr%C3%A4ge/Clawtronics"/>
	<updated>2026-08-04T21:13:14Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://wiki.megbes.de/index.php?title=Hauptseite&amp;diff=23</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="https://wiki.megbes.de/index.php?title=Hauptseite&amp;diff=23"/>
		<updated>2026-08-04T20:49:22Z</updated>

		<summary type="html">&lt;p&gt;Clawtronics: Ausführliche Installations- und Wartungsanleitungen verlinkt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
= MegBes-Wiki =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MegBes&#039;&#039;&#039; ist ein System zur Steuerung von Medienstationen und anderen Geräten in Ausstellungen. Es kann grundsätzlich alle Geräte ansprechen, die UDP-Signale direkt empfangen oder über eine geeignete Schnittstelle umsetzen können, beispielsweise BrightSign-Player, PCs und Raspberry Pis.&lt;br /&gt;
&lt;br /&gt;
== Systemüberblick ==&lt;br /&gt;
&lt;br /&gt;
Der typische Signalweg lautet:&lt;br /&gt;
&lt;br /&gt;
 Web-Frontend oder App → megbes-external → megbes-internal → UDP → Medienstation&lt;br /&gt;
&lt;br /&gt;
* [[Architektur|Architektur und Signalweg]]&lt;br /&gt;
* [[Komponenten|Komponenten des Systems]]&lt;br /&gt;
* [[Betrieb und Releases|Betrieb, Ubuntu und Releases]]&lt;br /&gt;
* [[Projektübersicht|Aktive Projekte]]&lt;br /&gt;
* [[Sicherheit|Sicherheits- und Dokumentationsregeln]]&lt;br /&gt;
&lt;br /&gt;
== Einrichtung und Betrieb ==&lt;br /&gt;
&lt;br /&gt;
Die folgenden Bereiche werden aus der bisherigen Dokumentation überarbeitet und schrittweise ergänzt:&lt;br /&gt;
&lt;br /&gt;
* [[Neukunde|Neukunde / neues Projekt]]&lt;br /&gt;
* [[Megbes-internal|megbes-internal installieren und starten]]&lt;br /&gt;
* [[Ubuntu aktualisieren|Ubuntu regelmäßig aktualisieren]]&lt;br /&gt;
* [[Ubuntu-LTS-Upgrade|Ubuntu auf die nächste LTS-Version aktualisieren]]&lt;br /&gt;
* [[Feste IP-Adresse unter Ubuntu|feste IP-Adresse unter Ubuntu]]&lt;br /&gt;
* [[Docker installieren|Docker auf Ubuntu installieren]]&lt;br /&gt;
* Konfiguration von megbes-external unter Plesk&lt;br /&gt;
* Netzwerk, Routing und DynDNS&lt;br /&gt;
* Zertifikate&lt;br /&gt;
* Medienstationen und Ausstellungshardware&lt;br /&gt;
* Wartung, Backups und Fehlerdiagnose&lt;br /&gt;
&lt;br /&gt;
== Aktueller Release-Stand ==&lt;br /&gt;
&lt;br /&gt;
Der aktuellste bekannte Release ist &#039;&#039;&#039;AUGUST-2026-2-RELEASE&#039;&#039;&#039;. Nicht alle Projekte verwenden bereits diesen Stand. Der tatsächlich installierte Release wird deshalb je Projekt dokumentiert. Maßgebliche technische Quelle ist das private GitHub-Repository [https://github.com/tinetronics/megbes tinetronics/megbes].&lt;br /&gt;
&lt;br /&gt;
== Wichtiger Hinweis ==&lt;br /&gt;
&lt;br /&gt;
Passwörter, Tokens, private Schlüssel, vollständige Zugangsdaten und geheime Update-URLs dürfen nicht im Wiki gespeichert werden. Siehe [[Sicherheit]].&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:MegBes]]&lt;br /&gt;
&lt;br /&gt;
== Technische Referenz ==&lt;br /&gt;
&lt;br /&gt;
* [[Softwaremodule|Softwaremodule und Build]]&lt;br /&gt;
* [[Konfiguration|Projektkonfiguration]]&lt;br /&gt;
* [[UDP und Stationszustände|UDP und Stationszustände]]&lt;/div&gt;</summary>
		<author><name>Clawtronics</name></author>
	</entry>
	<entry>
		<id>https://wiki.megbes.de/index.php?title=Megbes-internal&amp;diff=22</id>
		<title>Megbes-internal</title>
		<link rel="alternate" type="text/html" href="https://wiki.megbes.de/index.php?title=Megbes-internal&amp;diff=22"/>
		<updated>2026-08-04T20:48:41Z</updated>

		<summary type="html">&lt;p&gt;Clawtronics: Ausführliche DAU-sichere Arbeitsanleitung angelegt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= megbes-internal installieren und starten =&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung beschreibt die projektspezifische Einrichtung von `megbes-internal` auf dem Server beim Kunden. Sie setzt eine installierte aktuelle Ubuntu-LTS-Version, eine feste IP-Adresse und eine funktionierende Docker-Installation voraus.&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
&lt;br /&gt;
* [[Ubuntu aktualisieren|Ubuntu ist vollständig aktualisiert]]&lt;br /&gt;
* [[Feste IP-Adresse unter Ubuntu|feste lokale IP-Adresse ist eingerichtet und getestet]]&lt;br /&gt;
* [[Docker installieren|Docker ist installiert und mit `hello-world` geprüft]]&lt;br /&gt;
* Projekt ist in `megbes-config` eingetragen&lt;br /&gt;
* External-Adresse, Internal-Port, Subnetz, UDP-Port und Stations-Timer sind festgelegt&lt;br /&gt;
* projektbezogene Zertifikate sind erzeugt&lt;br /&gt;
* freizugebender MegBes-Release ist festgelegt&lt;br /&gt;
&lt;br /&gt;
== 1. Projektwerte sammeln ==&lt;br /&gt;
&lt;br /&gt;
Vor dem ersten Befehl diese Tabelle in der Projektseite ausfüllen:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Wert&lt;br /&gt;
! Projektwert&lt;br /&gt;
|-&lt;br /&gt;
| technisches Projektkürzel ||&lt;br /&gt;
| Linux-Benutzername ||&lt;br /&gt;
| Container-Name ||&lt;br /&gt;
| Host-TCP-Port ||&lt;br /&gt;
| Container-TCP-Port || 8080&lt;br /&gt;
|-&lt;br /&gt;
| UDP-Port ||&lt;br /&gt;
| lokales Subnetz ohne letzte Hostnummer ||&lt;br /&gt;
| Pfad der Umgebungsdatei ||&lt;br /&gt;
| Pfad des Zertifikatsordners ||&lt;br /&gt;
| Docker-Image || `tinetronics/megbes-internal`&lt;br /&gt;
|-&lt;br /&gt;
| Release ||&lt;br /&gt;
| projektspezifischer Stations-Timer ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 2. Ordner anlegen ==&lt;br /&gt;
&lt;br /&gt;
Beispiel – Platzhalter ersetzen:&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /home/&amp;lt;Benutzer&amp;gt;/megbes/&amp;lt;Projekt&amp;gt;/certs&lt;br /&gt;
 chmod 700 /home/&amp;lt;Benutzer&amp;gt;/megbes/&amp;lt;Projekt&amp;gt;/certs&lt;br /&gt;
&lt;br /&gt;
Kontrolle:&lt;br /&gt;
&lt;br /&gt;
 ls -ld /home/&amp;lt;Benutzer&amp;gt;/megbes/&amp;lt;Projekt&amp;gt;/certs&lt;br /&gt;
&lt;br /&gt;
== 3. Umgebungsdatei anlegen ==&lt;br /&gt;
&lt;br /&gt;
Datei öffnen:&lt;br /&gt;
&lt;br /&gt;
 nano /home/&amp;lt;Benutzer&amp;gt;/megbes/&amp;lt;Projekt&amp;gt;/&amp;lt;Projekt&amp;gt;.env&lt;br /&gt;
&lt;br /&gt;
Bereinigte Vorlage:&lt;br /&gt;
&lt;br /&gt;
 LOCALNETWORK_SUB_NETWORK=&amp;lt;lokales-Subnetz&amp;gt;&lt;br /&gt;
 LOCALNETWORK_UDP_PORT=&amp;lt;UDP-Port&amp;gt;&lt;br /&gt;
 MEGBES_SSL=true&lt;br /&gt;
 MNGMT_HEADER=&amp;lt;Name-des-Management-Headers&amp;gt;&lt;br /&gt;
 MNGMT_KEY=&amp;lt;im-Passwortmanager&amp;gt;&lt;br /&gt;
 MAIL_SMTP_PORT=&amp;lt;SMTP-Port&amp;gt;&lt;br /&gt;
 MAIL_SMTP_HOST=&amp;lt;SMTP-Server&amp;gt;&lt;br /&gt;
 MAIL_SENDER_ADDRESS=&amp;lt;Absenderadresse&amp;gt;&lt;br /&gt;
 MAIL_SENDER_PASSWORD=&amp;lt;im-Passwortmanager&amp;gt;&lt;br /&gt;
 MAIL_RECIPIENTADDRESSES=&amp;lt;Empfaengeradresse&amp;gt;&lt;br /&gt;
 SERVER_SSL_KEYSTORE=/opt/app/keys/keystore.jks&lt;br /&gt;
 SERVER_SSL_KEYSTOREPASSWORD=&amp;lt;im-Passwortmanager&amp;gt;&lt;br /&gt;
 SERVER_SSL_KEYSTORETYPE=JKS&lt;br /&gt;
 SERVER_SSL_TRUSTSTORE=/opt/app/keys/truststore.jks&lt;br /&gt;
 SERVER_SSL_TRUSTSTOREPASSWORD=&amp;lt;im-Passwortmanager&amp;gt;&lt;br /&gt;
 SERVER_SSL_CLIENTAUTH=need&lt;br /&gt;
 MEGBES_INTERNAL_STATION_CONTROLLED=&amp;lt;true-oder-false&amp;gt;&lt;br /&gt;
 STATION_TIMER_SECONDS=&amp;lt;Projektwert&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Schreibweise der Variablennamen nicht verändern. Platzhalter vollständig ersetzen. Keine Kommentare hinter Werte schreiben, sofern nicht sicher bekannt ist, dass die Laufzeit sie unterstützt.&lt;br /&gt;
&lt;br /&gt;
Datei schützen:&lt;br /&gt;
&lt;br /&gt;
 chmod 600 /home/&amp;lt;Benutzer&amp;gt;/megbes/&amp;lt;Projekt&amp;gt;/&amp;lt;Projekt&amp;gt;.env&lt;br /&gt;
 ls -l /home/&amp;lt;Benutzer&amp;gt;/megbes/&amp;lt;Projekt&amp;gt;/&amp;lt;Projekt&amp;gt;.env&lt;br /&gt;
&lt;br /&gt;
Erwartete Rechte sind `-rw-------`.&lt;br /&gt;
&lt;br /&gt;
== 4. Zertifikate übertragen ==&lt;br /&gt;
&lt;br /&gt;
Key- und Truststore in den Zertifikatsordner kopieren, beispielsweise mit WinSCP. Danach auf dem Server prüfen:&lt;br /&gt;
&lt;br /&gt;
 ls -l /home/&amp;lt;Benutzer&amp;gt;/megbes/&amp;lt;Projekt&amp;gt;/certs&lt;br /&gt;
&lt;br /&gt;
Die in der Umgebungsdatei genannten Dateinamen müssen exakt mit den übertragenen Dateien übereinstimmen. Groß-/Kleinschreibung ist unter Linux relevant.&lt;br /&gt;
&lt;br /&gt;
Dateien vor unberechtigtem Zugriff schützen:&lt;br /&gt;
&lt;br /&gt;
 chmod 600 /home/&amp;lt;Benutzer&amp;gt;/megbes/&amp;lt;Projekt&amp;gt;/certs/*&lt;br /&gt;
&lt;br /&gt;
== 5. Bei Docker Hub anmelden, falls erforderlich ==&lt;br /&gt;
&lt;br /&gt;
 docker login --username &amp;lt;Docker-Benutzername&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Passwort wird anschließend verdeckt abgefragt. Es darf nicht direkt in die Befehlszeile geschrieben werden. Falls das Image ohne Anmeldung geladen werden kann, ist dieser Schritt nicht erforderlich.&lt;br /&gt;
&lt;br /&gt;
== 6. Gewünschtes Image laden ==&lt;br /&gt;
&lt;br /&gt;
 docker pull tinetronics/megbes-internal:&amp;lt;RELEASE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beispiel für den aktuellen Release-Namen:&lt;br /&gt;
&lt;br /&gt;
 docker pull tinetronics/megbes-internal:AUGUST-2026-2-RELEASE&lt;br /&gt;
&lt;br /&gt;
Vor dem produktiven Einsatz muss geprüft sein, ob dieses Projekt tatsächlich diesen Release erhalten soll.&lt;br /&gt;
&lt;br /&gt;
Kontrolle:&lt;br /&gt;
&lt;br /&gt;
 docker image ls tinetronics/megbes-internal&lt;br /&gt;
&lt;br /&gt;
== 7. Container starten ==&lt;br /&gt;
&lt;br /&gt;
Allgemeine Vorlage – jeden Platzhalter ersetzen:&lt;br /&gt;
&lt;br /&gt;
 docker run -d \&lt;br /&gt;
   --restart unless-stopped \&lt;br /&gt;
   -p &amp;lt;HOST-TCP-PORT&amp;gt;:8080 \&lt;br /&gt;
   -p &amp;lt;UDP-PORT&amp;gt;:&amp;lt;UDP-PORT&amp;gt;/udp \&lt;br /&gt;
   --env-file /home/&amp;lt;Benutzer&amp;gt;/megbes/&amp;lt;Projekt&amp;gt;/&amp;lt;Projekt&amp;gt;.env \&lt;br /&gt;
   --name megbes-internal-&amp;lt;Projekt&amp;gt; \&lt;br /&gt;
   -v /home/&amp;lt;Benutzer&amp;gt;/megbes/&amp;lt;Projekt&amp;gt;/certs:/opt/app/keys \&lt;br /&gt;
   tinetronics/megbes-internal:&amp;lt;RELEASE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vor Enter die fertige Befehlszeile mit den Projektwerten vergleichen. Keine Vorlage eines anderen Kunden ungeprüft übernehmen.&lt;br /&gt;
&lt;br /&gt;
== Bedeutung der Parameter ==&lt;br /&gt;
&lt;br /&gt;
; `docker run -d`&lt;br /&gt;
: Erstellt und startet den Container im Hintergrund.&lt;br /&gt;
&lt;br /&gt;
; `--restart unless-stopped`&lt;br /&gt;
: Startet den Container nach Docker- oder Serverneustarts automatisch, außer er wurde zuvor bewusst manuell gestoppt.&lt;br /&gt;
&lt;br /&gt;
; `-p &amp;lt;HOST-TCP-PORT&amp;gt;:8080`&lt;br /&gt;
: Leitet den projektspezifischen TCP-Port des Servers auf Port 8080 im Container.&lt;br /&gt;
&lt;br /&gt;
; `-p &amp;lt;UDP-PORT&amp;gt;:&amp;lt;UDP-PORT&amp;gt;/udp`&lt;br /&gt;
: Stellt den UDP-Port für Status- und Init-Meldungen bereit. Host-, Container- und Umgebungswert müssen zusammenpassen.&lt;br /&gt;
&lt;br /&gt;
; `--env-file ...`&lt;br /&gt;
: Übergibt die geschützte Projektkonfiguration.&lt;br /&gt;
&lt;br /&gt;
; `--name ...`&lt;br /&gt;
: Vergibt einen eindeutigen Container-Namen.&lt;br /&gt;
&lt;br /&gt;
; `-v ...:/opt/app/keys`&lt;br /&gt;
: Bindet den Zertifikatsordner des Servers in den Container ein.&lt;br /&gt;
&lt;br /&gt;
; `tinetronics/megbes-internal:&amp;lt;RELEASE&amp;gt;`&lt;br /&gt;
: Legt Image und Release fest.&lt;br /&gt;
&lt;br /&gt;
== 8. Start kontrollieren ==&lt;br /&gt;
&lt;br /&gt;
 docker ps&lt;br /&gt;
&lt;br /&gt;
Der neue Container muss mit dem Zustand `Up` erscheinen.&lt;br /&gt;
&lt;br /&gt;
Logs prüfen:&lt;br /&gt;
&lt;br /&gt;
 docker logs --tail 100 megbes-internal-&amp;lt;Projekt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei fortlaufender Anzeige:&lt;br /&gt;
&lt;br /&gt;
 docker logs --follow megbes-internal-&amp;lt;Projekt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit `Strg+C` wird nur die Loganzeige beendet, nicht der Container.&lt;br /&gt;
&lt;br /&gt;
== 9. Konfiguration kontrollieren ==&lt;br /&gt;
&lt;br /&gt;
Neustartregel:&lt;br /&gt;
&lt;br /&gt;
 docker inspect -f &#039;{{.HostConfig.RestartPolicy.Name}}&#039; megbes-internal-&amp;lt;Projekt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Erwartet:&lt;br /&gt;
&lt;br /&gt;
 unless-stopped&lt;br /&gt;
&lt;br /&gt;
Portzuordnungen:&lt;br /&gt;
&lt;br /&gt;
 docker port megbes-internal-&amp;lt;Projekt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Eingebundene Ordner:&lt;br /&gt;
&lt;br /&gt;
 docker inspect -f &#039;{{json .Mounts}}&#039; megbes-internal-&amp;lt;Projekt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inspect-Ausgaben können interne Pfade und Konfigurationsdetails enthalten; nicht ungeprüft ins Wiki kopieren.&lt;br /&gt;
&lt;br /&gt;
== 10. Funktionstest ==&lt;br /&gt;
&lt;br /&gt;
# Erreichbarkeit vom vorgesehenen External-System testen.&lt;br /&gt;
# Status-Monitor prüfen.&lt;br /&gt;
# abgestimmten ungefährlichen Stationsbefehl senden.&lt;br /&gt;
# prüfen, dass ausschließlich die richtige Station reagiert.&lt;br /&gt;
# Init-/Statusmeldung testen.&lt;br /&gt;
# bei stationsgesteuerten Projekten Zustände und Timer prüfen.&lt;br /&gt;
&lt;br /&gt;
== 11. Neustarttest ==&lt;br /&gt;
&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
Nach erneuter Anmeldung:&lt;br /&gt;
&lt;br /&gt;
 systemctl status docker --no-pager&lt;br /&gt;
 docker ps&lt;br /&gt;
 docker logs --tail 100 megbes-internal-&amp;lt;Projekt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Container und Kommunikation müssen automatisch wieder funktionieren.&lt;br /&gt;
&lt;br /&gt;
== Typische Fehler ==&lt;br /&gt;
&lt;br /&gt;
; Container erscheint nicht in `docker ps`&lt;br /&gt;
: Mit `docker ps -a` auch beendete Container anzeigen und anschließend Logs lesen.&lt;br /&gt;
&lt;br /&gt;
; `port is already allocated`&lt;br /&gt;
: Der gewählte Host-Port ist bereits belegt. Mit `docker ps` und `sudo ss -lntup` prüfen; keinen zufälligen anderen Port wählen, ohne External-Konfiguration und Router anzupassen.&lt;br /&gt;
&lt;br /&gt;
; Zertifikatsfehler&lt;br /&gt;
: Dateinamen, Mount-Pfad, Kennwörter und Zuordnung zum Projekt prüfen.&lt;br /&gt;
&lt;br /&gt;
; Image kann nicht geladen werden&lt;br /&gt;
: Release-Schreibweise und Docker-Hub-Anmeldung prüfen.&lt;br /&gt;
&lt;br /&gt;
; Neustartschleife&lt;br /&gt;
: `docker ps -a` und `docker logs` prüfen. Nicht wiederholt neue Container mit anderen Namen erzeugen.&lt;br /&gt;
&lt;br /&gt;
== Projektdokumentation ==&lt;br /&gt;
&lt;br /&gt;
Container-Name, Ports, Subnetz, Release, Dateipfade, Stations-Timer, Installationsdatum und Testergebnis auf der Projektseite eintragen. Geheimwerte ausschließlich im Passwortmanager speichern.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:MegBes]]&lt;br /&gt;
[[Kategorie:megbes-internal]]&lt;br /&gt;
[[Kategorie:Installation]]&lt;/div&gt;</summary>
		<author><name>Clawtronics</name></author>
	</entry>
	<entry>
		<id>https://wiki.megbes.de/index.php?title=Ubuntu-LTS-Upgrade&amp;diff=21</id>
		<title>Ubuntu-LTS-Upgrade</title>
		<link rel="alternate" type="text/html" href="https://wiki.megbes.de/index.php?title=Ubuntu-LTS-Upgrade&amp;diff=21"/>
		<updated>2026-08-04T20:48:41Z</updated>

		<summary type="html">&lt;p&gt;Clawtronics: Ausführliche DAU-sichere Arbeitsanleitung angelegt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Ubuntu-LTS-Upgrade =&lt;br /&gt;
&lt;br /&gt;
Ein LTS-Upgrade wechselt den Server auf die nächste Ubuntu-LTS-Version. Es ist deutlich umfangreicher als eine normale Aktualisierung mit `apt upgrade` und benötigt Backup, Wartungsfenster und vollständigen MegBes-Funktionstest.&lt;br /&gt;
&lt;br /&gt;
Grundlage ist die [https://documentation.ubuntu.com/server/how-to/software/upgrade-your-release/ offizielle Ubuntu-Anleitung]. Es kann immer nur auf die jeweils nächste LTS-Version aktualisiert werden; LTS-Versionen dürfen nicht übersprungen werden.&lt;br /&gt;
&lt;br /&gt;
== Nicht spontan durchführen ==&lt;br /&gt;
&lt;br /&gt;
Vor dem Upgrade erforderlich:&lt;br /&gt;
&lt;br /&gt;
* ausdrückliches Wartungsfenster&lt;br /&gt;
* Zugriff auf lokale Konsole oder gesicherter Vor-Ort-Zugriff&lt;br /&gt;
* aktuelle Sicherung von Konfigurationen, Zertifikaten und persistenten Daten&lt;br /&gt;
* dokumentierte Container, Images, Ports und Volumes&lt;br /&gt;
* ausreichend freier Speicherplatz&lt;br /&gt;
* geprüfter Rückweg oder Neuinstallationsplan&lt;br /&gt;
&lt;br /&gt;
== 1. Ausgangszustand erfassen ==&lt;br /&gt;
&lt;br /&gt;
 lsb_release -a&lt;br /&gt;
 uname -r&lt;br /&gt;
 df -h&lt;br /&gt;
 sudo docker ps -a&lt;br /&gt;
 sudo docker images&lt;br /&gt;
 sudo docker volume ls&lt;br /&gt;
 sudo docker inspect &amp;lt;Containername&amp;gt; &amp;gt; &amp;lt;Projekt&amp;gt;-container-inspect.json&lt;br /&gt;
&lt;br /&gt;
Die erzeugte Inspect-Datei kann sensible Umgebungswerte enthalten. Sie geschützt ablegen und nicht ins Wiki kopieren.&lt;br /&gt;
&lt;br /&gt;
== 2. Backup erstellen und prüfen ==&lt;br /&gt;
&lt;br /&gt;
Mindestens sichern:&lt;br /&gt;
&lt;br /&gt;
* projektspezifische Umgebungsdatei&lt;br /&gt;
* Zertifikatsordner&lt;br /&gt;
* Container-Startbefehl beziehungsweise Inspect-Daten&lt;br /&gt;
* persistente Docker-Volumes, sofern vorhanden&lt;br /&gt;
* Netplan-Konfiguration&lt;br /&gt;
* weitere kundenspezifische Skripte&lt;br /&gt;
&lt;br /&gt;
Ein `docker export` allein ist kein vollständiges Backup von Volumes oder Host-Dateien.&lt;br /&gt;
&lt;br /&gt;
== 3. Aktuelles Release vollständig aktualisieren ==&lt;br /&gt;
&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt dist-upgrade -o APT::Get::Always-Include-Phased-Updates=true&lt;br /&gt;
&lt;br /&gt;
Beide Befehle müssen ohne Fehler enden. Danach Neustartbedarf prüfen und gegebenenfalls neu starten:&lt;br /&gt;
&lt;br /&gt;
 if [ -f /run/reboot-required ]; then sudo reboot; fi&lt;br /&gt;
&lt;br /&gt;
Nach dem Neustart Docker und MegBes erneut prüfen.&lt;br /&gt;
&lt;br /&gt;
== 4. Upgrade-Paket sicherstellen ==&lt;br /&gt;
&lt;br /&gt;
 sudo apt install update-manager-core&lt;br /&gt;
&lt;br /&gt;
Prüfen, ob nur LTS-Upgrades angeboten werden:&lt;br /&gt;
&lt;br /&gt;
 grep &#039;^Prompt=&#039; /etc/update-manager/release-upgrades&lt;br /&gt;
&lt;br /&gt;
Für Produktionsserver soll normalerweise erscheinen:&lt;br /&gt;
&lt;br /&gt;
 Prompt=lts&lt;br /&gt;
&lt;br /&gt;
== 5. Release-Upgrade starten ==&lt;br /&gt;
&lt;br /&gt;
 sudo do-release-upgrade&lt;br /&gt;
&lt;br /&gt;
Den Prozess nicht unbeaufsichtigt lassen. Vor der endgültigen Bestätigung zeigt Ubuntu geplante Installationen und Entfernungen an.&lt;br /&gt;
&lt;br /&gt;
Bei Fragen zu geänderten Konfigurationsdateien nicht blind antworten. Angepasste Netzwerk-, SSH- oder Docker-Konfigurationen im Zweifel behalten und die betroffene Datei notieren.&lt;br /&gt;
&lt;br /&gt;
Die Option `-d` für Entwicklungs-Releases darf auf Produktivsystemen nicht verwendet werden.&lt;br /&gt;
&lt;br /&gt;
== 6. Neustart durchführen ==&lt;br /&gt;
&lt;br /&gt;
Am Ende fordert Ubuntu zu einem Neustart auf. Erst danach ist das Upgrade abgeschlossen.&lt;br /&gt;
&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
== 7. Nachprüfung ==&lt;br /&gt;
&lt;br /&gt;
 lsb_release -a&lt;br /&gt;
 uname -r&lt;br /&gt;
 systemctl --failed&lt;br /&gt;
 sudo systemctl status docker --no-pager&lt;br /&gt;
 sudo docker ps&lt;br /&gt;
 sudo docker logs --tail 100 &amp;lt;Containername&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach den vollständigen MegBes-Funktionstest durchführen:&lt;br /&gt;
&lt;br /&gt;
# External erreicht Internal.&lt;br /&gt;
# Testbefehl erreicht die richtige Station.&lt;br /&gt;
# Stationsstatus funktioniert.&lt;br /&gt;
# Zertifikatsverbindung funktioniert.&lt;br /&gt;
# Status-Monitor meldet das Projekt erreichbar.&lt;br /&gt;
# Server- und Container-Neustart funktionieren.&lt;br /&gt;
&lt;br /&gt;
== 8. Docker-Paketquelle prüfen ==&lt;br /&gt;
&lt;br /&gt;
Während eines LTS-Upgrades können fremde Paketquellen deaktiviert werden. Prüfen:&lt;br /&gt;
&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 apt policy docker-ce&lt;br /&gt;
&lt;br /&gt;
Docker nicht neu installieren, wenn die vorhandene Installation und die Container funktionieren. Eine Änderung erst nach Sicherung und Prüfung durchführen.&lt;br /&gt;
&lt;br /&gt;
== Dokumentation ==&lt;br /&gt;
&lt;br /&gt;
Auf der Projektseite eintragen:&lt;br /&gt;
&lt;br /&gt;
* alte und neue Ubuntu-Version&lt;br /&gt;
* Datum und Wartungsfenster&lt;br /&gt;
* Backup-Ablage&lt;br /&gt;
* Besonderheiten während des Upgrades&lt;br /&gt;
* Docker-Version und Containerstatus&lt;br /&gt;
* Ergebnis aller Funktionstests&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:MegBes]]&lt;br /&gt;
[[Kategorie:Ubuntu]]&lt;br /&gt;
[[Kategorie:Wartung]]&lt;/div&gt;</summary>
		<author><name>Clawtronics</name></author>
	</entry>
	<entry>
		<id>https://wiki.megbes.de/index.php?title=Feste_IP-Adresse_unter_Ubuntu&amp;diff=20</id>
		<title>Feste IP-Adresse unter Ubuntu</title>
		<link rel="alternate" type="text/html" href="https://wiki.megbes.de/index.php?title=Feste_IP-Adresse_unter_Ubuntu&amp;diff=20"/>
		<updated>2026-08-04T20:48:41Z</updated>

		<summary type="html">&lt;p&gt;Clawtronics: Ausführliche DAU-sichere Arbeitsanleitung angelegt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Feste IP-Adresse unter Ubuntu =&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung beschreibt die dauerhafte Vergabe einer festen IPv4-Adresse auf einem Ubuntu-LTS-Server mit Netplan. Sie basiert auf der [https://documentation.ubuntu.com/server/explanation/networking/configuring-networks/ offiziellen Ubuntu-Netzwerkdokumentation].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Warnung:&#039;&#039;&#039; Eine falsche Netzwerkkonfiguration kann die SSH-Verbindung sofort unterbrechen. Wenn möglich, die Änderung an der lokalen Konsole durchführen oder sicherstellen, dass jemand vor Ort Zugriff auf Tastatur und Bildschirm hat.&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen und benötigte Werte ==&lt;br /&gt;
&lt;br /&gt;
Vor Beginn müssen diese projektspezifischen Werte bekannt sein:&lt;br /&gt;
&lt;br /&gt;
* Name der Netzwerkschnittstelle, zum Beispiel `enp1s0`&lt;br /&gt;
* gewünschte IP-Adresse mit Präfix, zum Beispiel `&amp;lt;IP-Adresse&amp;gt;/24`&lt;br /&gt;
* Standard-Gateway, meist die Adresse des Routers&lt;br /&gt;
* mindestens ein DNS-Server&lt;br /&gt;
* Bestätigung, dass die IP-Adresse nicht bereits verwendet wird&lt;br /&gt;
&lt;br /&gt;
Beispielwerte aus anderen Kundenprojekten dürfen nicht ungeprüft übernommen werden.&lt;br /&gt;
&lt;br /&gt;
== 1. Aktuellen Zustand erfassen ==&lt;br /&gt;
&lt;br /&gt;
 ip address&lt;br /&gt;
 ip route&lt;br /&gt;
 sudo netplan status -a&lt;br /&gt;
&lt;br /&gt;
Den Namen der tatsächlich verbundenen Schnittstelle notieren. `lo` ist nur die interne Loopback-Schnittstelle und darf nicht verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Vorhandene Netplan-Dateien anzeigen:&lt;br /&gt;
&lt;br /&gt;
 ls -l /etc/netplan&lt;br /&gt;
&lt;br /&gt;
Inhalt sichern:&lt;br /&gt;
&lt;br /&gt;
 sudo cp -a /etc/netplan /etc/netplan.backup-$(date +%Y%m%d-%H%M%S)&lt;br /&gt;
&lt;br /&gt;
== 2. Freie IP-Adresse sicherstellen ==&lt;br /&gt;
&lt;br /&gt;
Die Adresse mit Kundennetz-Dokumentation und Router abgleichen. Zusätzlich kann vor der Vergabe getestet werden:&lt;br /&gt;
&lt;br /&gt;
 ping -c 4 &amp;lt;geplante-IP-Adresse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Keine Antwort beweist nicht sicher, dass die Adresse frei ist; manche Geräte beantworten keinen Ping. Die Router-/DHCP-Liste bleibt maßgeblich.&lt;br /&gt;
&lt;br /&gt;
== 3. Netplan-Datei bearbeiten ==&lt;br /&gt;
&lt;br /&gt;
Eine eindeutige Datei anlegen:&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/netplan/99-megbes-static.yaml&lt;br /&gt;
&lt;br /&gt;
Beispiel – alle Werte in spitzen Klammern ersetzen:&lt;br /&gt;
&lt;br /&gt;
 network:&lt;br /&gt;
   version: 2&lt;br /&gt;
   renderer: networkd&lt;br /&gt;
   ethernets:&lt;br /&gt;
     &amp;lt;Schnittstelle&amp;gt;:&lt;br /&gt;
       dhcp4: false&lt;br /&gt;
       addresses:&lt;br /&gt;
         - &amp;lt;IP-Adresse&amp;gt;/&amp;lt;Praefix&amp;gt;&lt;br /&gt;
       routes:&lt;br /&gt;
         - to: default&lt;br /&gt;
           via: &amp;lt;Gateway-Adresse&amp;gt;&lt;br /&gt;
       nameservers:&lt;br /&gt;
         addresses:&lt;br /&gt;
           - &amp;lt;DNS-Server-1&amp;gt;&lt;br /&gt;
           - &amp;lt;DNS-Server-2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Typischer Präfix für ein Netz mit der Maske `255.255.255.0` ist `/24`. Dies ist aber vor Ort zu prüfen.&lt;br /&gt;
&lt;br /&gt;
In `nano` speichern mit `Strg+O`, Enter und schließen mit `Strg+X`.&lt;br /&gt;
&lt;br /&gt;
Dateirechte setzen:&lt;br /&gt;
&lt;br /&gt;
 sudo chmod 600 /etc/netplan/99-megbes-static.yaml&lt;br /&gt;
&lt;br /&gt;
== 4. Syntax prüfen ==&lt;br /&gt;
&lt;br /&gt;
 sudo netplan generate&lt;br /&gt;
&lt;br /&gt;
Wenn keine Ausgabe erscheint, wurde die Syntax grundsätzlich akzeptiert. Bei YAML-Fehlern Einrückung und Doppelpunkte kontrollieren. YAML verwendet Leerzeichen, keine Tabulatoren.&lt;br /&gt;
&lt;br /&gt;
== 5. Konfiguration sicher testen ==&lt;br /&gt;
&lt;br /&gt;
 sudo netplan try&lt;br /&gt;
&lt;br /&gt;
Netplan aktiviert die neue Konfiguration vorübergehend und wartet auf eine Bestätigung. Bleibt die Verbindung bestehen und funktionieren die Tests, innerhalb der angezeigten Frist mit Enter bestätigen. Bei Verlust der Verbindung wird die Änderung normalerweise automatisch zurückgerollt.&lt;br /&gt;
&lt;br /&gt;
Von einem zweiten Fenster aus testen:&lt;br /&gt;
&lt;br /&gt;
 ping -c 4 &amp;lt;Gateway-Adresse&amp;gt;&lt;br /&gt;
 getent hosts download.docker.com&lt;br /&gt;
&lt;br /&gt;
== 6. Dauerhaften Zustand kontrollieren ==&lt;br /&gt;
&lt;br /&gt;
 ip address show &amp;lt;Schnittstelle&amp;gt;&lt;br /&gt;
 ip route&lt;br /&gt;
 resolvectl status &amp;lt;Schnittstelle&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Erwartet werden:&lt;br /&gt;
&lt;br /&gt;
* die geplante IP-Adresse&lt;br /&gt;
* eine Default-Route über den vorgesehenen Router&lt;br /&gt;
* die eingetragenen DNS-Server&lt;br /&gt;
&lt;br /&gt;
== 7. Neustarttest ==&lt;br /&gt;
&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
Danach über die neue Adresse anmelden und erneut prüfen:&lt;br /&gt;
&lt;br /&gt;
 ip address&lt;br /&gt;
 ip route&lt;br /&gt;
 getent hosts download.docker.com&lt;br /&gt;
&lt;br /&gt;
== Typische Fehler ==&lt;br /&gt;
&lt;br /&gt;
; SSH-Verbindung verloren&lt;br /&gt;
: Ablauf von `netplan try` abwarten. Falls keine Rückkehr erfolgt, lokale Konsole verwenden und die Sicherung unter `/etc/netplan.backup-...` wiederherstellen.&lt;br /&gt;
&lt;br /&gt;
; `Permissions for ... are too open`&lt;br /&gt;
: `sudo chmod 600 /etc/netplan/99-megbes-static.yaml` ausführen.&lt;br /&gt;
&lt;br /&gt;
; YAML-Fehler&lt;br /&gt;
: ausschließlich Leerzeichen verwenden und Einrückung exakt prüfen.&lt;br /&gt;
&lt;br /&gt;
; IP funktioniert lokal, Internetnamen nicht&lt;br /&gt;
: DNS-Einträge und `resolvectl status` prüfen.&lt;br /&gt;
&lt;br /&gt;
== Dokumentation ==&lt;br /&gt;
&lt;br /&gt;
Auf der Projektseite festhalten:&lt;br /&gt;
&lt;br /&gt;
* Schnittstellenname&lt;br /&gt;
* IP-Adresse und Präfix&lt;br /&gt;
* Gateway und DNS-Server&lt;br /&gt;
* Name der Netplan-Datei&lt;br /&gt;
* Datum des Neustarttests&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:MegBes]]&lt;br /&gt;
[[Kategorie:Ubuntu]]&lt;br /&gt;
[[Kategorie:Netzwerk]]&lt;/div&gt;</summary>
		<author><name>Clawtronics</name></author>
	</entry>
	<entry>
		<id>https://wiki.megbes.de/index.php?title=Neukunde&amp;diff=19</id>
		<title>Neukunde</title>
		<link rel="alternate" type="text/html" href="https://wiki.megbes.de/index.php?title=Neukunde&amp;diff=19"/>
		<updated>2026-08-04T20:45:08Z</updated>

		<summary type="html">&lt;p&gt;Clawtronics: Interne Servereinrichtung mit konkreten Befehlen und Prüfungen erweitert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Neukunde / neues Projekt =&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig:&#039;&#039;&#039; 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.&lt;br /&gt;
&lt;br /&gt;
== 1. Projekt festlegen ==&lt;br /&gt;
&lt;br /&gt;
Vor Beginn sind mindestens zu bestimmen:&lt;br /&gt;
&lt;br /&gt;
* vollständiger Projekt- und Kundenname&lt;br /&gt;
* eindeutiges technisches Projektkürzel&lt;br /&gt;
* zuständige Personen bei tinetronics&lt;br /&gt;
* gewünschte Bedienoberfläche&lt;br /&gt;
* Art der Anmeldung:&lt;br /&gt;
** Anmeldung über Ticket-Monitor&lt;br /&gt;
** direkter Zugriff ohne Ticket-Monitor, wie beim Subprojekt MiQua Guide&lt;br /&gt;
** gegebenenfalls weitere projektspezifische Variante&lt;br /&gt;
* Anzahl und Art der Medienstationen&lt;br /&gt;
* Stationsnummern und benötigte UDP-Befehle&lt;br /&gt;
* lokales Subnetz und gewünschter UDP-Port&lt;br /&gt;
* projektspezifischer Stations-Timer&lt;br /&gt;
&lt;br /&gt;
Anschließend eine neue Seite in der [[Projektübersicht]] anlegen.&lt;br /&gt;
&lt;br /&gt;
== 2. Domains und Erreichbarkeit ==&lt;br /&gt;
&lt;br /&gt;
Im Regelfall werden zwei Adressen benötigt:&lt;br /&gt;
&lt;br /&gt;
; Externe Adresse&lt;br /&gt;
: Subdomain für `megbes-external`, beispielsweise `&amp;lt;projekt&amp;gt;.megbes.de`.&lt;br /&gt;
&lt;br /&gt;
; Interne Erreichbarkeit&lt;br /&gt;
: DynDNS-Adresse oder eine andere dauerhaft erreichbare Adresse für `megbes-internal`, beispielsweise `&amp;lt;projekt&amp;gt;-dyndns.megbes.de`.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Für die interne Seite wird bevorzugt IONOS DynDNS eingesetzt. Alternative Anbieter sind nur zu verwenden, wenn dies technisch erforderlich ist.&lt;br /&gt;
&lt;br /&gt;
== 3. Projektkonfiguration in GitHub ==&lt;br /&gt;
&lt;br /&gt;
Im privaten Repository `tinetronics/megbes-config` sind die produktiven Konfigurationen anzupassen.&lt;br /&gt;
&lt;br /&gt;
=== megbes-external-config.json ===&lt;br /&gt;
&lt;br /&gt;
Für das Projekt werden mindestens gepflegt:&lt;br /&gt;
&lt;br /&gt;
* technischer Projektschlüssel&lt;br /&gt;
* Kommunikationsprotokoll zum internen Server&lt;br /&gt;
* Adresse von `megbes-internal`&lt;br /&gt;
* Port von `megbes-internal`&lt;br /&gt;
* bei Projekten mit zentraler Anmeldung: initialer Administratorname und verschlüsseltes Administratorpasswort&lt;br /&gt;
&lt;br /&gt;
Das Administratorpasswort darf niemals im Klartext eingetragen werden. Die Verschlüsselung erfolgt mit dem vorgesehenen Werkzeug des Status-Monitors.&lt;br /&gt;
&lt;br /&gt;
=== megbes-status-config.json ===&lt;br /&gt;
&lt;br /&gt;
Das Projekt wird zusätzlich mit seiner internen und externen Adresse in die Status-Konfiguration aufgenommen.&lt;br /&gt;
&lt;br /&gt;
=== Prüfung ===&lt;br /&gt;
&lt;br /&gt;
# JSON-Syntax prüfen.&lt;br /&gt;
# Änderungen nachvollziehbar committen.&lt;br /&gt;
# Änderungen über den vereinbarten Git-Prozess bereitstellen.&lt;br /&gt;
# Nach der Übernahme die betroffenen Dienste kontrolliert neu laden.&lt;br /&gt;
&lt;br /&gt;
Siehe auch [[Konfiguration]].&lt;br /&gt;
&lt;br /&gt;
== 4. megbes-external unter Plesk ==&lt;br /&gt;
&lt;br /&gt;
Für jedes Projekt wird auf dem zentralen IONOS-Server ein eigener Docker-Container betrieben.&lt;br /&gt;
&lt;br /&gt;
# Neue externe Subdomain in Plesk anlegen.&lt;br /&gt;
# TLS-Zertifikat für die Subdomain einrichten.&lt;br /&gt;
# Docker-Container aus dem freigegebenen `megbes-external`-Image erstellen.&lt;br /&gt;
# Container eindeutig nach dem Projekt benennen.&lt;br /&gt;
# automatischen Start nach einem Serverneustart aktivieren.&lt;br /&gt;
# erforderliche Umgebungsvariablen anhand der aktuellen freigegebenen Vorlage setzen.&lt;br /&gt;
# Zertifikatsdateien beziehungsweise Volumes korrekt einbinden.&lt;br /&gt;
# automatische Portzuordnung nach der initialen Einrichtung deaktivieren.&lt;br /&gt;
# Docker-Proxy-Regel von der Subdomain auf den Container einrichten.&lt;br /&gt;
# Container starten und Protokoll auf Fehler prüfen.&lt;br /&gt;
&lt;br /&gt;
Der einzusetzende Release wird bewusst festgelegt. Ein neuer Kunde erhält grundsätzlich den aktuell freigegebenen Release, sofern kein bekannter projektspezifischer Grund dagegenspricht.&lt;br /&gt;
&lt;br /&gt;
== 5. Zertifikate ==&lt;br /&gt;
&lt;br /&gt;
Projektbezogene Zertifikate werden über den Status-Monitor erstellt und entsprechend der dortigen Anleitung installiert.&lt;br /&gt;
&lt;br /&gt;
Zu prüfen sind:&lt;br /&gt;
&lt;br /&gt;
* Zertifikat gehört zum richtigen Projekt und zur richtigen Adresse.&lt;br /&gt;
* Zertifikatsdateien liegen am vorgesehenen Ablageort.&lt;br /&gt;
* Container-Volume zeigt auf den korrekten Ordner.&lt;br /&gt;
* Kennwörter sind ausschließlich im Passwortmanager und in der geschützten Laufzeitkonfiguration hinterlegt.&lt;br /&gt;
* Verbindung wird nach dem Neustart erfolgreich getestet.&lt;br /&gt;
&lt;br /&gt;
== 6. Interner Server beim Kunden ==&lt;br /&gt;
&lt;br /&gt;
Für jedes Projekt wird beim Kunden ein eigener Server für `megbes-internal` eingerichtet. Die folgenden Schritte sind in dieser Reihenfolge abzuarbeiten.&lt;br /&gt;
&lt;br /&gt;
=== 6.1 Ubuntu installieren und anmelden ===&lt;br /&gt;
&lt;br /&gt;
Die jeweils aktuelle Ubuntu-LTS-Version installieren. Während der Installation:&lt;br /&gt;
&lt;br /&gt;
* eindeutigen Servernamen nach dem Projektschema vergeben&lt;br /&gt;
* Administrationsbenutzer anlegen&lt;br /&gt;
* OpenSSH-Server installieren&lt;br /&gt;
* keine unnötigen Zusatzpakete auswählen&lt;br /&gt;
* Installationsmedium nach Aufforderung entfernen&lt;br /&gt;
&lt;br /&gt;
Nach dem Neustart lokal oder per SSH anmelden.&lt;br /&gt;
&lt;br /&gt;
=== 6.2 Aktuelle Ubuntu-Version prüfen ===&lt;br /&gt;
&lt;br /&gt;
 lsb_release -a&lt;br /&gt;
&lt;br /&gt;
Falls der Befehl fehlt:&lt;br /&gt;
&lt;br /&gt;
 cat /etc/os-release&lt;br /&gt;
&lt;br /&gt;
Prüfen, ob tatsächlich die vorgesehene LTS-Version installiert ist.&lt;br /&gt;
&lt;br /&gt;
=== 6.3 System vollständig aktualisieren ===&lt;br /&gt;
&lt;br /&gt;
Zuerst aktuelle Paketlisten abrufen:&lt;br /&gt;
&lt;br /&gt;
 sudo apt update&lt;br /&gt;
&lt;br /&gt;
Der Befehl muss ohne Zeilen mit `E:` oder `Error` enden. Danach verfügbare Aktualisierungen installieren:&lt;br /&gt;
&lt;br /&gt;
 sudo apt upgrade&lt;br /&gt;
&lt;br /&gt;
Die Paketliste prüfen und die Rückfrage mit `Y` beziehungsweise `J` bestätigen. Nach Abschluss den Neustartbedarf prüfen:&lt;br /&gt;
&lt;br /&gt;
 if [ -f /run/reboot-required ]; then cat /run/reboot-required; else echo &amp;quot;Kein Neustart erforderlich&amp;quot;; fi&lt;br /&gt;
&lt;br /&gt;
Falls ein Neustart erforderlich ist:&lt;br /&gt;
&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
Danach neu anmelden und prüfen:&lt;br /&gt;
&lt;br /&gt;
 systemctl --failed&lt;br /&gt;
&lt;br /&gt;
Die vollständige Anleitung einschließlich Fehlerbehandlung und Funktionstest steht unter [[Ubuntu aktualisieren]].&lt;br /&gt;
&lt;br /&gt;
=== 6.4 Feste lokale IP-Adresse einrichten ===&lt;br /&gt;
&lt;br /&gt;
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]].&lt;br /&gt;
&lt;br /&gt;
Nach der Änderung Verbindung, Gateway und DNS testen:&lt;br /&gt;
&lt;br /&gt;
 ip address&lt;br /&gt;
 ip route&lt;br /&gt;
 ping -c 4 &amp;lt;Gateway-Adresse&amp;gt;&lt;br /&gt;
 getent hosts download.docker.com&lt;br /&gt;
&lt;br /&gt;
=== 6.5 Docker installieren ===&lt;br /&gt;
&lt;br /&gt;
Docker aus der offiziellen Docker-Paketquelle installieren. Nicht mehr die veraltete GPG-/Repository-Anleitung aus dem Word-Dokument verwenden.&lt;br /&gt;
&lt;br /&gt;
Die vollständige Schrittfolge steht unter [[Docker installieren]]. Abschließend müssen diese Prüfungen erfolgreich sein:&lt;br /&gt;
&lt;br /&gt;
 docker --version&lt;br /&gt;
 sudo systemctl status docker --no-pager&lt;br /&gt;
 sudo docker run --rm hello-world&lt;br /&gt;
&lt;br /&gt;
=== 6.6 Projektordner vorbereiten ===&lt;br /&gt;
&lt;br /&gt;
Einen eindeutig benannten Ordner für die geschützten Zertifikatsdateien anlegen. Beispiel – Benutzer und Projektkürzel anpassen:&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /home/&amp;lt;Benutzername&amp;gt;/certs/&amp;lt;Projektkürzel&amp;gt;&lt;br /&gt;
 chmod 700 /home/&amp;lt;Benutzername&amp;gt;/certs/&amp;lt;Projektkürzel&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend kontrollieren:&lt;br /&gt;
&lt;br /&gt;
 ls -ld /home/&amp;lt;Benutzername&amp;gt;/certs/&amp;lt;Projektkürzel&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6.7 Projektbezogene Dateien übertragen ===&lt;br /&gt;
&lt;br /&gt;
Benötigt werden mindestens:&lt;br /&gt;
&lt;br /&gt;
* projektspezifische Umgebungsdatei&lt;br /&gt;
* Key- und Truststore beziehungsweise aktuell verwendete Zertifikatsdateien&lt;br /&gt;
* dokumentierter Container-Name&lt;br /&gt;
* festgelegter External-/Internal-Port&lt;br /&gt;
* UDP-Port und lokales Subnetz&lt;br /&gt;
* freigegebener Release&lt;br /&gt;
&lt;br /&gt;
Dateien nach dem Übertragen mit `ls -l` kontrollieren. Geheimnisdateien dürfen nicht für alle Benutzer lesbar sein.&lt;br /&gt;
&lt;br /&gt;
=== 6.8 megbes-internal starten ===&lt;br /&gt;
&lt;br /&gt;
Der projektspezifische Docker-Befehl wird anhand der geprüften Vorlage erstellt. Keine Befehlszeile eines anderen Kunden ungeprüft kopieren. Vor dem Start insbesondere kontrollieren:&lt;br /&gt;
&lt;br /&gt;
* Container-Name&lt;br /&gt;
* External-zu-Container-Port&lt;br /&gt;
* UDP-Port&lt;br /&gt;
* Pfad und Name der Umgebungsdatei&lt;br /&gt;
* Zertifikats-Volume&lt;br /&gt;
* Docker-Image und Release&lt;br /&gt;
* Neustartregel `unless-stopped`&lt;br /&gt;
&lt;br /&gt;
Die ausführliche Anleitung folgt unter [[megbes-internal]].&lt;br /&gt;
&lt;br /&gt;
=== 6.9 Start prüfen ===&lt;br /&gt;
&lt;br /&gt;
 sudo docker ps&lt;br /&gt;
 sudo docker logs --tail 100 &amp;lt;Containername&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Container muss `Up` sein. Wiederholte Exceptions, Zertifikats- oder Verbindungsfehler müssen vor dem nächsten Schritt behoben werden.&lt;br /&gt;
&lt;br /&gt;
=== 6.10 Neustarttest ===&lt;br /&gt;
&lt;br /&gt;
Server kontrolliert neu starten:&lt;br /&gt;
&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
Danach neu anmelden und prüfen:&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl status docker --no-pager&lt;br /&gt;
 sudo docker ps&lt;br /&gt;
&lt;br /&gt;
Der MegBes-Container muss aufgrund der Neustartregel automatisch wieder laufen.&lt;br /&gt;
== 7. Router, DynDNS und Portfreigabe ==&lt;br /&gt;
&lt;br /&gt;
Am Kundenrouter sind – abhängig vom Projekt – folgende Punkte einzurichten:&lt;br /&gt;
&lt;br /&gt;
* feste Zuordnung für den internen Server&lt;br /&gt;
* DynDNS-Konfiguration&lt;br /&gt;
* erforderliche TCP-Portfreigabe zu `megbes-internal`&lt;br /&gt;
* gegebenenfalls kundenspezifische Firewall-Regeln&lt;br /&gt;
&lt;br /&gt;
Der externe Port, der interne Port und die in `megbes-external-config.json` eingetragene Portnummer müssen zueinander passen.&lt;br /&gt;
&lt;br /&gt;
Router-Zugangsdaten und geheime DynDNS-Update-URLs gehören ausschließlich in den Passwortmanager.&lt;br /&gt;
&lt;br /&gt;
== 8. Medienstationen ==&lt;br /&gt;
&lt;br /&gt;
Für jede Station sind zu erfassen:&lt;br /&gt;
&lt;br /&gt;
* Stationsnummer&lt;br /&gt;
* Gerätetyp&lt;br /&gt;
* lokale IP-Adresse&lt;br /&gt;
* unterstützte UDP-Befehle&lt;br /&gt;
* verwendeter UDP-Port&lt;br /&gt;
* Art der Bedienung und Anmeldung&lt;br /&gt;
* Verhalten bei `IDLE`, `TOUCHSCREEN`, `REMOTE` und gegebenenfalls `OPEN`&lt;br /&gt;
* erwartete Init-/Statusmeldung&lt;br /&gt;
&lt;br /&gt;
Siehe [[UDP und Stationszustände]].&lt;br /&gt;
&lt;br /&gt;
== 9. Abnahme und Funktionstest ==&lt;br /&gt;
&lt;br /&gt;
Vor Übergabe müssen mindestens folgende Prüfungen erfolgreich sein:&lt;br /&gt;
&lt;br /&gt;
# externe Projektadresse ist per HTTPS erreichbar.&lt;br /&gt;
# vorgesehene Anmeldung beziehungsweise der direkte Zugriff funktioniert.&lt;br /&gt;
# `megbes-external` erreicht `megbes-internal`.&lt;br /&gt;
# Befehle erreichen die richtige Station.&lt;br /&gt;
# Start, Stopp und weitere projektspezifische Befehle funktionieren.&lt;br /&gt;
# Stationszustände und Timer verhalten sich wie vereinbart.&lt;br /&gt;
# Neustart von externem und internem Container wurde getestet.&lt;br /&gt;
# Neustart des internen Servers wurde getestet.&lt;br /&gt;
# Status-Monitor erkennt die Projektinstanzen.&lt;br /&gt;
# Status-/Init-Meldungen erreichen den vorgesehenen Empfänger.&lt;br /&gt;
# Fehler und Besonderheiten sind auf der Projektseite dokumentiert.&lt;br /&gt;
&lt;br /&gt;
== 10. Projektdokumentation abschließen ==&lt;br /&gt;
&lt;br /&gt;
Auf der Projektseite werden anschließend mindestens eingetragen:&lt;br /&gt;
&lt;br /&gt;
* Domains und technische Projektschlüssel&lt;br /&gt;
* Container-Namen&lt;br /&gt;
* Ports und Netzwerkbereiche&lt;br /&gt;
* installierte Releases von External und Internal&lt;br /&gt;
* Server- und Stationshardware&lt;br /&gt;
* Stations-Timer&lt;br /&gt;
* Datum und Ergebnis des letzten Funktionstests&lt;br /&gt;
* Besonderheiten und offene Aufgaben&lt;br /&gt;
* Verweis auf die zugehörigen Einträge im Passwortmanager – niemals die Geheimwerte selbst&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:MegBes]]&lt;br /&gt;
[[Kategorie:Einrichtung]]&lt;br /&gt;
[[Kategorie:Checkliste]]&lt;/div&gt;</summary>
		<author><name>Clawtronics</name></author>
	</entry>
	<entry>
		<id>https://wiki.megbes.de/index.php?title=Docker_installieren&amp;diff=18</id>
		<title>Docker installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.megbes.de/index.php?title=Docker_installieren&amp;diff=18"/>
		<updated>2026-08-04T20:45:08Z</updated>

		<summary type="html">&lt;p&gt;Clawtronics: Ausführliche DAU-sichere Arbeitsanleitung angelegt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Docker installieren =&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung beschreibt die Installation von Docker Engine auf einem neuen Ubuntu-LTS-Server für `megbes-internal`. Sie basiert auf der [https://docs.docker.com/engine/install/ubuntu/ offiziellen Docker-Dokumentation].&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
&lt;br /&gt;
* unterstützte 64-Bit-Ubuntu-LTS-Version&lt;br /&gt;
* Benutzerkonto mit `sudo`-Berechtigung&lt;br /&gt;
* funktionierende Internet- und DNS-Verbindung&lt;br /&gt;
* zuvor vollständig aktualisiertes System gemäß [[Ubuntu aktualisieren]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung bei bestehenden Servern:&#039;&#039;&#039; Nicht ungeprüft Docker-Pakete entfernen oder neu installieren. Auf einem bereits produktiv eingesetzten System zunächst Container, Images, Volumes und Installationsquelle erfassen.&lt;br /&gt;
&lt;br /&gt;
== 1. Prüfen, ob Docker bereits installiert ist ==&lt;br /&gt;
&lt;br /&gt;
 docker --version&lt;br /&gt;
&lt;br /&gt;
Zusätzlich:&lt;br /&gt;
&lt;br /&gt;
 systemctl status docker --no-pager&lt;br /&gt;
&lt;br /&gt;
Wenn eine Docker-Version angezeigt wird und der Dienst läuft, nicht einfach erneut installieren. Stattdessen vorhandene Installation und Projektzustand dokumentieren.&lt;br /&gt;
&lt;br /&gt;
== 2. Systemarchitektur und Ubuntu-Version prüfen ==&lt;br /&gt;
&lt;br /&gt;
 dpkg --print-architecture&lt;br /&gt;
 cat /etc/os-release&lt;br /&gt;
&lt;br /&gt;
Für die üblichen internen Server wird normalerweise `amd64` angezeigt. Bei Raspberry Pi kann `arm64` erscheinen.&lt;br /&gt;
&lt;br /&gt;
== 3. Voraussetzungen installieren ==&lt;br /&gt;
&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt install ca-certificates curl&lt;br /&gt;
&lt;br /&gt;
Die Installation mit `Y` beziehungsweise `J` bestätigen, falls APT nachfragt.&lt;br /&gt;
&lt;br /&gt;
== 4. Verzeichnis für Paket-Schlüssel anlegen ==&lt;br /&gt;
&lt;br /&gt;
 sudo install -m 0755 -d /etc/apt/keyrings&lt;br /&gt;
&lt;br /&gt;
Der Befehl legt das Verzeichnis an und setzt passende Leserechte.&lt;br /&gt;
&lt;br /&gt;
== 5. Offiziellen Docker-Schlüssel laden ==&lt;br /&gt;
&lt;br /&gt;
 sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc&lt;br /&gt;
 sudo chmod a+r /etc/apt/keyrings/docker.asc&lt;br /&gt;
&lt;br /&gt;
Prüfen, ob die Datei vorhanden ist:&lt;br /&gt;
&lt;br /&gt;
 ls -l /etc/apt/keyrings/docker.asc&lt;br /&gt;
&lt;br /&gt;
Es muss eine Datei mit einer Größe größer als null Byte angezeigt werden.&lt;br /&gt;
&lt;br /&gt;
== 6. Offizielle Docker-Paketquelle einrichten ==&lt;br /&gt;
&lt;br /&gt;
Den folgenden Block vollständig kopieren und ausführen:&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/apt/sources.list.d/docker.sources &amp;gt; /dev/null &amp;lt;&amp;lt;EOF&lt;br /&gt;
 Types: deb&lt;br /&gt;
 URIs: https://download.docker.com/linux/ubuntu&lt;br /&gt;
 Suites: $(. /etc/os-release &amp;amp;&amp;amp; echo &amp;quot;${UBUNTU_CODENAME:-$VERSION_CODENAME}&amp;quot;)&lt;br /&gt;
 Components: stable&lt;br /&gt;
 Architectures: $(dpkg --print-architecture)&lt;br /&gt;
 Signed-By: /etc/apt/keyrings/docker.asc&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
Danach Paketlisten neu laden:&lt;br /&gt;
&lt;br /&gt;
 sudo apt update&lt;br /&gt;
&lt;br /&gt;
=== Erfolgskriterium ===&lt;br /&gt;
&lt;br /&gt;
In der Ausgabe erscheint die Docker-Paketquelle ohne Signatur- oder HTTP-Fehler.&lt;br /&gt;
&lt;br /&gt;
== 7. Docker Engine installieren ==&lt;br /&gt;
&lt;br /&gt;
 sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin&lt;br /&gt;
&lt;br /&gt;
Die vorgeschlagenen Änderungen prüfen und bestätigen.&lt;br /&gt;
&lt;br /&gt;
== 8. Docker-Dienst prüfen ==&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl status docker --no-pager&lt;br /&gt;
&lt;br /&gt;
Erwarteter Zustand:&lt;br /&gt;
&lt;br /&gt;
 Active: active (running)&lt;br /&gt;
&lt;br /&gt;
Falls Docker nicht läuft:&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl start docker&lt;br /&gt;
 sudo systemctl status docker --no-pager&lt;br /&gt;
&lt;br /&gt;
Autostart prüfen und gegebenenfalls aktivieren:&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable docker&lt;br /&gt;
&lt;br /&gt;
== 9. Testcontainer starten ==&lt;br /&gt;
&lt;br /&gt;
 sudo docker run --rm hello-world&lt;br /&gt;
&lt;br /&gt;
Docker lädt ein kleines Testimage und startet es. Die Ausgabe muss sinngemäß `Hello from Docker!` enthalten. Durch `--rm` wird der Testcontainer nach dem Lauf automatisch entfernt.&lt;br /&gt;
&lt;br /&gt;
== 10. Optional: Docker ohne sudo verwenden ==&lt;br /&gt;
&lt;br /&gt;
Für den vorgesehenen Administrationsbenutzer:&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG docker &amp;quot;$USER&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Danach vollständig abmelden und erneut anmelden. Alternativ wirkt für die aktuelle Sitzung:&lt;br /&gt;
&lt;br /&gt;
 newgrp docker&lt;br /&gt;
&lt;br /&gt;
Anschließend testen:&lt;br /&gt;
&lt;br /&gt;
 docker ps&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sicherheitshinweis:&#039;&#039;&#039; Mitglieder der Gruppe `docker` besitzen praktisch weitreichende Rechte auf dem Server. Nur ausdrücklich autorisierte Administrationskonten hinzufügen.&lt;br /&gt;
&lt;br /&gt;
== 11. Installationsstand dokumentieren ==&lt;br /&gt;
&lt;br /&gt;
 docker --version&lt;br /&gt;
 docker compose version&lt;br /&gt;
 sudo docker info&lt;br /&gt;
&lt;br /&gt;
Für die Projektseite notieren:&lt;br /&gt;
&lt;br /&gt;
* Ubuntu-Version und Architektur&lt;br /&gt;
* Docker-Version&lt;br /&gt;
* Installationsdatum&lt;br /&gt;
* Name des Administrationsbenutzers&lt;br /&gt;
* Ergebnis des `hello-world`-Tests&lt;br /&gt;
&lt;br /&gt;
== Typische Fehler ==&lt;br /&gt;
&lt;br /&gt;
; `Could not resolve host`&lt;br /&gt;
: Internetverbindung und DNS prüfen.&lt;br /&gt;
&lt;br /&gt;
; `NO_PUBKEY` oder Signaturfehler&lt;br /&gt;
: Schlüsseldatei und `Signed-By`-Pfad kontrollieren; nicht mit unsicheren APT-Optionen umgehen.&lt;br /&gt;
&lt;br /&gt;
; `permission denied while trying to connect to the Docker daemon socket`&lt;br /&gt;
: Befehl zunächst mit `sudo` ausführen oder Gruppenmitgliedschaft nach vollständiger Neuanmeldung prüfen.&lt;br /&gt;
&lt;br /&gt;
; Docker startet nicht&lt;br /&gt;
: Details anzeigen:&lt;br /&gt;
&lt;br /&gt;
 sudo journalctl -u docker --no-pager -n 100&lt;br /&gt;
&lt;br /&gt;
Fehler nicht durch Löschen von `/var/lib/docker` „beheben“; dort können produktive Images, Container und Volumes liegen.&lt;br /&gt;
&lt;br /&gt;
== Nächster Schritt ==&lt;br /&gt;
&lt;br /&gt;
Nach erfolgreicher Installation folgt die Einrichtung von [[megbes-internal]].&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:MegBes]]&lt;br /&gt;
[[Kategorie:Docker]]&lt;br /&gt;
[[Kategorie:Installation]]&lt;/div&gt;</summary>
		<author><name>Clawtronics</name></author>
	</entry>
	<entry>
		<id>https://wiki.megbes.de/index.php?title=Ubuntu_aktualisieren&amp;diff=17</id>
		<title>Ubuntu aktualisieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.megbes.de/index.php?title=Ubuntu_aktualisieren&amp;diff=17"/>
		<updated>2026-08-04T20:45:08Z</updated>

		<summary type="html">&lt;p&gt;Clawtronics: Ausführliche DAU-sichere Arbeitsanleitung angelegt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Ubuntu aktualisieren =&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung beschreibt die regelmäßige Aktualisierung eines bestehenden Ubuntu-Servers innerhalb derselben Ubuntu-Version, beispielsweise Ubuntu 24.04 LTS. Ein Wechsel auf die nächste LTS-Version ist ein größerer Eingriff und wird getrennt unter [[Ubuntu-LTS-Upgrade]] dokumentiert.&lt;br /&gt;
&lt;br /&gt;
Die Befehle orientieren sich an der [https://documentation.ubuntu.com/server/how-to/software/package-management/ offiziellen Ubuntu-Server-Dokumentation].&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
&lt;br /&gt;
* Zugriff auf die lokale Konsole oder per SSH&lt;br /&gt;
* Benutzerkonto mit `sudo`-Berechtigung&lt;br /&gt;
* funktionierende Internetverbindung&lt;br /&gt;
* bei einem laufenden Kundensystem: vereinbartes Wartungsfenster&lt;br /&gt;
* bekannte Container-Namen und aktueller Betriebszustand&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Nicht während des Ausstellungsbetriebs beginnen.&#039;&#039;&#039; Updates können Dienste neu starten oder einen Neustart des Servers erforderlich machen.&lt;br /&gt;
&lt;br /&gt;
== 1. Am Server anmelden ==&lt;br /&gt;
&lt;br /&gt;
Bei einer SSH-Verbindung wird auf dem eigenen Rechner beispielsweise eingegeben:&lt;br /&gt;
&lt;br /&gt;
 ssh &amp;lt;Benutzername&amp;gt;@&amp;lt;IP-Adresse-des-Servers&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
&lt;br /&gt;
 ssh tinetronics@192.168.14.200&lt;br /&gt;
&lt;br /&gt;
Beim ersten Verbindungsaufbau muss der angezeigte Fingerabdruck mit den Projektunterlagen beziehungsweise der lokalen Konsole verglichen werden. Nicht ungeprüft bestätigen.&lt;br /&gt;
&lt;br /&gt;
== 2. Ausgangszustand dokumentieren ==&lt;br /&gt;
&lt;br /&gt;
Ubuntu-Version anzeigen:&lt;br /&gt;
&lt;br /&gt;
 lsb_release -a&lt;br /&gt;
&lt;br /&gt;
Falls `lsb_release` nicht verfügbar ist:&lt;br /&gt;
&lt;br /&gt;
 cat /etc/os-release&lt;br /&gt;
&lt;br /&gt;
Freien Speicherplatz prüfen:&lt;br /&gt;
&lt;br /&gt;
 df -h&lt;br /&gt;
&lt;br /&gt;
Die Systempartition `/` darf nicht nahezu voll sein. Sind nur noch wenige Gigabyte frei oder steht die Belegung bei etwa 90 Prozent oder höher, zunächst Speicherplatz prüfen und nicht blind aktualisieren.&lt;br /&gt;
&lt;br /&gt;
Wenn MegBes bereits läuft, Zustand der Container festhalten:&lt;br /&gt;
&lt;br /&gt;
 sudo docker ps&lt;br /&gt;
&lt;br /&gt;
Es müssen die erwarteten Container mit dem Zustand `Up` erscheinen. Container-Namen und verwendete Images für die Projektdokumentation notieren.&lt;br /&gt;
&lt;br /&gt;
== 3. Paketlisten aktualisieren ==&lt;br /&gt;
&lt;br /&gt;
 sudo apt update&lt;br /&gt;
&lt;br /&gt;
Dieser Befehl installiert noch nichts. Er lädt lediglich die aktuelle Liste verfügbarer Pakete aus den eingerichteten Paketquellen.&lt;br /&gt;
&lt;br /&gt;
=== Erfolgskriterium ===&lt;br /&gt;
&lt;br /&gt;
Der Befehl endet ohne Zeilen mit `E:` beziehungsweise `Error`. Hinweise auf verfügbare Aktualisierungen sind normal.&lt;br /&gt;
&lt;br /&gt;
=== Bei Fehlern ===&lt;br /&gt;
&lt;br /&gt;
* `Temporary failure resolving ...`: DNS oder Internetverbindung prüfen.&lt;br /&gt;
* falsches Datum beziehungsweise Zertifikatsfehler: Systemzeit mit `date` prüfen.&lt;br /&gt;
* Fehler einer fremden Paketquelle: nicht einfach ignorieren; Quelle und Projektdokumentation prüfen.&lt;br /&gt;
* `Could not get lock`: Es läuft bereits eine Paketverwaltung oder ein automatisches Update. Einige Minuten warten und erneut prüfen. Keine Lock-Dateien manuell löschen.&lt;br /&gt;
&lt;br /&gt;
Bei einem Fehler in diesem Schritt nicht mit dem Upgrade fortfahren.&lt;br /&gt;
&lt;br /&gt;
== 4. Verfügbare Aktualisierungen ansehen ==&lt;br /&gt;
&lt;br /&gt;
 apt list --upgradable&lt;br /&gt;
&lt;br /&gt;
Die Liste dient zur Kontrolle. Meldungen über phasenweise zurückgehaltene Pakete können unter Ubuntu normal sein; diese Pakete werden später automatisch freigegeben.&lt;br /&gt;
&lt;br /&gt;
== 5. Aktualisierungen installieren ==&lt;br /&gt;
&lt;br /&gt;
 sudo apt upgrade&lt;br /&gt;
&lt;br /&gt;
APT zeigt vor der Installation eine Zusammenfassung und fragt normalerweise nach einer Bestätigung. Die Liste kurz prüfen und dann mit `Y` beziehungsweise `J` und Enter bestätigen.&lt;br /&gt;
&lt;br /&gt;
Während der Installation können Dialoge erscheinen. Bei Fragen zum Ersetzen einer bereits angepassten Konfigurationsdatei im Zweifel die vorhandene lokale Version behalten und den Dateinamen für eine spätere Prüfung notieren.&lt;br /&gt;
&lt;br /&gt;
=== Erfolgskriterium ===&lt;br /&gt;
&lt;br /&gt;
Der Befehl kehrt ohne Fehlermeldung zur Eingabeaufforderung zurück. Anschließend erneut ausführen:&lt;br /&gt;
&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 apt list --upgradable&lt;br /&gt;
&lt;br /&gt;
Eine kleine Zahl phasenweise zurückgehaltener Pakete ist möglich. Echte Fehler oder nicht fertig konfigurierte Pakete müssen untersucht werden.&lt;br /&gt;
&lt;br /&gt;
== 6. Neustartbedarf prüfen ==&lt;br /&gt;
&lt;br /&gt;
 if [ -f /run/reboot-required ]; then cat /run/reboot-required; else echo &amp;quot;Kein Neustart erforderlich&amp;quot;; fi&lt;br /&gt;
&lt;br /&gt;
Wird `System restart required` oder eine vergleichbare Meldung angezeigt, ist ein Neustart erforderlich.&lt;br /&gt;
&lt;br /&gt;
Bei einem Kundensystem vor dem Neustart noch einmal prüfen:&lt;br /&gt;
&lt;br /&gt;
 sudo docker ps&lt;br /&gt;
&lt;br /&gt;
Dann neu starten:&lt;br /&gt;
&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
Die SSH-Verbindung wird dabei beendet. Zwei bis fünf Minuten warten und erneut verbinden.&lt;br /&gt;
&lt;br /&gt;
== 7. System nach dem Neustart prüfen ==&lt;br /&gt;
&lt;br /&gt;
Ubuntu-Version und Kernel anzeigen:&lt;br /&gt;
&lt;br /&gt;
 lsb_release -a&lt;br /&gt;
 uname -r&lt;br /&gt;
&lt;br /&gt;
Fehlgeschlagene Systemdienste anzeigen:&lt;br /&gt;
&lt;br /&gt;
 systemctl --failed&lt;br /&gt;
&lt;br /&gt;
Im Idealfall erscheint `0 loaded units listed`. Falls Dienste fehlgeschlagen sind, deren Namen notieren und vor der Freigabe untersuchen.&lt;br /&gt;
&lt;br /&gt;
Docker prüfen:&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl status docker --no-pager&lt;br /&gt;
 sudo docker ps&lt;br /&gt;
&lt;br /&gt;
Der Docker-Dienst muss `active (running)` sein und die erwarteten MegBes-Container müssen wieder den Zustand `Up` zeigen.&lt;br /&gt;
&lt;br /&gt;
Protokoll des internen Containers prüfen; Container-Namen anpassen:&lt;br /&gt;
&lt;br /&gt;
 sudo docker logs --tail 100 &amp;lt;Containername&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auf wiederholte Exceptions, Zertifikatsfehler, Verbindungsfehler oder Neustartschleifen achten.&lt;br /&gt;
&lt;br /&gt;
== 8. MegBes-Funktion testen ==&lt;br /&gt;
&lt;br /&gt;
# Erreichbarkeit von `megbes-internal` prüfen.&lt;br /&gt;
# Status-Monitor kontrollieren.&lt;br /&gt;
# mindestens eine ungefährliche Teststation beziehungsweise einen abgestimmten Testbefehl aufrufen.&lt;br /&gt;
# prüfen, dass genau die erwartete Station reagiert.&lt;br /&gt;
# bei stationsgesteuerten Projekten Statuswechsel und Rücksetzung prüfen.&lt;br /&gt;
&lt;br /&gt;
== 9. Dokumentieren ==&lt;br /&gt;
&lt;br /&gt;
Auf der Projektseite eintragen:&lt;br /&gt;
&lt;br /&gt;
* Datum und ausführende Person&lt;br /&gt;
* Ubuntu-Version vor und nach der Aktualisierung&lt;br /&gt;
* ob ein Neustart erforderlich war&lt;br /&gt;
* Docker- und MegBes-Funktionstest&lt;br /&gt;
* Auffälligkeiten und noch offene Maßnahmen&lt;br /&gt;
&lt;br /&gt;
== Abgrenzung: vollständiges Release-Upgrade ==&lt;br /&gt;
&lt;br /&gt;
`sudo apt upgrade` hält das System innerhalb seines vorhandenen Ubuntu-Releases aktuell. Es wechselt beispielsweise nicht automatisch von Ubuntu 22.04 LTS auf 24.04 LTS. Dafür ist ein geplantes [[Ubuntu-LTS-Upgrade]] mit Backup und längerer Ausfallzeit erforderlich.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:MegBes]]&lt;br /&gt;
[[Kategorie:Ubuntu]]&lt;br /&gt;
[[Kategorie:Wartung]]&lt;/div&gt;</summary>
		<author><name>Clawtronics</name></author>
	</entry>
	<entry>
		<id>https://wiki.megbes.de/index.php?title=Hauptseite&amp;diff=16</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="https://wiki.megbes.de/index.php?title=Hauptseite&amp;diff=16"/>
		<updated>2026-08-04T20:35:29Z</updated>

		<summary type="html">&lt;p&gt;Clawtronics: Navigation zur Neukunden-Checkliste korrigiert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
= MegBes-Wiki =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MegBes&#039;&#039;&#039; ist ein System zur Steuerung von Medienstationen und anderen Geräten in Ausstellungen. Es kann grundsätzlich alle Geräte ansprechen, die UDP-Signale direkt empfangen oder über eine geeignete Schnittstelle umsetzen können, beispielsweise BrightSign-Player, PCs und Raspberry Pis.&lt;br /&gt;
&lt;br /&gt;
== Systemüberblick ==&lt;br /&gt;
&lt;br /&gt;
Der typische Signalweg lautet:&lt;br /&gt;
&lt;br /&gt;
 Web-Frontend oder App → megbes-external → megbes-internal → UDP → Medienstation&lt;br /&gt;
&lt;br /&gt;
* [[Architektur|Architektur und Signalweg]]&lt;br /&gt;
* [[Komponenten|Komponenten des Systems]]&lt;br /&gt;
* [[Betrieb und Releases|Betrieb, Ubuntu und Releases]]&lt;br /&gt;
* [[Projektübersicht|Aktive Projekte]]&lt;br /&gt;
* [[Sicherheit|Sicherheits- und Dokumentationsregeln]]&lt;br /&gt;
&lt;br /&gt;
== Einrichtung und Betrieb ==&lt;br /&gt;
&lt;br /&gt;
Die folgenden Bereiche werden aus der bisherigen Dokumentation überarbeitet und schrittweise ergänzt:&lt;br /&gt;
&lt;br /&gt;
* [[Neukunde|Neukunde / neues Projekt]]&lt;br /&gt;
* Installation eines internen Servers&lt;br /&gt;
* Konfiguration von megbes-external und megbes-internal&lt;br /&gt;
* Netzwerk, Routing und DynDNS&lt;br /&gt;
* Zertifikate&lt;br /&gt;
* Medienstationen und Ausstellungshardware&lt;br /&gt;
* UDP-Protokoll und Stationszustände&lt;br /&gt;
* Wartung, Backups und Fehlerdiagnose&lt;br /&gt;
&lt;br /&gt;
== Aktueller Release-Stand ==&lt;br /&gt;
&lt;br /&gt;
Der aktuellste bekannte Release ist &#039;&#039;&#039;AUGUST-2026-2-RELEASE&#039;&#039;&#039;. Nicht alle Projekte verwenden bereits diesen Stand. Der tatsächlich installierte Release wird deshalb je Projekt dokumentiert. Maßgebliche technische Quelle ist das private GitHub-Repository [https://github.com/tinetronics/megbes tinetronics/megbes].&lt;br /&gt;
&lt;br /&gt;
== Wichtiger Hinweis ==&lt;br /&gt;
&lt;br /&gt;
Passwörter, Tokens, private Schlüssel, vollständige Zugangsdaten und geheime Update-URLs dürfen nicht im Wiki gespeichert werden. Siehe [[Sicherheit]].&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:MegBes]]&lt;br /&gt;
&lt;br /&gt;
== Technische Referenz ==&lt;br /&gt;
&lt;br /&gt;
* [[Softwaremodule|Softwaremodule und Build]]&lt;br /&gt;
* [[Konfiguration|Projektkonfiguration]]&lt;br /&gt;
* [[UDP und Stationszustände|UDP und Stationszustände]]&lt;/div&gt;</summary>
		<author><name>Clawtronics</name></author>
	</entry>
	<entry>
		<id>https://wiki.megbes.de/index.php?title=Hauptseite&amp;diff=15</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="https://wiki.megbes.de/index.php?title=Hauptseite&amp;diff=15"/>
		<updated>2026-08-04T20:35:02Z</updated>

		<summary type="html">&lt;p&gt;Clawtronics: Neukunden-Checkliste prominent verlinkt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
= MegBes-Wiki =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MegBes&#039;&#039;&#039; ist ein System zur Steuerung von Medienstationen und anderen Geräten in Ausstellungen. Es kann grundsätzlich alle Geräte ansprechen, die UDP-Signale direkt empfangen oder über eine geeignete Schnittstelle umsetzen können, beispielsweise BrightSign-Player, PCs und Raspberry Pis.&lt;br /&gt;
&lt;br /&gt;
== Systemüberblick ==&lt;br /&gt;
&lt;br /&gt;
Der typische Signalweg lautet:&lt;br /&gt;
&lt;br /&gt;
 Web-Frontend oder App → megbes-external → megbes-internal → UDP → Medienstation&lt;br /&gt;
&lt;br /&gt;
* [[Architektur|Architektur und Signalweg]]&lt;br /&gt;
* [[Komponenten|Komponenten des Systems]]&lt;br /&gt;
* [[Betrieb und Releases|Betrieb, Ubuntu und Releases]]&lt;br /&gt;
* [[Projektübersicht|Aktive Projekte]]&lt;br /&gt;
* [[Sicherheit|Sicherheits- und Dokumentationsregeln]]&lt;br /&gt;
&lt;br /&gt;
== Einrichtung und Betrieb ==&lt;br /&gt;
&lt;br /&gt;
Die folgenden Bereiche werden aus der bisherigen Dokumentation überarbeitet und schrittweise ergänzt:&lt;br /&gt;
&lt;br /&gt;
* [[Neukunde|Neukunde / neues Projekt]]`n* Installation eines internen Servers&lt;br /&gt;
* Einrichtung eines neuen Projekts&lt;br /&gt;
* Konfiguration von megbes-external und megbes-internal&lt;br /&gt;
* Netzwerk, Routing und DynDNS&lt;br /&gt;
* Zertifikate&lt;br /&gt;
* Medienstationen und Ausstellungshardware&lt;br /&gt;
* UDP-Protokoll und Stationszustände&lt;br /&gt;
* Wartung, Backups und Fehlerdiagnose&lt;br /&gt;
&lt;br /&gt;
== Aktueller Release-Stand ==&lt;br /&gt;
&lt;br /&gt;
Der aktuellste bekannte Release ist &#039;&#039;&#039;AUGUST-2026-2-RELEASE&#039;&#039;&#039;. Nicht alle Projekte verwenden bereits diesen Stand. Der tatsächlich installierte Release wird deshalb je Projekt dokumentiert. Maßgebliche technische Quelle ist das private GitHub-Repository [https://github.com/tinetronics/megbes tinetronics/megbes].&lt;br /&gt;
&lt;br /&gt;
== Wichtiger Hinweis ==&lt;br /&gt;
&lt;br /&gt;
Passwörter, Tokens, private Schlüssel, vollständige Zugangsdaten und geheime Update-URLs dürfen nicht im Wiki gespeichert werden. Siehe [[Sicherheit]].&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:MegBes]]&lt;br /&gt;
&lt;br /&gt;
== Technische Referenz ==&lt;br /&gt;
&lt;br /&gt;
* [[Softwaremodule|Softwaremodule und Build]]&lt;br /&gt;
* [[Konfiguration|Projektkonfiguration]]&lt;br /&gt;
* [[UDP und Stationszustände|UDP und Stationszustände]]&lt;/div&gt;</summary>
		<author><name>Clawtronics</name></author>
	</entry>
	<entry>
		<id>https://wiki.megbes.de/index.php?title=Neukunde&amp;diff=14</id>
		<title>Neukunde</title>
		<link rel="alternate" type="text/html" href="https://wiki.megbes.de/index.php?title=Neukunde&amp;diff=14"/>
		<updated>2026-08-04T20:35:02Z</updated>

		<summary type="html">&lt;p&gt;Clawtronics: Zentrale Checkliste für neue Kunden und Projekte angelegt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Neukunde / neues Projekt =&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig:&#039;&#039;&#039; 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.&lt;br /&gt;
&lt;br /&gt;
== 1. Projekt festlegen ==&lt;br /&gt;
&lt;br /&gt;
Vor Beginn sind mindestens zu bestimmen:&lt;br /&gt;
&lt;br /&gt;
* vollständiger Projekt- und Kundenname&lt;br /&gt;
* eindeutiges technisches Projektkürzel&lt;br /&gt;
* zuständige Personen bei tinetronics&lt;br /&gt;
* gewünschte Bedienoberfläche&lt;br /&gt;
* Art der Anmeldung:&lt;br /&gt;
** Anmeldung über Ticket-Monitor&lt;br /&gt;
** direkter Zugriff ohne Ticket-Monitor, wie beim Subprojekt MiQua Guide&lt;br /&gt;
** gegebenenfalls weitere projektspezifische Variante&lt;br /&gt;
* Anzahl und Art der Medienstationen&lt;br /&gt;
* Stationsnummern und benötigte UDP-Befehle&lt;br /&gt;
* lokales Subnetz und gewünschter UDP-Port&lt;br /&gt;
* projektspezifischer Stations-Timer&lt;br /&gt;
&lt;br /&gt;
Anschließend eine neue Seite in der [[Projektübersicht]] anlegen.&lt;br /&gt;
&lt;br /&gt;
== 2. Domains und Erreichbarkeit ==&lt;br /&gt;
&lt;br /&gt;
Im Regelfall werden zwei Adressen benötigt:&lt;br /&gt;
&lt;br /&gt;
; Externe Adresse&lt;br /&gt;
: Subdomain für `megbes-external`, beispielsweise `&amp;lt;projekt&amp;gt;.megbes.de`.&lt;br /&gt;
&lt;br /&gt;
; Interne Erreichbarkeit&lt;br /&gt;
: DynDNS-Adresse oder eine andere dauerhaft erreichbare Adresse für `megbes-internal`, beispielsweise `&amp;lt;projekt&amp;gt;-dyndns.megbes.de`.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Für die interne Seite wird bevorzugt IONOS DynDNS eingesetzt. Alternative Anbieter sind nur zu verwenden, wenn dies technisch erforderlich ist.&lt;br /&gt;
&lt;br /&gt;
== 3. Projektkonfiguration in GitHub ==&lt;br /&gt;
&lt;br /&gt;
Im privaten Repository `tinetronics/megbes-config` sind die produktiven Konfigurationen anzupassen.&lt;br /&gt;
&lt;br /&gt;
=== megbes-external-config.json ===&lt;br /&gt;
&lt;br /&gt;
Für das Projekt werden mindestens gepflegt:&lt;br /&gt;
&lt;br /&gt;
* technischer Projektschlüssel&lt;br /&gt;
* Kommunikationsprotokoll zum internen Server&lt;br /&gt;
* Adresse von `megbes-internal`&lt;br /&gt;
* Port von `megbes-internal`&lt;br /&gt;
* bei Projekten mit zentraler Anmeldung: initialer Administratorname und verschlüsseltes Administratorpasswort&lt;br /&gt;
&lt;br /&gt;
Das Administratorpasswort darf niemals im Klartext eingetragen werden. Die Verschlüsselung erfolgt mit dem vorgesehenen Werkzeug des Status-Monitors.&lt;br /&gt;
&lt;br /&gt;
=== megbes-status-config.json ===&lt;br /&gt;
&lt;br /&gt;
Das Projekt wird zusätzlich mit seiner internen und externen Adresse in die Status-Konfiguration aufgenommen.&lt;br /&gt;
&lt;br /&gt;
=== Prüfung ===&lt;br /&gt;
&lt;br /&gt;
# JSON-Syntax prüfen.&lt;br /&gt;
# Änderungen nachvollziehbar committen.&lt;br /&gt;
# Änderungen über den vereinbarten Git-Prozess bereitstellen.&lt;br /&gt;
# Nach der Übernahme die betroffenen Dienste kontrolliert neu laden.&lt;br /&gt;
&lt;br /&gt;
Siehe auch [[Konfiguration]].&lt;br /&gt;
&lt;br /&gt;
== 4. megbes-external unter Plesk ==&lt;br /&gt;
&lt;br /&gt;
Für jedes Projekt wird auf dem zentralen IONOS-Server ein eigener Docker-Container betrieben.&lt;br /&gt;
&lt;br /&gt;
# Neue externe Subdomain in Plesk anlegen.&lt;br /&gt;
# TLS-Zertifikat für die Subdomain einrichten.&lt;br /&gt;
# Docker-Container aus dem freigegebenen `megbes-external`-Image erstellen.&lt;br /&gt;
# Container eindeutig nach dem Projekt benennen.&lt;br /&gt;
# automatischen Start nach einem Serverneustart aktivieren.&lt;br /&gt;
# erforderliche Umgebungsvariablen anhand der aktuellen freigegebenen Vorlage setzen.&lt;br /&gt;
# Zertifikatsdateien beziehungsweise Volumes korrekt einbinden.&lt;br /&gt;
# automatische Portzuordnung nach der initialen Einrichtung deaktivieren.&lt;br /&gt;
# Docker-Proxy-Regel von der Subdomain auf den Container einrichten.&lt;br /&gt;
# Container starten und Protokoll auf Fehler prüfen.&lt;br /&gt;
&lt;br /&gt;
Der einzusetzende Release wird bewusst festgelegt. Ein neuer Kunde erhält grundsätzlich den aktuell freigegebenen Release, sofern kein bekannter projektspezifischer Grund dagegenspricht.&lt;br /&gt;
&lt;br /&gt;
== 5. Zertifikate ==&lt;br /&gt;
&lt;br /&gt;
Projektbezogene Zertifikate werden über den Status-Monitor erstellt und entsprechend der dortigen Anleitung installiert.&lt;br /&gt;
&lt;br /&gt;
Zu prüfen sind:&lt;br /&gt;
&lt;br /&gt;
* Zertifikat gehört zum richtigen Projekt und zur richtigen Adresse.&lt;br /&gt;
* Zertifikatsdateien liegen am vorgesehenen Ablageort.&lt;br /&gt;
* Container-Volume zeigt auf den korrekten Ordner.&lt;br /&gt;
* Kennwörter sind ausschließlich im Passwortmanager und in der geschützten Laufzeitkonfiguration hinterlegt.&lt;br /&gt;
* Verbindung wird nach dem Neustart erfolgreich getestet.&lt;br /&gt;
&lt;br /&gt;
== 6. Interner Server beim Kunden ==&lt;br /&gt;
&lt;br /&gt;
Für jedes Projekt wird beim Kunden ein eigener Server für `megbes-internal` eingerichtet.&lt;br /&gt;
&lt;br /&gt;
# aktuelle Ubuntu-LTS-Version installieren.&lt;br /&gt;
# administrativen Benutzer einrichten; nicht dauerhaft als `root` arbeiten.&lt;br /&gt;
# System vollständig aktualisieren.&lt;br /&gt;
# feste lokale IP-Adresse passend zum Kundennetz konfigurieren.&lt;br /&gt;
# Docker installieren und Funktion prüfen.&lt;br /&gt;
# projektbezogene Umgebungsdatei erstellen.&lt;br /&gt;
# Zertifikate in einen eindeutig benannten, geschützten Ordner kopieren.&lt;br /&gt;
# freigegebenes `megbes-internal`-Image laden.&lt;br /&gt;
# Container mit automatischem Neustart, korrekten Ports und Volumes starten.&lt;br /&gt;
# Container-Protokoll prüfen.&lt;br /&gt;
&lt;br /&gt;
Die Umgebungsdatei enthält nur projektspezifische Werte. Eine Konfiguration aus einem anderen Kundenprojekt darf nicht ungeprüft kopiert werden.&lt;br /&gt;
&lt;br /&gt;
== 7. Router, DynDNS und Portfreigabe ==&lt;br /&gt;
&lt;br /&gt;
Am Kundenrouter sind – abhängig vom Projekt – folgende Punkte einzurichten:&lt;br /&gt;
&lt;br /&gt;
* feste Zuordnung für den internen Server&lt;br /&gt;
* DynDNS-Konfiguration&lt;br /&gt;
* erforderliche TCP-Portfreigabe zu `megbes-internal`&lt;br /&gt;
* gegebenenfalls kundenspezifische Firewall-Regeln&lt;br /&gt;
&lt;br /&gt;
Der externe Port, der interne Port und die in `megbes-external-config.json` eingetragene Portnummer müssen zueinander passen.&lt;br /&gt;
&lt;br /&gt;
Router-Zugangsdaten und geheime DynDNS-Update-URLs gehören ausschließlich in den Passwortmanager.&lt;br /&gt;
&lt;br /&gt;
== 8. Medienstationen ==&lt;br /&gt;
&lt;br /&gt;
Für jede Station sind zu erfassen:&lt;br /&gt;
&lt;br /&gt;
* Stationsnummer&lt;br /&gt;
* Gerätetyp&lt;br /&gt;
* lokale IP-Adresse&lt;br /&gt;
* unterstützte UDP-Befehle&lt;br /&gt;
* verwendeter UDP-Port&lt;br /&gt;
* Art der Bedienung und Anmeldung&lt;br /&gt;
* Verhalten bei `IDLE`, `TOUCHSCREEN`, `REMOTE` und gegebenenfalls `OPEN`&lt;br /&gt;
* erwartete Init-/Statusmeldung&lt;br /&gt;
&lt;br /&gt;
Siehe [[UDP und Stationszustände]].&lt;br /&gt;
&lt;br /&gt;
== 9. Abnahme und Funktionstest ==&lt;br /&gt;
&lt;br /&gt;
Vor Übergabe müssen mindestens folgende Prüfungen erfolgreich sein:&lt;br /&gt;
&lt;br /&gt;
# externe Projektadresse ist per HTTPS erreichbar.&lt;br /&gt;
# vorgesehene Anmeldung beziehungsweise der direkte Zugriff funktioniert.&lt;br /&gt;
# `megbes-external` erreicht `megbes-internal`.&lt;br /&gt;
# Befehle erreichen die richtige Station.&lt;br /&gt;
# Start, Stopp und weitere projektspezifische Befehle funktionieren.&lt;br /&gt;
# Stationszustände und Timer verhalten sich wie vereinbart.&lt;br /&gt;
# Neustart von externem und internem Container wurde getestet.&lt;br /&gt;
# Neustart des internen Servers wurde getestet.&lt;br /&gt;
# Status-Monitor erkennt die Projektinstanzen.&lt;br /&gt;
# Status-/Init-Meldungen erreichen den vorgesehenen Empfänger.&lt;br /&gt;
# Fehler und Besonderheiten sind auf der Projektseite dokumentiert.&lt;br /&gt;
&lt;br /&gt;
== 10. Projektdokumentation abschließen ==&lt;br /&gt;
&lt;br /&gt;
Auf der Projektseite werden anschließend mindestens eingetragen:&lt;br /&gt;
&lt;br /&gt;
* Domains und technische Projektschlüssel&lt;br /&gt;
* Container-Namen&lt;br /&gt;
* Ports und Netzwerkbereiche&lt;br /&gt;
* installierte Releases von External und Internal&lt;br /&gt;
* Server- und Stationshardware&lt;br /&gt;
* Stations-Timer&lt;br /&gt;
* Datum und Ergebnis des letzten Funktionstests&lt;br /&gt;
* Besonderheiten und offene Aufgaben&lt;br /&gt;
* Verweis auf die zugehörigen Einträge im Passwortmanager – niemals die Geheimwerte selbst&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:MegBes]]&lt;br /&gt;
[[Kategorie:Einrichtung]]&lt;br /&gt;
[[Kategorie:Checkliste]]&lt;/div&gt;</summary>
		<author><name>Clawtronics</name></author>
	</entry>
	<entry>
		<id>https://wiki.megbes.de/index.php?title=Konfiguration&amp;diff=13</id>
		<title>Konfiguration</title>
		<link rel="alternate" type="text/html" href="https://wiki.megbes.de/index.php?title=Konfiguration&amp;diff=13"/>
		<updated>2026-08-04T20:30:26Z</updated>

		<summary type="html">&lt;p&gt;Clawtronics: MiQua Guide als Subprojekt dokumentiert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Konfiguration =&lt;br /&gt;
&lt;br /&gt;
== Grundsatz ==&lt;br /&gt;
&lt;br /&gt;
Die maßgebliche Projektkonfiguration befindet sich im privaten Repository `tinetronics/megbes-config`. Das Wiki beschreibt Bedeutung und Pflege der Felder, ersetzt aber nicht die aktuelle Konfigurationsdatei.&lt;br /&gt;
&lt;br /&gt;
== megbes-external-config ==&lt;br /&gt;
&lt;br /&gt;
Die produktive Konfiguration enthält je Projekt einen eigenen Eintrag. Der aktuelle Stand umfasst unter anderem:&lt;br /&gt;
&lt;br /&gt;
* `gse`&lt;br /&gt;
* `miqua`&lt;br /&gt;
* `bayam`&lt;br /&gt;
* `limes`&lt;br /&gt;
* `nowalux`&lt;br /&gt;
* `miquaguide` – aktives Subprojekt von MiQua mit direktem Stationszugriff ohne Anmeldung am Ticket-Monitor&lt;br /&gt;
* `tine`&lt;br /&gt;
* `hon`&lt;br /&gt;
* `messe`&lt;br /&gt;
* `gkp`&lt;br /&gt;
&lt;br /&gt;
Zusätzlich existieren lokale Entwicklungs- beziehungsweise Testeinträge.&lt;br /&gt;
&lt;br /&gt;
Zu den projektspezifischen Feldern gehören:&lt;br /&gt;
&lt;br /&gt;
* Kommunikationsprotokoll zum internen Server&lt;br /&gt;
* Adresse des internen Servers&lt;br /&gt;
* Port des internen Servers&lt;br /&gt;
* bei Projekten mit zentraler Authentifizierung: initialer Administratorname und verschlüsseltes Administratorpasswort&lt;br /&gt;
&lt;br /&gt;
Passwörter dürfen nur in der von MegBes erwarteten verschlüsselten Form in die Projektkonfiguration aufgenommen werden. Der Klartext gehört ausschließlich in den Passwortmanager.&lt;br /&gt;
&lt;br /&gt;
== megbes-status-config ==&lt;br /&gt;
&lt;br /&gt;
Die Status-Konfiguration ordnet den Projekten jeweils die internen und externen Dienste beziehungsweise Adressen zu. Sie dient dem zentralen Status-Monitor zur Prüfung der Projektinstanzen.&lt;br /&gt;
&lt;br /&gt;
== Authentifizierungsvarianten ==&lt;br /&gt;
&lt;br /&gt;
Nicht alle Projektvarianten verwenden denselben Anmeldeweg. Das Subprojekt `miquaguide` kann Stationen direkt ansprechen, ohne dass sich der Nutzer über einen Ticket-Monitor anmeldet. Das Fehlen von Administratorfeldern in einem Konfigurationseintrag kann daher beabsichtigt sein und darf nicht automatisch als unvollständige Konfiguration bewertet werden.&lt;br /&gt;
== Änderung einer Projektkonfiguration ==&lt;br /&gt;
&lt;br /&gt;
# betroffenen Projekteintrag eindeutig bestimmen&lt;br /&gt;
# aktuellen Stand sichern und Änderung nachvollziehbar dokumentieren&lt;br /&gt;
# JSON-Syntax prüfen&lt;br /&gt;
# Geheimwerte nicht in Klartext eintragen&lt;br /&gt;
# Änderung über den vorgesehenen Git-Prozess bereitstellen&lt;br /&gt;
# betroffene Container kontrolliert neu laden oder starten&lt;br /&gt;
# External-, Internal- und Stationsfunktion testen&lt;br /&gt;
# Ergebnis und Datum auf der Projektseite dokumentieren&lt;br /&gt;
&lt;br /&gt;
== Benennung ==&lt;br /&gt;
&lt;br /&gt;
Die Bezeichner im Repository können von den im Alltag verwendeten Kürzeln abweichen, beispielsweise `nowalux` für LUX. Auf Projektseiten sollen deshalb sowohl Anzeigename als auch technischer Konfigurationsschlüssel angegeben werden.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:MegBes]]&lt;br /&gt;
[[Kategorie:Konfiguration]]&lt;/div&gt;</summary>
		<author><name>Clawtronics</name></author>
	</entry>
	<entry>
		<id>https://wiki.megbes.de/index.php?title=Projekt%C3%BCbersicht&amp;diff=12</id>
		<title>Projektübersicht</title>
		<link rel="alternate" type="text/html" href="https://wiki.megbes.de/index.php?title=Projekt%C3%BCbersicht&amp;diff=12"/>
		<updated>2026-08-04T20:30:26Z</updated>

		<summary type="html">&lt;p&gt;Clawtronics: MiQua Guide als Subprojekt dokumentiert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Projektübersicht =&lt;br /&gt;
&lt;br /&gt;
Alle nachfolgend aufgeführten Projekte sind aktiv. Technische Betriebsdaten werden schrittweise auf getrennten Projektseiten ergänzt. Geheimwerte werden niemals im Wiki gespeichert.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Projekt&lt;br /&gt;
! Status&lt;br /&gt;
! Release external&lt;br /&gt;
! Release internal&lt;br /&gt;
! Letzte Prüfung&lt;br /&gt;
|-&lt;br /&gt;
| tine || aktiv || noch zu erfassen || noch zu erfassen || noch zu erfassen&lt;br /&gt;
|-&lt;br /&gt;
| HON || aktiv || noch zu erfassen || noch zu erfassen || noch zu erfassen&lt;br /&gt;
|-&lt;br /&gt;
| GSE || aktiv || noch zu erfassen || noch zu erfassen || noch zu erfassen&lt;br /&gt;
|-&lt;br /&gt;
| MiQua || aktiv || noch zu erfassen || noch zu erfassen || noch zu erfassen&lt;br /&gt;
|-&lt;br /&gt;
| BayAM || aktiv || noch zu erfassen || noch zu erfassen || noch zu erfassen&lt;br /&gt;
|-&lt;br /&gt;
| GKP || aktiv || noch zu erfassen || noch zu erfassen || noch zu erfassen&lt;br /&gt;
|-&lt;br /&gt;
| LUX || aktiv || noch zu erfassen || noch zu erfassen || noch zu erfassen&lt;br /&gt;
|-&lt;br /&gt;
| Limes || aktiv || noch zu erfassen || noch zu erfassen || noch zu erfassen&lt;br /&gt;
|-&lt;br /&gt;
| Messe || aktiv || noch zu erfassen || noch zu erfassen || noch zu erfassen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MiQua Guide ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MiQua Guide&#039;&#039;&#039; ist ein aktives Subprojekt von MiQua und kein eigenständiges Kundenprojekt. Es besitzt in der technischen Konfiguration den Schlüssel `miquaguide`. Der Guide kann die Stationen direkt ansprechen, ohne dass sich der Nutzer zuvor über einen Ticket-Monitor anmeldet.&lt;br /&gt;
== Inhalt einer Projektseite ==&lt;br /&gt;
&lt;br /&gt;
Jede Projektseite soll mindestens enthalten:&lt;br /&gt;
&lt;br /&gt;
* vollständiger Projektname und internes Kürzel&lt;br /&gt;
* verantwortliche Ansprechpartner innerhalb von tinetronics&lt;br /&gt;
* Domain von megbes-external&lt;br /&gt;
* DynDNS-Adresse oder interne Erreichbarkeit&lt;br /&gt;
* Container-Namen und Portzuordnungen&lt;br /&gt;
* installierte Releases&lt;br /&gt;
* eingesetzte Server- und Stationshardware&lt;br /&gt;
* projektspezifischer Stations-Timer&lt;br /&gt;
* Datum und Ergebnis der letzten Funktionsprüfung&lt;br /&gt;
* bekannte Besonderheiten und offene Aufgaben&lt;br /&gt;
&lt;br /&gt;
Zugangsdaten, Tokens und Schlüssel werden durch einen Verweis auf den Passwortmanager ersetzt.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:MegBes]]&lt;br /&gt;
[[Kategorie:Projekte]]&lt;/div&gt;</summary>
		<author><name>Clawtronics</name></author>
	</entry>
	<entry>
		<id>https://wiki.megbes.de/index.php?title=Hauptseite&amp;diff=11</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="https://wiki.megbes.de/index.php?title=Hauptseite&amp;diff=11"/>
		<updated>2026-08-04T20:27:18Z</updated>

		<summary type="html">&lt;p&gt;Clawtronics: Technische Referenz ergänzt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
= MegBes-Wiki =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MegBes&#039;&#039;&#039; ist ein System zur Steuerung von Medienstationen und anderen Geräten in Ausstellungen. Es kann grundsätzlich alle Geräte ansprechen, die UDP-Signale direkt empfangen oder über eine geeignete Schnittstelle umsetzen können, beispielsweise BrightSign-Player, PCs und Raspberry Pis.&lt;br /&gt;
&lt;br /&gt;
== Systemüberblick ==&lt;br /&gt;
&lt;br /&gt;
Der typische Signalweg lautet:&lt;br /&gt;
&lt;br /&gt;
 Web-Frontend oder App → megbes-external → megbes-internal → UDP → Medienstation&lt;br /&gt;
&lt;br /&gt;
* [[Architektur|Architektur und Signalweg]]&lt;br /&gt;
* [[Komponenten|Komponenten des Systems]]&lt;br /&gt;
* [[Betrieb und Releases|Betrieb, Ubuntu und Releases]]&lt;br /&gt;
* [[Projektübersicht|Aktive Projekte]]&lt;br /&gt;
* [[Sicherheit|Sicherheits- und Dokumentationsregeln]]&lt;br /&gt;
&lt;br /&gt;
== Einrichtung und Betrieb ==&lt;br /&gt;
&lt;br /&gt;
Die folgenden Bereiche werden aus der bisherigen Dokumentation überarbeitet und schrittweise ergänzt:&lt;br /&gt;
&lt;br /&gt;
* Installation eines internen Servers&lt;br /&gt;
* Einrichtung eines neuen Projekts&lt;br /&gt;
* Konfiguration von megbes-external und megbes-internal&lt;br /&gt;
* Netzwerk, Routing und DynDNS&lt;br /&gt;
* Zertifikate&lt;br /&gt;
* Medienstationen und Ausstellungshardware&lt;br /&gt;
* UDP-Protokoll und Stationszustände&lt;br /&gt;
* Wartung, Backups und Fehlerdiagnose&lt;br /&gt;
&lt;br /&gt;
== Aktueller Release-Stand ==&lt;br /&gt;
&lt;br /&gt;
Der aktuellste bekannte Release ist &#039;&#039;&#039;AUGUST-2026-2-RELEASE&#039;&#039;&#039;. Nicht alle Projekte verwenden bereits diesen Stand. Der tatsächlich installierte Release wird deshalb je Projekt dokumentiert. Maßgebliche technische Quelle ist das private GitHub-Repository [https://github.com/tinetronics/megbes tinetronics/megbes].&lt;br /&gt;
&lt;br /&gt;
== Wichtiger Hinweis ==&lt;br /&gt;
&lt;br /&gt;
Passwörter, Tokens, private Schlüssel, vollständige Zugangsdaten und geheime Update-URLs dürfen nicht im Wiki gespeichert werden. Siehe [[Sicherheit]].&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:MegBes]]&lt;br /&gt;
&lt;br /&gt;
== Technische Referenz ==&lt;br /&gt;
&lt;br /&gt;
* [[Softwaremodule|Softwaremodule und Build]]&lt;br /&gt;
* [[Konfiguration|Projektkonfiguration]]&lt;br /&gt;
* [[UDP und Stationszustände|UDP und Stationszustände]]&lt;/div&gt;</summary>
		<author><name>Clawtronics</name></author>
	</entry>
	<entry>
		<id>https://wiki.megbes.de/index.php?title=Konfiguration&amp;diff=10</id>
		<title>Konfiguration</title>
		<link rel="alternate" type="text/html" href="https://wiki.megbes.de/index.php?title=Konfiguration&amp;diff=10"/>
		<updated>2026-08-04T20:26:57Z</updated>

		<summary type="html">&lt;p&gt;Clawtronics: Technische Dokumentation aus aktuellem Quellcode&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Konfiguration =&lt;br /&gt;
&lt;br /&gt;
== Grundsatz ==&lt;br /&gt;
&lt;br /&gt;
Die maßgebliche Projektkonfiguration befindet sich im privaten Repository `tinetronics/megbes-config`. Das Wiki beschreibt Bedeutung und Pflege der Felder, ersetzt aber nicht die aktuelle Konfigurationsdatei.&lt;br /&gt;
&lt;br /&gt;
== megbes-external-config ==&lt;br /&gt;
&lt;br /&gt;
Die produktive Konfiguration enthält je Projekt einen eigenen Eintrag. Der aktuelle Stand umfasst unter anderem:&lt;br /&gt;
&lt;br /&gt;
* `gse`&lt;br /&gt;
* `miqua`&lt;br /&gt;
* `bayam`&lt;br /&gt;
* `limes`&lt;br /&gt;
* `nowalux`&lt;br /&gt;
* `miquaguide`&lt;br /&gt;
* `tine`&lt;br /&gt;
* `hon`&lt;br /&gt;
* `messe`&lt;br /&gt;
* `gkp`&lt;br /&gt;
&lt;br /&gt;
Zusätzlich existieren lokale Entwicklungs- beziehungsweise Testeinträge.&lt;br /&gt;
&lt;br /&gt;
Zu den projektspezifischen Feldern gehören:&lt;br /&gt;
&lt;br /&gt;
* Kommunikationsprotokoll zum internen Server&lt;br /&gt;
* Adresse des internen Servers&lt;br /&gt;
* Port des internen Servers&lt;br /&gt;
* bei Projekten mit zentraler Authentifizierung: initialer Administratorname und verschlüsseltes Administratorpasswort&lt;br /&gt;
&lt;br /&gt;
Passwörter dürfen nur in der von MegBes erwarteten verschlüsselten Form in die Projektkonfiguration aufgenommen werden. Der Klartext gehört ausschließlich in den Passwortmanager.&lt;br /&gt;
&lt;br /&gt;
== megbes-status-config ==&lt;br /&gt;
&lt;br /&gt;
Die Status-Konfiguration ordnet den Projekten jeweils die internen und externen Dienste beziehungsweise Adressen zu. Sie dient dem zentralen Status-Monitor zur Prüfung der Projektinstanzen.&lt;br /&gt;
&lt;br /&gt;
== Änderung einer Projektkonfiguration ==&lt;br /&gt;
&lt;br /&gt;
# betroffenen Projekteintrag eindeutig bestimmen&lt;br /&gt;
# aktuellen Stand sichern und Änderung nachvollziehbar dokumentieren&lt;br /&gt;
# JSON-Syntax prüfen&lt;br /&gt;
# Geheimwerte nicht in Klartext eintragen&lt;br /&gt;
# Änderung über den vorgesehenen Git-Prozess bereitstellen&lt;br /&gt;
# betroffene Container kontrolliert neu laden oder starten&lt;br /&gt;
# External-, Internal- und Stationsfunktion testen&lt;br /&gt;
# Ergebnis und Datum auf der Projektseite dokumentieren&lt;br /&gt;
&lt;br /&gt;
== Benennung ==&lt;br /&gt;
&lt;br /&gt;
Die Bezeichner im Repository können von den im Alltag verwendeten Kürzeln abweichen, beispielsweise `nowalux` für LUX. Auf Projektseiten sollen deshalb sowohl Anzeigename als auch technischer Konfigurationsschlüssel angegeben werden.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:MegBes]]&lt;br /&gt;
[[Kategorie:Konfiguration]]&lt;/div&gt;</summary>
		<author><name>Clawtronics</name></author>
	</entry>
	<entry>
		<id>https://wiki.megbes.de/index.php?title=UDP_und_Stationszust%C3%A4nde&amp;diff=9</id>
		<title>UDP und Stationszustände</title>
		<link rel="alternate" type="text/html" href="https://wiki.megbes.de/index.php?title=UDP_und_Stationszust%C3%A4nde&amp;diff=9"/>
		<updated>2026-08-04T20:26:57Z</updated>

		<summary type="html">&lt;p&gt;Clawtronics: Technische Dokumentation aus aktuellem Quellcode&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= UDP und Stationszustände =&lt;br /&gt;
&lt;br /&gt;
== Zweck ==&lt;br /&gt;
&lt;br /&gt;
`megbes-internal` setzt Anforderungen von `megbes-external` in UDP-Signale für die Geräte im lokalen Ausstellungsnetz um. Das Zielgerät kann ein BrightSign-Player, PC, Raspberry Pi oder jedes andere Gerät sein, das das vereinbarte UDP-Signal verarbeitet.&lt;br /&gt;
&lt;br /&gt;
== Steuerbefehl ==&lt;br /&gt;
&lt;br /&gt;
Der interne Server erhält eine Kombination aus Stationsnummer und Befehl. Aus der Stationsnummer wird innerhalb des projektspezifischen Subnetzes die Zieladresse bestimmt; der Befehl wird als UDP-Nutzlast an das Gerät gesendet.&lt;br /&gt;
&lt;br /&gt;
Der konkrete UDP-Port und das lokale Subnetz sind projektbezogene Konfigurationswerte. Sie dürfen nicht aus einem anderen Projekt übernommen werden, ohne die örtliche Netzstruktur zu prüfen.&lt;br /&gt;
&lt;br /&gt;
== Stationsgesteuerter Modus ==&lt;br /&gt;
&lt;br /&gt;
Im stationsgesteuerten Modus melden die Medienstationen ihren Zustand per UDP an `megbes-internal`. Die Funktion muss bei `megbes-external` und `megbes-internal` aktiviert sein.&lt;br /&gt;
&lt;br /&gt;
Der aktuelle Code kennt folgende Zustände:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Zustand&lt;br /&gt;
! UDP-Schlüsselwort&lt;br /&gt;
! Bedeutung im aktuellen Code&lt;br /&gt;
|-&lt;br /&gt;
| `IDLE` || `idle` || Station ist frei und kann übernommen werden.&lt;br /&gt;
|-&lt;br /&gt;
| `TOUCHSCREEN` || `touchscreen` || Station wird lokal über den Touchscreen benutzt.&lt;br /&gt;
|-&lt;br /&gt;
| `REMOTE` || `remote` || Station wurde einer angemeldeten Fernbedienung beziehungsweise einem Benutzer zugeordnet.&lt;br /&gt;
|-&lt;br /&gt;
| `OPEN` || `open` || Station ist unabhängig von der normalen Benutzersperre freigegeben; Statusabfrage und Steuerung werden nicht durch die übliche Belegungsprüfung blockiert.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Beispiel für eine Zustandsmeldung:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;touchscreen: &amp;amp;lt;Stationsnummer&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Init-Meldung ==&lt;br /&gt;
&lt;br /&gt;
Eine UDP-Nachricht mit dem Schlüsselwort `init` wird als Start-/Statusmeldung einer Medienstation verarbeitet und kann eine Informationsmail auslösen. Inhalt und Empfänger sind projektspezifisch zu konfigurieren.&lt;br /&gt;
&lt;br /&gt;
== Timer ==&lt;br /&gt;
&lt;br /&gt;
Der Timer ist ein Fallback gegen dauerhaft blockierte Stationen und kann je Projekt überschrieben werden. Der Quellcode enthält zwei unterschiedliche Standardwerte:&lt;br /&gt;
&lt;br /&gt;
* stationsgesteuerte Zustandsverwaltung in `megbes-internal`: 1.800 Sekunden&lt;br /&gt;
* nicht stationsgesteuerte Sperrlogik in `megbes-external`: 180 Sekunden&lt;br /&gt;
&lt;br /&gt;
Diese Werte gelten nur, wenn das betreffende Projekt keinen eigenen Wert setzt. Der tatsächlich konfigurierte Wert gehört auf die Projektseite.&lt;br /&gt;
&lt;br /&gt;
== Status-Endpunkte ==&lt;br /&gt;
&lt;br /&gt;
`megbes-internal` stellt Endpunkte zum Abfragen, Initialisieren und Zurücksetzen eines Stationszustands bereit. `megbes-external` reicht die benötigten Aufrufe kontrolliert weiter. Konkrete Header- und Authentifizierungswerte werden aus Sicherheitsgründen nicht im allgemeinen Wiki dokumentiert.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:MegBes]]&lt;br /&gt;
[[Kategorie:Schnittstellen]]&lt;/div&gt;</summary>
		<author><name>Clawtronics</name></author>
	</entry>
	<entry>
		<id>https://wiki.megbes.de/index.php?title=Softwaremodule&amp;diff=8</id>
		<title>Softwaremodule</title>
		<link rel="alternate" type="text/html" href="https://wiki.megbes.de/index.php?title=Softwaremodule&amp;diff=8"/>
		<updated>2026-08-04T20:26:57Z</updated>

		<summary type="html">&lt;p&gt;Clawtronics: Technische Dokumentation aus aktuellem Quellcode&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Softwaremodule =&lt;br /&gt;
&lt;br /&gt;
Der aktuelle Quellcode von MegBes ist als Maven-Projekt mit mehreren Modulen aufgebaut. Der maßgebliche Stand befindet sich im privaten Repository `tinetronics/megbes`.&lt;br /&gt;
&lt;br /&gt;
== common ==&lt;br /&gt;
&lt;br /&gt;
Gemeinsam verwendete Datenmodelle, Konfigurationsklassen, Logging-, Mail-, Zertifikats- und Sicherheitsfunktionen. Dieses Modul wird von mehreren Diensten verwendet.&lt;br /&gt;
&lt;br /&gt;
== external ==&lt;br /&gt;
&lt;br /&gt;
Implementiert `megbes-external`. Das Modul stellt die zentralen HTTP-Endpunkte bereit, übernimmt Authentifizierung und Benutzer-/Stationslogik und kommuniziert mit dem projektspezifischen `megbes-internal`.&lt;br /&gt;
&lt;br /&gt;
== internal ==&lt;br /&gt;
&lt;br /&gt;
Implementiert `megbes-internal`. Das Modul nimmt Aufrufe von `megbes-external` entgegen, verwaltet bei Bedarf Stationszustände und sendet die eigentlichen UDP-Signale in das lokale Ausstellungsnetz.&lt;br /&gt;
&lt;br /&gt;
== client ==&lt;br /&gt;
&lt;br /&gt;
Enthält die statischen Web-Oberflächen und JavaScript-Dateien für Anmeldung, Ticketdarstellung, Hub und Stationsbedienung. Es existieren Varianten mit und ohne Authentifizierung sowie für stationsgesteuerte Projekte.&lt;br /&gt;
&lt;br /&gt;
== status ==&lt;br /&gt;
&lt;br /&gt;
Implementiert den Status-Monitor. Zu den erkennbaren Funktionen gehören:&lt;br /&gt;
&lt;br /&gt;
* Status- und Verbindungstests&lt;br /&gt;
* Anzeige interner Aufrufprotokolle&lt;br /&gt;
* Erstellung, Installation, Download und Löschung von Zertifikaten&lt;br /&gt;
* Ver- und Entschlüsselungswerkzeuge für Konfigurationswerte&lt;br /&gt;
* Aktivierung und Deaktivierung bestimmter Mail-Informationen&lt;br /&gt;
&lt;br /&gt;
== utils ==&lt;br /&gt;
&lt;br /&gt;
Enthält kleine Hilfsprogramme zum Senden von UDP-Testsignalen für `init`, `idle`, `touchscreen` und `open`.&lt;br /&gt;
&lt;br /&gt;
== release-builder ==&lt;br /&gt;
&lt;br /&gt;
Hilfsmodul zur Erstellung der Releases.&lt;br /&gt;
&lt;br /&gt;
== Build und Veröffentlichung ==&lt;br /&gt;
&lt;br /&gt;
Der aktuelle Build verwendet Java 25 und GitHub Actions. Bei Änderungen am Branch `master` werden die Module gebaut und Snapshot-Docker-Images für `megbes-external`, `megbes-internal` und den Status-Monitor veröffentlicht. Produktive Releases werden gesondert versioniert; die Historie steht in `version.txt`.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:MegBes]]&lt;br /&gt;
[[Kategorie:Software]]&lt;/div&gt;</summary>
		<author><name>Clawtronics</name></author>
	</entry>
	<entry>
		<id>https://wiki.megbes.de/index.php?title=Projekt%C3%BCbersicht&amp;diff=7</id>
		<title>Projektübersicht</title>
		<link rel="alternate" type="text/html" href="https://wiki.megbes.de/index.php?title=Projekt%C3%BCbersicht&amp;diff=7"/>
		<updated>2026-08-04T20:11:04Z</updated>

		<summary type="html">&lt;p&gt;Clawtronics: Grundstruktur des neuen MegBes-Wikis&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Projektübersicht =&lt;br /&gt;
&lt;br /&gt;
Alle nachfolgend aufgeführten Projekte sind aktiv. Technische Betriebsdaten werden schrittweise auf getrennten Projektseiten ergänzt. Geheimwerte werden niemals im Wiki gespeichert.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Projekt&lt;br /&gt;
! Status&lt;br /&gt;
! Release external&lt;br /&gt;
! Release internal&lt;br /&gt;
! Letzte Prüfung&lt;br /&gt;
|-&lt;br /&gt;
| tine || aktiv || noch zu erfassen || noch zu erfassen || noch zu erfassen&lt;br /&gt;
|-&lt;br /&gt;
| HON || aktiv || noch zu erfassen || noch zu erfassen || noch zu erfassen&lt;br /&gt;
|-&lt;br /&gt;
| GSE || aktiv || noch zu erfassen || noch zu erfassen || noch zu erfassen&lt;br /&gt;
|-&lt;br /&gt;
| MiQua || aktiv || noch zu erfassen || noch zu erfassen || noch zu erfassen&lt;br /&gt;
|-&lt;br /&gt;
| BayAM || aktiv || noch zu erfassen || noch zu erfassen || noch zu erfassen&lt;br /&gt;
|-&lt;br /&gt;
| GKP || aktiv || noch zu erfassen || noch zu erfassen || noch zu erfassen&lt;br /&gt;
|-&lt;br /&gt;
| LUX || aktiv || noch zu erfassen || noch zu erfassen || noch zu erfassen&lt;br /&gt;
|-&lt;br /&gt;
| Limes || aktiv || noch zu erfassen || noch zu erfassen || noch zu erfassen&lt;br /&gt;
|-&lt;br /&gt;
| Messe || aktiv || noch zu erfassen || noch zu erfassen || noch zu erfassen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Inhalt einer Projektseite ==&lt;br /&gt;
&lt;br /&gt;
Jede Projektseite soll mindestens enthalten:&lt;br /&gt;
&lt;br /&gt;
* vollständiger Projektname und internes Kürzel&lt;br /&gt;
* verantwortliche Ansprechpartner innerhalb von tinetronics&lt;br /&gt;
* Domain von megbes-external&lt;br /&gt;
* DynDNS-Adresse oder interne Erreichbarkeit&lt;br /&gt;
* Container-Namen und Portzuordnungen&lt;br /&gt;
* installierte Releases&lt;br /&gt;
* eingesetzte Server- und Stationshardware&lt;br /&gt;
* projektspezifischer Stations-Timer&lt;br /&gt;
* Datum und Ergebnis der letzten Funktionsprüfung&lt;br /&gt;
* bekannte Besonderheiten und offene Aufgaben&lt;br /&gt;
&lt;br /&gt;
Zugangsdaten, Tokens und Schlüssel werden durch einen Verweis auf den Passwortmanager ersetzt.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:MegBes]]&lt;br /&gt;
[[Kategorie:Projekte]]&lt;/div&gt;</summary>
		<author><name>Clawtronics</name></author>
	</entry>
	<entry>
		<id>https://wiki.megbes.de/index.php?title=Sicherheit&amp;diff=6</id>
		<title>Sicherheit</title>
		<link rel="alternate" type="text/html" href="https://wiki.megbes.de/index.php?title=Sicherheit&amp;diff=6"/>
		<updated>2026-08-04T20:11:04Z</updated>

		<summary type="html">&lt;p&gt;Clawtronics: Grundstruktur des neuen MegBes-Wikis&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Sicherheit =&lt;br /&gt;
&lt;br /&gt;
== Keine Geheimnisse im Wiki ==&lt;br /&gt;
&lt;br /&gt;
Auch dieses interne Wiki ist kein Passwortmanager. Folgende Inhalte dürfen hier nicht gespeichert werden:&lt;br /&gt;
&lt;br /&gt;
* Passwörter&lt;br /&gt;
* API- und Zugriffstokens&lt;br /&gt;
* private Schlüssel&lt;br /&gt;
* geheime DynDNS-Update-URLs&lt;br /&gt;
* vollständige Datenbank-Verbindungszeichenfolgen mit Zugangsdaten&lt;br /&gt;
* entschlüsselbare Zertifikatskennwörter&lt;br /&gt;
* Sitzungstokens oder Authentifizierungs-Cookies&lt;br /&gt;
&lt;br /&gt;
Im Wiki werden ausschließlich Variablennamen und neutrale Platzhalter verwendet, zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;MAIL_SENDER_PASSWORD=&amp;amp;lt;im Passwortmanager hinterlegt&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Trennung von Dokumentation und Geheimnissen ==&lt;br /&gt;
&lt;br /&gt;
Das Wiki beschreibt:&lt;br /&gt;
&lt;br /&gt;
* Zweck eines Geheimwerts&lt;br /&gt;
* betroffene Komponente&lt;br /&gt;
* verantwortliches Konto oder System&lt;br /&gt;
* Ablageort im vorgesehenen Passwortmanager&lt;br /&gt;
* Verfahren zur Rotation und zum Funktionstest&lt;br /&gt;
&lt;br /&gt;
Der konkrete Wert wird ausschließlich im dafür vorgesehenen Passwortmanager gespeichert.&lt;br /&gt;
&lt;br /&gt;
== Rotation ==&lt;br /&gt;
&lt;br /&gt;
Bei einer Rotation gilt grundsätzlich:&lt;br /&gt;
&lt;br /&gt;
# betroffene Systeme und Abhängigkeiten erfassen&lt;br /&gt;
# neuen Wert erzeugen und sicher ablegen&lt;br /&gt;
# Konfigurationen kontrolliert aktualisieren&lt;br /&gt;
# Anwendung oder Container neu starten, falls erforderlich&lt;br /&gt;
# Funktion prüfen&lt;br /&gt;
# alten Wert widerrufen&lt;br /&gt;
# Datum und Ergebnis dokumentieren, jedoch niemals den Geheimwert&lt;br /&gt;
&lt;br /&gt;
== Konfigurationsbeispiele ==&lt;br /&gt;
&lt;br /&gt;
Vor dem Einfügen von Konfigurationen, Protokollen oder Screenshots müssen Passwörter, Tokens, Schlüssel, Zugangsdaten und personenbezogene Informationen entfernt werden.&lt;br /&gt;
&lt;br /&gt;
== Git-Verlauf ==&lt;br /&gt;
&lt;br /&gt;
Ein aus dem aktuellen Dateistand gelöschtes Geheimnis kann weiterhin im Git-Verlauf vorhanden sein. Ein offengelegter Wert muss deshalb rotiert werden; bloßes Löschen genügt nicht.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:MegBes]]&lt;br /&gt;
[[Kategorie:Sicherheit]]&lt;/div&gt;</summary>
		<author><name>Clawtronics</name></author>
	</entry>
	<entry>
		<id>https://wiki.megbes.de/index.php?title=Betrieb_und_Releases&amp;diff=5</id>
		<title>Betrieb und Releases</title>
		<link rel="alternate" type="text/html" href="https://wiki.megbes.de/index.php?title=Betrieb_und_Releases&amp;diff=5"/>
		<updated>2026-08-04T20:11:04Z</updated>

		<summary type="html">&lt;p&gt;Clawtronics: Grundstruktur des neuen MegBes-Wikis&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Betrieb und Releases =&lt;br /&gt;
&lt;br /&gt;
== Maßgebliche Quellen ==&lt;br /&gt;
&lt;br /&gt;
* Anwendung und Releases: privates GitHub-Repository [https://github.com/tinetronics/megbes tinetronics/megbes]&lt;br /&gt;
* Projektkonfiguration: privates GitHub-Repository [https://github.com/tinetronics/megbes-config tinetronics/megbes-config]&lt;br /&gt;
&lt;br /&gt;
Das Wiki erläutert Abläufe und Zusammenhänge. Bei technischen Detailwerten haben der aktuelle Repository-Stand und die tatsächlich laufende Projektkonfiguration Vorrang.&lt;br /&gt;
&lt;br /&gt;
== Release-Stand ==&lt;br /&gt;
&lt;br /&gt;
Der aktuellste bekannte Release ist &#039;&#039;&#039;AUGUST-2026-2-RELEASE&#039;&#039;&#039;. Bestandsprojekte können bewusst oder vorübergehend ältere Releases verwenden.&lt;br /&gt;
&lt;br /&gt;
Bei jedem Projekt sollen mindestens folgende Angaben gepflegt werden:&lt;br /&gt;
&lt;br /&gt;
* installierter Release von megbes-external&lt;br /&gt;
* installierter Release von megbes-internal&lt;br /&gt;
* Datum der letzten Aktualisierung&lt;br /&gt;
* Ergebnis des Funktionstests&lt;br /&gt;
* bekannte projektspezifische Abweichungen&lt;br /&gt;
&lt;br /&gt;
Ein Projekt darf nicht allein aufgrund eines neuen verfügbaren Releases ungeprüft aktualisiert werden. Vorher sind Konfiguration, Zertifikate, Schnittstellen und projektspezifische Besonderheiten zu prüfen.&lt;br /&gt;
&lt;br /&gt;
== Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
Für neue interne Server wird die jeweils aktuelle &#039;&#039;&#039;Ubuntu-LTS-Version&#039;&#039;&#039; verwendet. Bestehende Systeme werden möglichst aktuell und innerhalb eines unterstützten LTS-Zweigs gehalten.&lt;br /&gt;
&lt;br /&gt;
Vor einem Upgrade sind mindestens erforderlich:&lt;br /&gt;
&lt;br /&gt;
# vollständige Sicherung der relevanten Konfigurationen und persistenten Daten&lt;br /&gt;
# Erfassung der laufenden Container, Images, Volumes und Portzuordnungen&lt;br /&gt;
# Prüfung des aktuellen System- und Docker-Status&lt;br /&gt;
# Planung eines Wartungsfensters&lt;br /&gt;
# Funktionstest von Docker, megbes-internal und der Kommunikation zu den Stationen nach dem Upgrade&lt;br /&gt;
&lt;br /&gt;
== Projektspezifische Parameter ==&lt;br /&gt;
&lt;br /&gt;
Stations-Timer, Ports, Domains und weitere Laufzeitparameter sind projektabhängig. Sie werden nicht als globaler Standard dokumentiert, sondern auf der jeweiligen Projektseite beziehungsweise in der maßgeblichen Konfiguration.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:MegBes]]&lt;br /&gt;
[[Kategorie:Betrieb]]&lt;/div&gt;</summary>
		<author><name>Clawtronics</name></author>
	</entry>
	<entry>
		<id>https://wiki.megbes.de/index.php?title=Komponenten&amp;diff=4</id>
		<title>Komponenten</title>
		<link rel="alternate" type="text/html" href="https://wiki.megbes.de/index.php?title=Komponenten&amp;diff=4"/>
		<updated>2026-08-04T20:11:03Z</updated>

		<summary type="html">&lt;p&gt;Clawtronics: Grundstruktur des neuen MegBes-Wikis&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Komponenten =&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
; megbes-external&lt;br /&gt;
: Zentral betriebene Anwendung. Pro Kunde beziehungsweise Projekt existiert ein eigener Docker-Container unter Plesk.&lt;br /&gt;
&lt;br /&gt;
; megbes-internal&lt;br /&gt;
: Anwendung auf dem lokalen Server des Kunden. Sie setzt eingehende Anforderungen in UDP-Signale für das Ausstellungsnetz um.&lt;br /&gt;
&lt;br /&gt;
; Web-Frontend oder App&lt;br /&gt;
: Bedienoberfläche, über die Besucher, Aufsicht oder Servicepersonal Funktionen einer Medienstation auslösen können.&lt;br /&gt;
&lt;br /&gt;
; Projektkonfiguration&lt;br /&gt;
: Zuordnung von Projekten, internen Servern, Stationen und weiteren Parametern. Maßgebliche Quelle ist das private Repository `tinetronics/megbes-config`.&lt;br /&gt;
&lt;br /&gt;
== Typische Infrastruktur beim Kunden ==&lt;br /&gt;
&lt;br /&gt;
* interner Server mit einer aktuell unterstützten Ubuntu-LTS-Version&lt;br /&gt;
* Docker-Laufzeitumgebung&lt;br /&gt;
* Router und projektspezifische Portfreigabe&lt;br /&gt;
* DynDNS oder eine andere dauerhaft erreichbare Adresse&lt;br /&gt;
* projektbezogene Zertifikate&lt;br /&gt;
* lokales Netzwerk für Server und Medienstationen&lt;br /&gt;
&lt;br /&gt;
== Typische Ausstellungshardware ==&lt;br /&gt;
&lt;br /&gt;
* BrightSign-Player&lt;br /&gt;
* PCs&lt;br /&gt;
* Raspberry Pis, auch als UDP-zu-GPIO-Umsetzer&lt;br /&gt;
* Relaismodule&lt;br /&gt;
* Ticket-Monitore&lt;br /&gt;
* USB-WLAN-Adapter für nachgerüstete Medienstationen&lt;br /&gt;
&lt;br /&gt;
== Grundsatz ==&lt;br /&gt;
&lt;br /&gt;
Konkrete Modelle und Ausführungen sind projektabhängig. Kundenspezifische Angaben werden auf den jeweiligen Projektseiten dokumentiert.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:MegBes]]&lt;br /&gt;
[[Kategorie:Komponenten]]&lt;/div&gt;</summary>
		<author><name>Clawtronics</name></author>
	</entry>
	<entry>
		<id>https://wiki.megbes.de/index.php?title=Architektur&amp;diff=3</id>
		<title>Architektur</title>
		<link rel="alternate" type="text/html" href="https://wiki.megbes.de/index.php?title=Architektur&amp;diff=3"/>
		<updated>2026-08-04T20:11:03Z</updated>

		<summary type="html">&lt;p&gt;Clawtronics: Grundstruktur des neuen MegBes-Wikis&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Architektur =&lt;br /&gt;
&lt;br /&gt;
== Überblick ==&lt;br /&gt;
&lt;br /&gt;
MegBes besteht aus einer zentral betriebenen externen Ebene, einer lokalen internen Ebene beim jeweiligen Kunden und den angeschlossenen Medienstationen.&lt;br /&gt;
&lt;br /&gt;
 Web-Frontend oder App&lt;br /&gt;
          ↓&lt;br /&gt;
 megbes-external (zentral bei IONOS/Plesk)&lt;br /&gt;
          ↓&lt;br /&gt;
 megbes-internal (Server beim Kunden)&lt;br /&gt;
          ↓&lt;br /&gt;
 UDP im Ausstellungsnetz&lt;br /&gt;
          ↓&lt;br /&gt;
 BrightSign, PC, Raspberry Pi oder anderes UDP-fähiges Gerät&lt;br /&gt;
&lt;br /&gt;
== megbes-external ==&lt;br /&gt;
&lt;br /&gt;
* Läuft zentral auf einem IONOS-Server unter Plesk.&lt;br /&gt;
* Für jeden Kunden beziehungsweise jedes Projekt wird ein eigener Docker-Container betrieben.&lt;br /&gt;
* Nimmt Anforderungen des Web-Frontends oder einer App entgegen.&lt;br /&gt;
* Ordnet die Anforderung dem betreffenden Projekt und internen Server zu.&lt;br /&gt;
* Projektbezogene Konfigurationen werden im privaten Repository [https://github.com/tinetronics/megbes-config tinetronics/megbes-config] verwaltet.&lt;br /&gt;
&lt;br /&gt;
== megbes-internal ==&lt;br /&gt;
&lt;br /&gt;
* Läuft bei jedem Kunden auf einem eigenen Server.&lt;br /&gt;
* Befindet sich im lokalen Netzwerk der Ausstellung.&lt;br /&gt;
* Nimmt die für das Projekt bestimmten Anforderungen entgegen.&lt;br /&gt;
* Wandelt Steuerbefehle in UDP-Signale um und sendet diese an die Medienstationen.&lt;br /&gt;
&lt;br /&gt;
== Medienstationen ==&lt;br /&gt;
&lt;br /&gt;
MegBes ist nicht auf einen bestimmten Gerätetyp beschränkt. Entscheidend ist, dass das Zielgerät UDP-Signale empfangen oder über eine passende Zusatzkomponente umsetzen kann. Typische Empfänger sind:&lt;br /&gt;
&lt;br /&gt;
* BrightSign-Player&lt;br /&gt;
* Windows- oder Linux-PCs&lt;br /&gt;
* Raspberry Pis&lt;br /&gt;
* relaisgesteuerte Stationen&lt;br /&gt;
* weitere netzwerkfähige Steuerungen&lt;br /&gt;
&lt;br /&gt;
== Projektspezifische Ausprägung ==&lt;br /&gt;
&lt;br /&gt;
Domains, Ports, Stationszuordnungen, Timer und installierte Releases können je Projekt abweichen. Diese Angaben gehören auf die jeweilige Projektseite und dürfen nicht als globaler Standard verallgemeinert werden.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:MegBes]]&lt;br /&gt;
[[Kategorie:Architektur]]&lt;/div&gt;</summary>
		<author><name>Clawtronics</name></author>
	</entry>
	<entry>
		<id>https://wiki.megbes.de/index.php?title=Hauptseite&amp;diff=2</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="https://wiki.megbes.de/index.php?title=Hauptseite&amp;diff=2"/>
		<updated>2026-08-04T20:11:03Z</updated>

		<summary type="html">&lt;p&gt;Clawtronics: Grundstruktur des neuen MegBes-Wikis&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
= MegBes-Wiki =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MegBes&#039;&#039;&#039; ist ein System zur Steuerung von Medienstationen und anderen Geräten in Ausstellungen. Es kann grundsätzlich alle Geräte ansprechen, die UDP-Signale direkt empfangen oder über eine geeignete Schnittstelle umsetzen können, beispielsweise BrightSign-Player, PCs und Raspberry Pis.&lt;br /&gt;
&lt;br /&gt;
== Systemüberblick ==&lt;br /&gt;
&lt;br /&gt;
Der typische Signalweg lautet:&lt;br /&gt;
&lt;br /&gt;
 Web-Frontend oder App → megbes-external → megbes-internal → UDP → Medienstation&lt;br /&gt;
&lt;br /&gt;
* [[Architektur|Architektur und Signalweg]]&lt;br /&gt;
* [[Komponenten|Komponenten des Systems]]&lt;br /&gt;
* [[Betrieb und Releases|Betrieb, Ubuntu und Releases]]&lt;br /&gt;
* [[Projektübersicht|Aktive Projekte]]&lt;br /&gt;
* [[Sicherheit|Sicherheits- und Dokumentationsregeln]]&lt;br /&gt;
&lt;br /&gt;
== Einrichtung und Betrieb ==&lt;br /&gt;
&lt;br /&gt;
Die folgenden Bereiche werden aus der bisherigen Dokumentation überarbeitet und schrittweise ergänzt:&lt;br /&gt;
&lt;br /&gt;
* Installation eines internen Servers&lt;br /&gt;
* Einrichtung eines neuen Projekts&lt;br /&gt;
* Konfiguration von megbes-external und megbes-internal&lt;br /&gt;
* Netzwerk, Routing und DynDNS&lt;br /&gt;
* Zertifikate&lt;br /&gt;
* Medienstationen und Ausstellungshardware&lt;br /&gt;
* UDP-Protokoll und Stationszustände&lt;br /&gt;
* Wartung, Backups und Fehlerdiagnose&lt;br /&gt;
&lt;br /&gt;
== Aktueller Release-Stand ==&lt;br /&gt;
&lt;br /&gt;
Der aktuellste bekannte Release ist &#039;&#039;&#039;AUGUST-2026-2-RELEASE&#039;&#039;&#039;. Nicht alle Projekte verwenden bereits diesen Stand. Der tatsächlich installierte Release wird deshalb je Projekt dokumentiert. Maßgebliche technische Quelle ist das private GitHub-Repository [https://github.com/tinetronics/megbes tinetronics/megbes].&lt;br /&gt;
&lt;br /&gt;
== Wichtiger Hinweis ==&lt;br /&gt;
&lt;br /&gt;
Passwörter, Tokens, private Schlüssel, vollständige Zugangsdaten und geheime Update-URLs dürfen nicht im Wiki gespeichert werden. Siehe [[Sicherheit]].&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:MegBes]]&lt;/div&gt;</summary>
		<author><name>Clawtronics</name></author>
	</entry>
</feed>