<!DOCTYPE html>
|
<html lang="en">
|
<head>
|
<meta charset="UTF-8">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="generator" content="Asciidoctor 2.0.10">
|
<meta name="author" content="Ulrich Hilger">
|
<title>WebBox Einrichtung</title>
|
<link rel="stylesheet" href="asciidoctor.css">
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
|
</head>
|
<body class="article toc2 toc-left">
|
<div id="header">
|
<h1>WebBox Einrichtung</h1>
|
<div class="details">
|
<span id="author" class="author">Ulrich Hilger</span><br>
|
<span id="email" class="email"><a href="mailto:ulrich.hilger@web.de">ulrich.hilger@web.de</a></span><br>
|
<span id="revnumber">version 3.1,</span>
|
<span id="revdate">24. Januar 2021</span>
|
</div>
|
<div id="toc" class="toc2">
|
<div id="toctitle">Inhalt</div>
|
<ul class="sectlevel1">
|
<li><a href="#wbx-ueber">1. Über die WebBox</a>
|
<ul class="sectlevel2">
|
<li><a href="#wbx-abgrenzung">1.1. Zielgruppe</a></li>
|
<li><a href="#wbx-lizenz">1.2. Lizenz</a></li>
|
</ul>
|
</li>
|
<li><a href="#wbx-inst">2. Installation</a>
|
<ul class="sectlevel2">
|
<li><a href="#wbx-sichern">2.1. WebBox sichern</a></li>
|
<li><a href="#wbx-zielsystem">2.2. Zielsystem einstellen</a></li>
|
</ul>
|
</li>
|
<li><a href="#wbx-start-stopp">3. Starten und Stoppen</a>
|
<ul class="sectlevel2">
|
<li><a href="#_starten">3.1. Starten</a></li>
|
<li><a href="#_stoppen">3.2. Stoppen</a></li>
|
<li><a href="#wbx-admin-aendern">3.3. Benutzer anlegen</a></li>
|
</ul>
|
</li>
|
<li><a href="#wbx-bedienung">4. Bedienung</a></li>
|
<li><a href="#wbx-eigenbau">5. Eigene Konfiguration</a>
|
<ul class="sectlevel2">
|
<li><a href="#wbx-dl">5.1. Beschaffung</a></li>
|
<li><a href="#wbx-einrichten">5.2. Zusammenbau</a></li>
|
<li><a href="#wbx-daten-apps">5.3. Daten und Apps</a></li>
|
</ul>
|
</li>
|
<li><a href="#wbx-tech-info">6. Technische Infos</a>
|
<ul class="sectlevel2">
|
<li><a href="#wbx-struktur">6.1. Ordnerstruktur</a></li>
|
<li><a href="#wbx-java-konf">6.2. Java</a></li>
|
<li><a href="#wbx-tc-konf">6.3. Tomcat</a></li>
|
<li><a href="#wbx-derby-konf">6.4. Derby</a></li>
|
<li><a href="#wbx-konf-um">6.5. Nutzerverwaltung</a></li>
|
<li><a href="#wbx-ablage">6.6. Datenablage</a></li>
|
<li><a href="#wbx-root-app">6.7. WebBox Startseite</a></li>
|
<li><a href="#wbx-konf-file-cms">6.8. Dateiverwaltung</a></li>
|
<li><a href="#wbx-lib">6.9. WebBox Lib</a></li>
|
<li><a href="#wbx-erweitern">6.10. WebBox erweitern</a></li>
|
</ul>
|
</li>
|
<li><a href="#_dokumenthistorie">7. Dokumenthistorie</a></li>
|
</ul>
|
</div>
|
</div>
|
<div id="content">
|
<div id="preamble">
|
<div class="sectionbody">
|
<div class="imageblock">
|
<div class="content">
|
<img src="bilder/File-Server-icon.png" alt="WebBox">
|
</div>
|
</div>
|
<div class="paragraph">
|
<p>Das Internet ist als Verbindung von Netzknoten konzipiert, die Inhalte bereit stellen. Die WebBox etabliert einen solchen Netzknoten als persönliche Instanz eines Nutzers und ermöglicht es, eigene Inhalte über das Netz zu verwalten und zu teilen.</p>
|
</div>
|
</div>
|
</div>
|
<div class="sect1">
|
<h2 id="wbx-ueber"><a class="anchor" href="#wbx-ueber"></a>1. Über die WebBox</h2>
|
<div class="sectionbody">
|
<div class="paragraph">
|
<p>Mit der WebBox können Inhalte so verwaltet werden, wie es Nutzer vom Desktop handelsüblicher Betriebssyteme her kennen. Zur Bedienung wird nicht mehr als ein Browser benötigt. Von überallher können Texte und Dokumente bearbeitet, Bilder, Musik oder Videos organisiert, kopiert, verschoben oder herauf- und heruntergeladen werden.</p>
|
</div>
|
<div class="paragraph">
|
<p>Die Kopie in einen öffentlichen Ordner genügt und Inhalte erscheinen für jedermann sichtbar im Netz. Der Rest bleibt im privaten Bereich nur für den Nutzer zugänglich, dem sie gehören. Rollen und Berechtigungen können über die Nutzerverwaltung verwaltet werden.</p>
|
</div>
|
<div class="paragraph">
|
<p>Die WebBox etabliert zudem ein relationales Datenbankmanagementsystem und lässt sich mit Java-Webanwendungen beliebig erweitern.</p>
|
</div>
|
<div class="sect2">
|
<h3 id="wbx-abgrenzung"><a class="anchor" href="#wbx-abgrenzung"></a>1.1. Zielgruppe</h3>
|
<div class="paragraph">
|
<p>Die Beschreibung in diesem Dokument beschränkt sich auf eine Nutzung mit Linux. Eine WebBox läuft darüber hinaus auch auf anderen Betriebssystemen wie Mac OS oder Windows.</p>
|
</div>
|
<div class="paragraph">
|
<p>Die WebBox ist mit dem Einsatz für einzelne Personen, Familien, oder kleine Arbeitsgruppen im Sinn entstanden. Sie funktioniert unverändert auch für eine größere Anzahl an Benutzern, allerdings ist ein großer Nutzerkreis eher etwas für das Zusammenspiel vieler WebBoxen.</p>
|
</div>
|
<div class="paragraph">
|
<p>Ein Betrieb vieler WebBoxen aus einer Hand erfordert zusätzliche Konfiguration für Cluster, weitere Infrastruktur und deren Orchestrierung. Der Betrieb in einem solchen Szenario ist möglich, aber in diesem Dokument nicht abgedeckt.</p>
|
</div>
|
</div>
|
<div class="sect2">
|
<h3 id="wbx-lizenz"><a class="anchor" href="#wbx-lizenz"></a>1.2. Lizenz</h3>
|
<div class="paragraph">
|
<p>Die WebBox wird unter den Bedingungen der <a href="https://www.gnu.org/licenses/agpl-3.0.de.html">GNU Affero General Public License</a> bereitgestellt.</p>
|
</div>
|
</div>
|
</div>
|
</div>
|
<div class="sect1">
|
<h2 id="wbx-inst"><a class="anchor" href="#wbx-inst"></a>2. Installation</h2>
|
<div class="sectionbody">
|
<div class="paragraph">
|
<p>Zur Installation einer WebBox werden eine Kommandozeile geöffnet und die folgenden Kommandos ausgeführt:</p>
|
</div>
|
<div class="listingblock">
|
<div class="title">Kommandos zur Installation einer WebBox in ein beispielhaftes Benutzerverzeichnis <code>/home/fred</code></div>
|
<div class="content">
|
<pre class="highlightjs highlight"><code data-lang="Bash" class="language-Bash hljs"># ins Benutzerverzechnis wechseln
|
cd /home/fred
|
|
# das Installationsskript laden
|
wget https://uhilger.de/data/pg/webbox/dl/make-wbx
|
|
# das Skript ausführbar machen
|
chmod ug+x make-wbx
|
|
# die Teile der WebBox laden und zusammenstellen
|
./make-wbx</code></pre>
|
</div>
|
</div>
|
<div class="paragraph">
|
<p>Es werden keine Eingriffe im System der Zielmaschine vorgenommen, alles beschränkt sich auf das Benutzerverzeichnis: Die obigen Kommandos legen im Ordner <code>/home/fred</code> einen neuen Ordner <code>wbx-inst</code> an, laden alle Bestandteile einer WebBox herunter und machen sie ausführbar. Über eine Internet-Verbindung mit 10 Mbit/s oder mehr dauert dieser Vorgang weniger als eine Minute.</p>
|
</div>
|
<div id="wbx-ordner" class="paragraph">
|
<p>Die ausführbare Fassung der WebBox liegt anschließend im Ordner <code>/home/fred/wbx-inst/wbx</code>. Dieser Ordner wird im weiteren Verlauf dieses Dokuments <code>$WBX-INST</code> genannt, d.h., wenn im Dokument <code>$WBX-INST</code> erscheint, ist <code>/home/fred/wbx-inst/wbx</code> gemeint.</p>
|
</div>
|
<div class="paragraph">
|
<p>Die WebBox kann nun genutzt werden, sollte aber nach dem ersten Ausprobieren für einen produktiven Betrieb <a href="#wbx-sichern">abgesichert</a> werden. Der Start der WebBox erfolgt wie in Kapitel <a href="#wbx-start-stopp">Starten und Stoppen</a> beschrieben. Abweichend vom Betrieb laut Installation kann die WebBox auch mit einer <a href="#wbx-eigenbau">eigenen Konfiguration</a> ausgeführt werden.</p>
|
</div>
|
<div class="sect2">
|
<h3 id="wbx-sichern"><a class="anchor" href="#wbx-sichern"></a>2.1. WebBox sichern</h3>
|
<div class="paragraph">
|
<p>Die hier beschriebene Installation ist nur für Testzwecke geeignet. Um eine WebBox sicher <a href="bedienung.adoc#wbx-prod">produktiv zu benutzen</a>, sollte sie zusammen mit einem <a href="https://de.wikipedia.org/wiki/Proxy_(Rechnernetz)">Proxy</a> wie <a href="http://www.lighttpd.net/">Lighttpd</a> betrieben werden. Grob gesagt ist hierfür das Vorgehen wie folgt:</p>
|
</div>
|
<div class="olist arabic">
|
<ol class="arabic">
|
<li>
|
<p>Lighttpd installieren (auf <a href="https://wiki.ubuntuusers.de/lighttpd/">Ubuntu</a> z.B. mit <code>sudo apt-get install lighttpd</code>)</p>
|
</li>
|
<li>
|
<p>Ein <a href="https://de.wikipedia.org/wiki/Transport_Layer_Security">TLS</a>-Zertifikat erzeugen, z.B. bei <a href="https://letsencrypt.org/">Let’s Encrypt</a></p>
|
</li>
|
<li>
|
<p>Die verschlüsselte Kommunikation unter Verwendung des Zertifikats in der Konfiguration von Lighttpd <a href="https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_SSL">einrichten</a></p>
|
</li>
|
<li>
|
<p>In der Konfiguration von Lighttpd eine Weiterleitung auf die WebBox <a href="https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ModProxy">eintragen</a></p>
|
</li>
|
</ol>
|
</div>
|
<div class="paragraph">
|
<p>Die Kommunikation erfolgt auf diese Weise verschlüsselt und ist abgesichert gegen das Mitlesen unbefugter Dritter.</p>
|
</div>
|
<div class="sect3">
|
<h4 id="_verschlüsselung_ohne_proxy"><a class="anchor" href="#_verschlüsselung_ohne_proxy"></a>2.1.1. Verschlüsselung ohne Proxy</h4>
|
<div class="paragraph">
|
<p>Die WebBox kann auch ohne Proxy verschlüsselt kommunizieren. Für diese Variante ist eine <code>.keystore</code>-Datei im Verzeichnis <code>$WBX-INST/.conf/prg/tc-base/conf</code> erforderlich, in die das <a href="https://de.wikipedia.org/wiki/Transport_Layer_Security">TLS</a>-Zertifikat eingetragen wird. In der Datei <code>$WBX-INST/.conf/prg/tc-base/conf/server.xml</code> muss dann ein Konnektor für <a href="https://de.wikipedia.org/wiki/Hypertext_Transfer_Protocol_Secure">HTTPS</a> konfiguriert werden.</p>
|
</div>
|
<div class="paragraph">
|
<p>Das Vorgehen hierfür ist z.B. im Beitrag <a href="https://uhilger.de/data/doc/2019/12/tomcat-mit-https.md">HTTPS bei Tomcat aktivieren</a> beschrieben.</p>
|
</div>
|
</div>
|
</div>
|
<div class="sect2">
|
<h3 id="wbx-zielsystem"><a class="anchor" href="#wbx-zielsystem"></a>2.2. Zielsystem einstellen</h3>
|
<div class="paragraph">
|
<p>Das Installationsskript <code>make-wbx</code> ist im Auslieferungszustand für ein 64-Bit x86-Linux konfiguriert. Zur Verwendung auf Maschinen mit anderem Prozessor oder Betriebssystem muss der Uniform Resource Locator (URL) der passenden Java-Version ermittelt werden. Das kann z.B. bei <a href="https://www.azul.com/downloads/zulu-community">Azul</a> oder <a href="https://adoptopenjdk.net/">AdoptOpenJDK</a> geschehen.</p>
|
</div>
|
<div class="paragraph">
|
<p>Der URL muss vor der Ausführung im Parameter <code>JAVA_URL</code> des Skripts <code>make-wbx</code> eingetragen werden.</p>
|
</div>
|
</div>
|
</div>
|
</div>
|
<div class="sect1">
|
<h2 id="wbx-start-stopp"><a class="anchor" href="#wbx-start-stopp"></a>3. Starten und Stoppen</h2>
|
<div class="sectionbody">
|
<div class="paragraph">
|
<p>Die WebBox ist standardmäßig darauf eingerichtet, mit den <a href="#wbx-inst">installierten</a> Bestandteilen zu starten. Soll die Ablaufumgebung anders konfiguriert sein, muss vor dem ersten Start das Start- / Stoppskript der WebBox von Hand angepasst werden wie in <a href="#wbx-eigenbau">Eigene Konfiguration</a> beschrieben.</p>
|
</div>
|
<div class="sect2">
|
<h3 id="_starten"><a class="anchor" href="#_starten"></a>3.1. Starten</h3>
|
<div class="paragraph">
|
<p>Zum Starten der WebBox wird eine Kommandozeile geöffnet, in den <a href="#wbx-ordner">Ordner der WebBox</a> navigiert und das Kommando zum Start gegeben:</p>
|
</div>
|
<div class="listingblock">
|
<div class="content">
|
<pre>cd /home/fred/wbx-inst/wbx
|
./wbx start</pre>
|
</div>
|
</div>
|
<div class="paragraph">
|
<p>Auf der Kommandozeile erscheint die Meldung <code>WebBox Startsequenz durchgeführt</code>, die WebBox kann <a href="bedienung.adoc#wbx-aufrufen">im Browser aufgerufen werden</a>. Vor der ersten Verwendung müssen noch <a href="#wbx-admin-aendern">Benutzer angelegt</a> werden.</p>
|
</div>
|
</div>
|
<div class="sect2">
|
<h3 id="_stoppen"><a class="anchor" href="#_stoppen"></a>3.2. Stoppen</h3>
|
<div class="paragraph">
|
<p>Das Stoppen der WebBox erfolgt mit folgenden Befehlen auf der Kommandozeile:</p>
|
</div>
|
<div class="listingblock">
|
<div class="content">
|
<pre>cd /home/fred/wbx-inst/wbx
|
./wbx stop</pre>
|
</div>
|
</div>
|
<div class="paragraph">
|
<p>Die WebBox wird heruntergefahren, auf der Kommandozeile erscheint die Meldung <code>WebBox Stoppsequenz durchgeführt</code>.</p>
|
</div>
|
</div>
|
<div class="sect2">
|
<h3 id="wbx-admin-aendern"><a class="anchor" href="#wbx-admin-aendern"></a>3.3. Benutzer anlegen</h3>
|
<div class="paragraph">
|
<p>Beim ersten Start der WebBox wird automatisch der Benutzer <code>admin</code> mit Kennwort <code>admin</code> erstellt. Dieser Nutzer sollte gleich als Erstes verwendet werden, um einen anderen Benutzer mit Administrationsrechten anzulegen. Der neue Administrator-Benutzer muss mindestens die Rolle <code>nutzerAdmin</code> erhalten.</p>
|
</div>
|
<div class="paragraph">
|
<p>Die dazu erforderliche Nutzerverwaltung wird auf der <a href="bedienung.adoc#wbx-startseite">Startseite</a> der WebBox über das Menü oben rechts aufgerufen. Die Bedienung der Nutzerverwaltung ist in der <a href="https://uhilger.de/data/pg/Nutzerverwaltung/anleitung.adoc#_nutzerverwaltung">Anleitung</a> beschrieben.</p>
|
</div>
|
<div class="paragraph">
|
<p>Sobald nach der Konfiguration die Anmeldung mit dem neu angelegten Adminstrator-Benutzer gelingt, kann später der Benutzer <code>admin</code> gelöscht werden.</p>
|
</div>
|
<div class="paragraph">
|
<p>Zur Bedienung der <a href="bedienung.adoc#wbx-file-cms">Dateiverwaltung</a> benötigen Benutzer zudem die Rolle <code>ownFileAdmin</code>. Zum Ändern des eigenen Kennwortes kann Benutzern die Rolle <code>nutzerProfil</code> zugewiesen werden.</p>
|
</div>
|
</div>
|
</div>
|
</div>
|
<div class="sect1">
|
<h2 id="wbx-bedienung"><a class="anchor" href="#wbx-bedienung"></a>4. Bedienung</h2>
|
<div class="sectionbody">
|
<div class="paragraph">
|
<p>Die Bedienung der WebBox ist in der <a href="bedienung.adoc">Bedienungsanleitung</a> beschrieben.</p>
|
</div>
|
</div>
|
</div>
|
<div class="sect1">
|
<h2 id="wbx-eigenbau"><a class="anchor" href="#wbx-eigenbau"></a>5. Eigene Konfiguration</h2>
|
<div class="sectionbody">
|
<div class="paragraph">
|
<p>Voraussetzungen für die Nutzung der WebBox sind das Installationspaket der WebBox sowie Java, Tomcat und Derby. Diese Bestandteile werden bei der <a href="#wbx-inst">Installation</a> geladen, sie können aber auch einzeln beschafft und zusammengebaut oder aus vorhandenen Beständen genutzt werden.</p>
|
</div>
|
<div class="paragraph">
|
<p>Dies wird hier beispielhaft im Home-Verzeichnis des Benutzers ausgeführt. Auf einem Linux-System sind Benutzerverzeichnisse im Pfad <code>/home</code> angelegt, sie werden deshalb auch Home-Verzeichnis genannt. Das Home-Verzeichnis eines Benutzers namens <code>fred</code> ist zum Beispiel <code>/home/fred</code>.</p>
|
</div>
|
<div class="sect2">
|
<h3 id="wbx-dl"><a class="anchor" href="#wbx-dl"></a>5.1. Beschaffung</h3>
|
<div class="paragraph">
|
<p>Alle Teile sind als Freie Software erhältlich. Die noch nicht auf der Zielmaschine vorhandenen Teile können von ihren Produktseiten im Internet heruntergeladen werden:</p>
|
</div>
|
<div class="ulist">
|
<ul>
|
<li>
|
<p><a href="https://www.azul.com/downloads/zulu-community/">Java</a></p>
|
</li>
|
<li>
|
<p><a href="https://tomcat.apache.org">Tomcat</a></p>
|
</li>
|
<li>
|
<p><a href="https://dp.apache.org/derby">Derby</a></p>
|
</li>
|
<li>
|
<p><a href="https://uhilger.de/data/pg/webbox/dl/wbx-3-dist.tar.xz">WebBox</a></p>
|
</li>
|
</ul>
|
</div>
|
<div class="paragraph">
|
<p>Die heruntergeladenen Dateien finden sich anschließend je nach Konfiguration des Browsers üblicherweise in <code>/home/fred/Downloads</code>, je nach ausgewählter Version unter Namen wie etwa</p>
|
</div>
|
<div class="ulist">
|
<ul>
|
<li>
|
<p>Java: <code>zulu11.43.55-ca-jre11.0.9.1-linux_x64.tar.gz</code></p>
|
</li>
|
<li>
|
<p>Tomcat: <code>apache-tomcat-9.0.41.tar.gz</code></p>
|
</li>
|
<li>
|
<p>Derby: <code>db-derby-10.15.2.0-bin.tar.gz</code></p>
|
</li>
|
<li>
|
<p>WebBox: <code>wbx-3-dist.tar.xz</code></p>
|
</li>
|
</ul>
|
</div>
|
<div class="paragraph">
|
<p>Diese Dateien werden wie folgt entpackt:</p>
|
</div>
|
<div class="listingblock">
|
<div class="title">Kommandos zum Entpacken der Bestandteile einer WebBox</div>
|
<div class="content">
|
<pre class="highlightjs highlight"><code data-lang="Bash" class="language-Bash hljs">cd /home/fred
|
mkdir -p wbx-inst/{java,tc,db,wbx}
|
cd Downloads
|
tar -xf zulu11.43.55-ca-jre11.0.9.1-linux_x64.tar.gz -C ../wbx-inst/java --strip 1
|
tar -xf apache-tomcat-9.0.41.tar.gz -C ../wbx-inst/tc --strip 1
|
tar -xf db-derby-10.15.2.0-bin.tar.gz -C ../wbx-inst/db --strip 1
|
tar -xf wbx-3-dist.tar.xz -C ../wbx-inst/wbx --strip 1</code></pre>
|
</div>
|
</div>
|
<div class="paragraph">
|
<p>Damit sind die benötigten Programme bereit zur Verwendung. Der Ordner <code>/home/fred/wbx-inst/wbx</code> wird für den Rest dieses Dokuments <code>$WBX-INST</code> genannt. Im nächsten Abschnitt ist beschrieben, wie die WebBox zur Nutzung konfiguriert wird.</p>
|
</div>
|
</div>
|
<div class="sect2">
|
<h3 id="wbx-einrichten"><a class="anchor" href="#wbx-einrichten"></a>5.2. Zusammenbau</h3>
|
<div class="paragraph">
|
<p>Die WebBox ist standardmäßig so eingerichtet, wie es in <a href="#wbx-inst">Installation</a> und <a href="#wbx-prg-buendeln">Programme bündeln</a> beschrieben ist. Die von der WebBox benötigten Programme <a href="#wbx-eigenbau">Java, Tomcat und Derby</a> können aber auch anders eingebunden werden.</p>
|
</div>
|
<div class="sect3">
|
<h4 id="wbx-vorinst"><a class="anchor" href="#wbx-vorinst"></a>5.2.1. Vorhandene Programme verwenden</h4>
|
<div class="paragraph">
|
<p>Sind <a href="#wbx-eigenbau">Java, Tomcat und Derby</a> bereits vor der Installation der WebBox auf der Maschine vorhanden, ist in der Regel bei deren Installation ein systemweiter Pfadeintrag für <code>JAVA_HOME</code>, <code>CATALINA_HOME</code> oder <code>DERBY_HOME</code> gemacht worden. In diesen Fällen können die so vorliegenden Programme von der WebBox mitgenutzt werden. Die Pfadangabe im Start- / Stoppskript der WebBox kann dann auskommentiert bleiben, wie es im Auslieferungszustand der WebBox enthalten ist.</p>
|
</div>
|
<div class="listingblock">
|
<div class="title">Auslieferungszustand der WebBox: Die Ablageorte von Java, Tomcat und Derby sind auskommentiert</div>
|
<div class="content">
|
<pre class="highlightjs highlight"><code data-lang="Bash" class="language-Bash hljs"># export JAVA_HOME=
|
# export CATALINA_HOME=
|
# export DERBY_HOME=</code></pre>
|
</div>
|
</div>
|
<div class="paragraph">
|
<p>Diese Betriebsart entspricht der Anordnung gemäß folgendem Schaubild.</p>
|
</div>
|
<div class="imageblock">
|
<div class="content">
|
<img src="bilder/wbx-3.png" alt="WebBox">
|
</div>
|
<div class="title">Abb. 1. die WebBox mit vorhandenen Programmen</div>
|
</div>
|
<div class="sect4">
|
<h5 id="_programme_von_anderer_stelle_einbinden"><a class="anchor" href="#_programme_von_anderer_stelle_einbinden"></a>Programme von anderer Stelle einbinden</h5>
|
<div class="paragraph">
|
<p>Sollen Teile der für die WebBox erforderlichen Ablaufumgebung anders eingebunden sein, müssen die Pfade zu <a href="#wbx-eigenbau">Java, Tomcat und Derby</a> im Start- und Stoppskript, der Datei <code>$WBX-INST/wbx</code>, eingetragen werden wie im folgenden Beispiel.</p>
|
</div>
|
<div class="listingblock">
|
<div class="title">Beispiel für die Angabe individueller Ablageorte von Java, Tomcat und Derby</div>
|
<div class="content">
|
<pre class="highlightjs highlight"><code data-lang="Bash" class="language-Bash hljs">export JAVA_HOME=/home/fred/wbx-inst/java
|
export CATALINA_HOME=/home/fred/wbx-inst/tc
|
export DERBY_HOME=/home/fred/wbx-inst/db</code></pre>
|
</div>
|
</div>
|
</div>
|
</div>
|
<div class="sect3">
|
<h4 id="wbx-prg-buendeln"><a class="anchor" href="#wbx-prg-buendeln"></a>5.2.2. Programme bündeln</h4>
|
<div class="paragraph">
|
<p>Eine weitere Variante ist es, <a href="#wbx-eigenbau">Java, Tomcat und Derby</a> in den Ordner der WebBox zu kopieren und mit der WebBox zu bündeln. Die dafür vorgesehenen Ordner sind</p>
|
</div>
|
<div class="ulist">
|
<ul>
|
<li>
|
<p><code>$WBX-INST/.conf/prg/java</code></p>
|
</li>
|
<li>
|
<p><code>$WBX-INST/.conf/prg/tc-home</code> (nur <code>CATLAINA_HOME/bin</code> und <code>CATLAINA_HOME/lib</code>)</p>
|
</li>
|
<li>
|
<p><code>$WBX-INST/.conf/prg/derby</code> (nur <code>lib</code>)</p>
|
</li>
|
</ul>
|
</div>
|
<div class="paragraph">
|
<p>Werden Java, Tomcat und Derby in die obigen Ordner der WebBox kopiert, kann das Start- / Stoppskript der WebBox im Auslieferungszustand belassen werden, mit auskommentierten Pfadangaben wie in <a href="#wbx-vorinst">Vorhandene Programme verwenden</a>. Die Nutzung der WebBox kann dann mit allen Bestandteilen aus einem Ordner heraus erfolgen wie im folgenden Schaubild.</p>
|
</div>
|
<div class="imageblock">
|
<div class="content">
|
<img src="bilder/wbx-4.png" alt="WebBox">
|
</div>
|
<div class="title">Abb. 2. die WebBox mit gebündelten Programmen</div>
|
</div>
|
<div class="paragraph">
|
<p>In dieser Variante lässt sich die WebBox mit allen Bestandteilen und Daten einfach transportieren. Es muss stets nur der WebBox-Ordner kopiert werden.</p>
|
</div>
|
</div>
|
</div>
|
<div class="sect2">
|
<h3 id="wbx-daten-apps"><a class="anchor" href="#wbx-daten-apps"></a>5.3. Daten und Apps</h3>
|
<div class="paragraph">
|
<p>Die Ablageorte für Daten und Apps sind standardmäßig auf die Ordner <code>$WBX-INST/data</code> und <code>$WBX-INST/apps</code> festgelegt. Sie können auf einen beliebigen anderen Ort umgestellt werden, indem im Start- und Stoppskript, der Datei <code>$WBX-INST/wbx</code>, die Einträge der Umgebungsvariablen <code>WBX_DATA</code> und <code>WBX_APPS</code> entsprechend geändert werden.</p>
|
</div>
|
<div class="paragraph">
|
<p>Diese Angaben werden zudem als Java-Systemvariablen <code>wbx.data</code> und <code>wbx.apps</code> an <a href="#wbx-eigenbau">Tomcat</a> weitergereicht. Auf diese Weise können sie 'von außen' auch dem Java-Prozess von Tomcat und allen Webapps übermittelt werden. Ein auf der WebBox laufendes Java-Programm kann die Pfade zu den Daten und Apps der WebBox mit <code>System.getProperty("wbx.data")</code> und <code>System.getProperty("wbx.apps")</code> ermitteln.</p>
|
</div>
|
</div>
|
</div>
|
</div>
|
<div class="sect1">
|
<h2 id="wbx-tech-info"><a class="anchor" href="#wbx-tech-info"></a>6. Technische Infos</h2>
|
<div class="sectionbody">
|
<div class="paragraph">
|
<p>Die WebBox kombiniert die folgendenden Einzelkomponenten zu einer ausführbaren Einheit.</p>
|
</div>
|
<div class="ulist">
|
<ul>
|
<li>
|
<p>Java (Virtuelle Maschine und Ablaufumgebung)</p>
|
</li>
|
<li>
|
<p>Tomcat (Web- und Applikationsserver)</p>
|
</li>
|
<li>
|
<p>Derby (relationales Datenbanksystem)</p>
|
</li>
|
<li>
|
<p>WebBox Konfiguration</p>
|
<div class="ulist">
|
<ul>
|
<li>
|
<p>Nutzerverwaltung</p>
|
<div class="ulist none">
|
<ul class="none">
|
<li>
|
<p>Nutzerdatenbank</p>
|
</li>
|
</ul>
|
</div>
|
</li>
|
<li>
|
<p>Dateiverwaltung</p>
|
</li>
|
<li>
|
<p>Datenablage</p>
|
</li>
|
<li>
|
<p>Root App</p>
|
</li>
|
<li>
|
<p>WebBox Lib</p>
|
</li>
|
</ul>
|
</div>
|
</li>
|
</ul>
|
</div>
|
<div class="paragraph">
|
<p>Die Konfiguration dieser Komponenten ist nachfolgend beschrieben.</p>
|
</div>
|
<div class="sect2">
|
<h3 id="wbx-struktur"><a class="anchor" href="#wbx-struktur"></a>6.1. Ordnerstruktur</h3>
|
<div class="paragraph">
|
<p>Eine WebBox besitzt die folgende Struktur.</p>
|
</div>
|
<div class="listingblock">
|
<div class="content">
|
<pre>wbx ............... eine WebBox
|
|
apps ............ Webanwendungen der WebBox-Nutzer
|
ROOT .......... Startseite der WebBox
|
jslib ......... zentrale JavaScript-Bibliotheken
|
fonts ......... zentrale Schriftarten
|
um ............ Nutzerverwaltung
|
file-cms ...... Dateiverwaltung
|
|
data ............ WebBox Datenablage
|
db ............ relationale Datenbanken (von Derby verwaltet)
|
udb ......... WebBox Nutzer und Rollen
|
home .......... private Daten
|
www ........... oeffentliche Daten
|
logs .......... Logs
|
tc-work ....... Tomcat Cache
|
tc-temp ....... Temp-Verzeichnis für Webapps
|
|
.conf ........... interne Inhalte der WebBox
|
bin ........... WebBox-Skripte
|
prg ........... WebBox-Software
|
derby ....... Derby (optional)
|
java ........ Java (optional)
|
tc-home ..... Tomcat CATALINA_HOME (optional)
|
bin ....... Tomcat-Skripte
|
conf ...... leer/ungenutzt
|
lib ....... Tomcat-Bibliotheken
|
logs ...... leer/ungenutzt
|
temp ...... leer/ungenutzt
|
webapps ... leer/ungenutzt
|
work ...... leer/ungenutzt
|
tc-base ..... WebBox CATALINA_BASE
|
bin ....... nur tomcat-juli.jar
|
conf ...... Tomcat-Konfiguration für die WebBox
|
lib ....... Bibliotheken für die WebBox
|
logs ...... leer/ungenutzt
|
temp ...... leer/ungenutzt
|
webapps ... leer/ungenutzt
|
work ...... leer/ungenutzt</pre>
|
</div>
|
</div>
|
<div class="paragraph">
|
<p>Der Ordner <code>data</code> ist für veränderliche Daten des Nutzers vorgesehen, die Konfiguration ist in <a href="#wbx-ablage">Datenablage</a> näher erläutert.</p>
|
</div>
|
</div>
|
<div class="sect2">
|
<h3 id="wbx-java-konf"><a class="anchor" href="#wbx-java-konf"></a>6.2. Java</h3>
|
<div class="paragraph">
|
<p>An der Konfiguration von Java macht die WebBox keine Änderungen.</p>
|
</div>
|
</div>
|
<div class="sect2">
|
<h3 id="wbx-tc-konf"><a class="anchor" href="#wbx-tc-konf"></a>6.3. Tomcat</h3>
|
<div class="paragraph">
|
<p>Die Konfiguration von Tomcat wurde für die WebBox angepasst und befindet sich in <code>$WBX-INST/.conf/prg/tc-base</code>. Die folgenden Änderungen an der Standardkonfiguration von Tomcat wurden unternommen.</p>
|
</div>
|
<div id="wbx-port" class="dlist">
|
<dl>
|
<dt class="hdlist1">Port</dt>
|
<dd>
|
<p>Der Port der WebBox ist in der Datei <code>$WBX-INST/.conf/prg/tc-base/conf/server.xml</code> eingestellt. Dort ist im Element <code>Connector</code> das Attribut <code>port</code> standardmäßig auf <code>8089</code> gesetzt. An dieser Stelle kann ohne Auswirkung auf die Konfiguration der WebBox ein beliebiger anderer Port eingetragen werden.</p>
|
</dd>
|
<dt class="hdlist1">JarScanner</dt>
|
<dd>
|
<p>In <code>$WBX-INST/.conf/prg/tc-base/conf/context.xml</code> wurde der Eintrag <code><JarScanner scanManifest="false"/></code> hinzugefügt (Quelle: <a href="http://www.skybert.net/java/tomcat-fails-to-scan-jar-file-that-i-never-asked-for/" class="bare">http://www.skybert.net/java/tomcat-fails-to-scan-jar-file-that-i-never-asked-for/</a> ).</p>
|
</dd>
|
<dt class="hdlist1">Datenbanktreiber</dt>
|
<dd>
|
<p>Zur Verwendung von Derby Datenbanken über den ClientDriver müssen ab Derby 10.15 die folgenden JARs im Classpath sein: <code>derbyclient.jar</code>, <code>derbyshared.jar</code> und <code>derbytools.jar</code>. Diese sind in <code>$WBX-INST/.conf/prg/tc-base/lib</code> abgelegt.</p>
|
</dd>
|
<dt class="hdlist1">Ablageort der Log-Dateien</dt>
|
<dd>
|
<p>In der Datei <code>$WBX-INST/.conf/prg/tc-base/conf/logging.properties</code> wurden die Ablageorte für Log-Dateien auf das Verzeichnis <code>${wbx.data}/logs</code> umgestellt. In <code>$WBX-INST/.conf/prg/tc-base/conf/server.xml</code> wurde das Attribut <code>directory</code> für das <code>AccessLogValve</code> auf den Ordner <code>${wbx.data}/logs</code> umgestellt.</p>
|
</dd>
|
<dt class="hdlist1">Ablageort für Apps</dt>
|
<dd>
|
<p>In <code>$WBX-INST/.conf/prg/tc-base/conf/server.xml</code> wurde das Attribut <code>appBase</code> für den Host <code>localhost</code> auf <code>${wbx.apps}</code> umgestellt.</p>
|
</dd>
|
<dt class="hdlist1">Tomcat Work-Ordner</dt>
|
<dd>
|
<p>In <code>$WBX-INST/.conf/prg/tc-base/conf/server.xml</code> wurde im Element <code>Host</code> der Engine <code>Catalina</code> das Attribut <code>workDir</code> hinzugefügt. Es verweist auf <code>${wbx.data}/tc-work/Catalina</code>, damit nicht ins <code>CATALINA_BASE</code>-Verzeichnis geschrieben wird.</p>
|
</dd>
|
<dt class="hdlist1">Kontexte <code>data</code> und <code>home</code></dt>
|
<dd>
|
<p>In <code>$WBX-INST/.conf/prg/tc-base/conf/Catalina/localhost</code> wurden die Dateien <code>data.xml</code> und <code>home.xml</code> angelegt. Sie verweisen auf <code>${wbx.data}/www</code> sowie <code>${wbx.data}/home</code> und sorgen so dafür, dass Tomcat die Inhalte dieser beiden Datenverzeichnisse ausgibt. Deren Anlage beschreibt das Kapitel Dateiverwaltung. Ihre Konfiguration ist im Kapitel Datenablage beschrieben.</p>
|
</dd>
|
<dt class="hdlist1">Single Sign-On</dt>
|
<dd>
|
<p>In <code>$WBX-INST/.conf/prg/tc-base/conf/server.xml</code> wurde das SingleSignOn valve eingeschaltet. Eine Benutzeranmeldung wirkt über alle Webanwendungen der WebBox hinweg.</p>
|
</dd>
|
</dl>
|
</div>
|
<div class="sect3">
|
<h4 id="wbx-tc-klein"><a class="anchor" href="#wbx-tc-klein"></a>6.3.1. Tomcat verkleinern</h4>
|
<div class="paragraph">
|
<p>Das Installationspaket von Tomcat ist mehr als 16 MB groß. Für die WebBox ist nur der Inhalt in den Ordnern <code>bin</code> und <code>lib</code> erforderlich. Diese beiden Ordner allein erfordern nur 10 MB. Verzichtet man auch auf Java Server Pages (JSP), lässt sich Tomcat auf 4,8 MB verkleinern.</p>
|
</div>
|
<div class="paragraph">
|
<p>Beim Verzicht auf JSP können alle Klassenbibliotheken weggelassen werden ausser den folgenden:</p>
|
</div>
|
<div class="dlist">
|
<dl>
|
<dt class="hdlist1">Tomcat-Ordner <code>lib</code></dt>
|
<dd>
|
<p>annotations-api.jar, catalina.jar, catalina-ant.jar, jaspic-api.jar, serlet-api.jar, tomcat-api.jar, tomcat-coyote.jar, tomcat-dbcp.jar, tomcat-jdbc.jar, tomcat-jni.jar, tomcat-util-scan.jar</p>
|
</dd>
|
</dl>
|
</div>
|
<div class="sect4">
|
<h5 id="wbx-jsp-aus"><a class="anchor" href="#wbx-jsp-aus"></a>JSP ausschalten</h5>
|
<div class="paragraph">
|
<p>Wenn JSP weggelassen werden, müssen diese in der Datei <code>$WBX-INST/.conf/prg/tc-base/conf/web.xml</code> deaktiviert werden. Dazu wird das JSP-Servlet und das JSP-Servlet-Mapping auskommentiert, damit die fehlenden JSP-Bibliotheken nicht zu Abbrüchen beim Start des Servers führen.</p>
|
</div>
|
</div>
|
</div>
|
</div>
|
<div class="sect2">
|
<h3 id="wbx-derby-konf"><a class="anchor" href="#wbx-derby-konf"></a>6.4. Derby</h3>
|
<div class="paragraph">
|
<p>Mit dem Start der WebBox wird ein <a href="https://db.apache.org/derby/papers/DerbyTut/ns_intro.html">Derby Network Server</a> auf Port 1528 gestartet. Der Port kann im Startskript, der Datei <code>$WBX-INST/.conf/bin/dns</code>, in der Variablen <code>DERBY_PORT</code> geändert werden.</p>
|
</div>
|
<div class="paragraph">
|
<p>Ein geänderter Port für Derby muss auch allen Anwendungen bekannt gegeben werden, die eine Datenbank benutzen. Im Auslieferungszustand der WebBox betrifft das</p>
|
</div>
|
<div class="ulist">
|
<ul>
|
<li>
|
<p>Tomcat, Element <code>GlobalNamingResources</code> in der Datei <code>$WBX-INST/.conf/prg/tc-base/conf/server.xml</code></p>
|
</li>
|
<li>
|
<p>die Nutzerverwaltung, Datei <code>$WBX-INST/apps/um/META-INF/context.xml</code></p>
|
</li>
|
</ul>
|
</div>
|
<div class="paragraph">
|
<p>Die oben erwähnte Datei <code>context.xml</code> der Nutzerverwaltung ist ein Beispiel für das Einbinden einer Derby-Datenbank in andere Webanwendungen, die auf der WebBox laufen. Webanwendungen können mit <code>META-INF/context.xml</code> eine JDBC-Datenquelle deklarieren und müssen damit im Programmcode nur den Namen der Datenquelle laut Attribut <code>name</code> verwenden. Einzelheiten der Konfiguration werden so wirksam aus dem Programmcode ferngehalten.</p>
|
</div>
|
<div class="paragraph">
|
<p>Die Verwendung von Derby-Datenbanken in Java-Programmen ist beispielsweise in der <a href="https://uhilger.de/data/pg/baselink/anleitung.adoc">Dokumentation von BaseLink</a> beschrieben.</p>
|
</div>
|
</div>
|
<div class="sect2">
|
<h3 id="wbx-konf-um"><a class="anchor" href="#wbx-konf-um"></a>6.5. Nutzerverwaltung</h3>
|
<div class="paragraph">
|
<p>Die Nutzerverwaltung ist ein zentraler Bestandteil der WebBox, der Hand in Hand mit der Container Managed Security des Servlet Containers geht. Die WebBox ist in diesem Punkt konform mit der Java-Spezifikation: Webanwendungen auf der Grundlage der Java-Spezifikation können die Authentifizierung und Autorisierung der WebBox nahtlos einbinden.</p>
|
</div>
|
<div class="paragraph">
|
<p>Für die WebBox werden Benutzer und Rollen über eine mitgelieferte Webanwendung in einer relationalen Datenbank gespeichert und verwaltet. Die Konfiguration zur Verwendung der Nutzerdatenbank ist in der <a href="https://uhilger.de/data/pg/Nutzerverwaltung/anleitung.adoc#tc-realm">Anleitung</a> beschrieben und so wie dort beschrieben in der Konfiguration der WebBox im Ordner <code>.conf/prg/tc-base/conf</code> eingerichtet.</p>
|
</div>
|
<div class="paragraph">
|
<p>Die Kennworte von Benutzern werden in der Nutzerdatenbank der WebBox verschlüsselt gespeichert. Sie können bei Einblick in die Datenbank nicht im Klartext gelesen werden.</p>
|
</div>
|
</div>
|
<div class="sect2">
|
<h3 id="wbx-ablage"><a class="anchor" href="#wbx-ablage"></a>6.6. Datenablage</h3>
|
<div class="paragraph">
|
<p>In <code>$WBX-INST/data/home</code> liegen Daten, die die WebBox nur an den angemeldeten Benutzer ausgibt. Der Ordner <code>$WBX-INST/data/www</code> enthält öffentliche Daten, die von der WebBox als öffentliche Inhalte ohne Einschränkung ausgeliefert werden. Die Einstellungen hierfür sind in den in ihnen befindlichen Ordnern namens <code>WEB-INF</code> konfiguriert. Diese sind in der Dateiverwaltung der WebBox nicht sichtbar. Ihr Name oder Inhalt darf nicht verändert werden.</p>
|
</div>
|
<div class="paragraph">
|
<p>Die Datenablage kann allerdings so wie sie ist an einen beliebigen anderen Ort verschoben werden. Der neue Ablageort muss dann in der Konfiguration der WebBox vermerkt werden, wie in <a href="#wbx-daten-apps">Daten und Apps</a> beschrieben.</p>
|
</div>
|
</div>
|
<div class="sect2">
|
<h3 id="wbx-root-app"><a class="anchor" href="#wbx-root-app"></a>6.7. WebBox Startseite</h3>
|
<div class="paragraph">
|
<p>Die Startseite der WebBox befindet sich im Ordner <code>$WBX-INST/apps/ROOT</code>. Sie kann beliebig geändert werden.</p>
|
</div>
|
</div>
|
<div class="sect2">
|
<h3 id="wbx-konf-file-cms"><a class="anchor" href="#wbx-konf-file-cms"></a>6.8. Dateiverwaltung</h3>
|
<div class="paragraph">
|
<p>Die <a href="bedienung.adoc#wbx-file-cms">Dateiverwaltung</a> der WebBox ist eine Java-Webanwendung und befindet sich im Ordner <code>$WBX-INST/apps/file-cms</code>. Die Dateiverwaltung ist speziell für die Verwaltung der Inhalte der <a href="#wbx-ablage">WebBox-Datenablage</a> via Browser ausgelegt und vorkonfiguriert. Sie kann zudem prinzipiell mit beliebigen Datei-Systemen verwendet werden.</p>
|
</div>
|
<div class="paragraph">
|
<p>Ihr Quellcode und weitere Informationen sind im <a href="https://uhilger.de/gitblit/docs/file-cms.git">Code Repository</a> enthalten.</p>
|
</div>
|
</div>
|
<div class="sect2">
|
<h3 id="wbx-lib"><a class="anchor" href="#wbx-lib"></a>6.9. WebBox Lib</h3>
|
<div class="paragraph">
|
<p>Die Datei <code>wb-lib.jar</code> im Ordner <code>$WBX-INST/.conf/tc-base/lib</code> enthält Java-Klassen, die für die Ausgabe von Inhalten der <a href="#wbx-ablage">WebBox-Datenablage</a> wichtig sind. Weitere Informationen und ihr Quellcode ist im <a href="https://uhilger.de/gitblit/docs/wbx-lib.git">Code Repository</a> enthalten.</p>
|
</div>
|
</div>
|
<div class="sect2">
|
<h3 id="wbx-erweitern"><a class="anchor" href="#wbx-erweitern"></a>6.10. WebBox erweitern</h3>
|
<div class="paragraph">
|
<p>Die WebBox kann mit Webanwendungen erweitert werden, die der <a href="https://javaee.github.io/servlet-spec/downloads/servlet-3.1/Final/servlet-3_1-final.pdf#G14.999461">Java Servlet Spezifikation</a> folgen. Solche Webanwendungen werden gewöhnlich als Dateien mit Endung <code>.war</code> für <strong>w</strong>eb <strong>ar</strong>chive ausgeliefert. Eine <code>.war</code>-Datei wird einfach in den Ordner <code>$WBX-INST/apps</code> gelegt, um die Webanwendung mit der WebBox auszuführen. Wird beispielsweise die Datei <code>meine-app.war</code> so installiert, ist sie aufrufbar mit</p>
|
</div>
|
<div class="paragraph">
|
<p><code>http://localhost:8089/meine-app/</code></p>
|
</div>
|
<div class="paragraph">
|
<p>Erfordert die App eine Datenbank, wird gewöhnlich die Java Database Connectivity (JDBC) eingesetzt. Die App kann dann das Datenbanksystem der WebBox verwenden wie im Kapitel <a href="#wbx-derby-konf">Derby</a> beschrieben.</p>
|
</div>
|
<div class="sect3">
|
<h4 id="wbx-statischer-inhalt"><a class="anchor" href="#wbx-statischer-inhalt"></a>6.10.1. Statische Webseiten</h4>
|
<div class="paragraph">
|
<p>Auf ähnliche Weise können auch statische Inhalte wie HTML-Seiten, Bilder oder Javscript-Programme genutzt werden. Im einfachsten Fall wird ein neuer Ordner im Ordner <code>$WBX-INST/apps</code> erstellt und die betreffenden Inhalte dort hineingelegt. Wird zum Beispiel ein neuer Ordner <code>mein-webinhalt</code> mit einer Datei <code>index.html</code> darin in den Order <code>$WBX-INST/apps</code> gelegt, ist der Inhalt anschließend aufrufbar mit</p>
|
</div>
|
<div class="paragraph">
|
<p><code>http://localhost:8089/mein-webinhalt/</code></p>
|
</div>
|
<div class="paragraph">
|
<p>Auf dieselbe Weise funktionieren statische Inhalte, die in den Ordner <code>$WBX-INST/data/www</code> gelegt werden. Hier ist allerdings der Unterschied, dass sie dort auch mit der <a href="bedienung.adoc#wbx-file-cms">Dateiverwaltung</a> der WebBox verwendet werden können.</p>
|
</div>
|
</div>
|
</div>
|
</div>
|
</div>
|
<div class="sect1">
|
<h2 id="_dokumenthistorie"><a class="anchor" href="#_dokumenthistorie"></a>7. Dokumenthistorie</h2>
|
<div class="sectionbody">
|
<table class="tableblock frame-all grid-all stretch">
|
<caption class="title">Tabelle 1. Änderungen</caption>
|
<colgroup>
|
<col style="width: 11.1111%;">
|
<col style="width: 22.2222%;">
|
<col style="width: 22.2222%;">
|
<col style="width: 44.4445%;">
|
</colgroup>
|
<thead>
|
<tr>
|
<th class="tableblock halign-center valign-bottom">Nr</th>
|
<th class="tableblock halign-left valign-bottom">Datum</th>
|
<th class="tableblock halign-left valign-bottom">Autor</th>
|
<th class="tableblock halign-left valign-bottom">Beschreibung</th>
|
</tr>
|
</thead>
|
<tbody>
|
<tr>
|
<td class="tableblock halign-center valign-bottom"><p class="tableblock">1</p></td>
|
<td class="tableblock halign-left valign-bottom"><p class="tableblock">9. Mai 2020</p></td>
|
<td class="tableblock halign-left valign-bottom"><p class="tableblock">Ulrich</p></td>
|
<td class="tableblock halign-left valign-bottom"><p class="tableblock">Erste Anlage der Version 3 der WebBox</p></td>
|
</tr>
|
<tr>
|
<td class="tableblock halign-center valign-bottom"><p class="tableblock">2</p></td>
|
<td class="tableblock halign-left valign-bottom"><p class="tableblock">10. Januar 2021</p></td>
|
<td class="tableblock halign-left valign-bottom"><p class="tableblock">Ulrich</p></td>
|
<td class="tableblock halign-left valign-bottom"><p class="tableblock">Neue Dokumentation Version 3</p></td>
|
</tr>
|
<tr>
|
<td class="tableblock halign-center valign-bottom"><p class="tableblock">3</p></td>
|
<td class="tableblock halign-left valign-bottom"><p class="tableblock">16. Januar 2021</p></td>
|
<td class="tableblock halign-left valign-bottom"><p class="tableblock">Ulrich</p></td>
|
<td class="tableblock halign-left valign-bottom"><p class="tableblock">V3.1: Installation, Sicherung</p></td>
|
</tr>
|
<tr>
|
<td class="tableblock halign-center valign-bottom"><p class="tableblock">4</p></td>
|
<td class="tableblock halign-left valign-bottom"><p class="tableblock">22. Januar 2021</p></td>
|
<td class="tableblock halign-left valign-bottom"><p class="tableblock">Ulrich</p></td>
|
<td class="tableblock halign-left valign-bottom"><p class="tableblock">V3.1: Aufteilung der Dokumente</p></td>
|
</tr>
|
<tr>
|
<td class="tableblock halign-center valign-bottom"><p class="tableblock">5</p></td>
|
<td class="tableblock halign-left valign-bottom"><p class="tableblock">24. Januar 2021</p></td>
|
<td class="tableblock halign-left valign-bottom"><p class="tableblock">Ulrich</p></td>
|
<td class="tableblock halign-left valign-bottom"><p class="tableblock">V3.1: Verweise angepasst</p></td>
|
</tr>
|
</tbody>
|
</table>
|
</div>
|
</div>
|
</div>
|
<div id="footer">
|
<div id="footer-text">
|
Version 3.1<br>
|
Letzte Änderung 2021-01-24 13:47:49 +0100
|
</div>
|
</div>
|
<link rel="stylesheet" href="/jslib/highlight-adoc/styles/github.min.css">
|
<script src="/jslib/highlight-adoc/highlight.min.js"></script>
|
<script>hljs.initHighlighting()</script>
|
</body>
|
</html>
|