<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Linux Archive - dahlen.org</title>
	<atom:link href="https://www.dahlen.org/tag/linux/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.dahlen.org/tag/linux/</link>
	<description>Private Webseite der Familie Dahlen</description>
	<lastBuildDate>Mon, 27 Oct 2025 17:01:16 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>
	<item>
		<title>GMKtec NucBox G5 N97 Mini-PC</title>
		<link>https://www.dahlen.org/2025/08/31/gmktec-nucbox-g5-n97-mini-pc/</link>
					<comments>https://www.dahlen.org/2025/08/31/gmktec-nucbox-g5-n97-mini-pc/#respond</comments>
		
		<dc:creator><![CDATA[christoph]]></dc:creator>
		<pubDate>Sun, 31 Aug 2025 13:56:10 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Heimautomatisierung]]></category>
		<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Cluster]]></category>
		<category><![CDATA[Homelab]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mini-PC]]></category>
		<category><![CDATA[Proxmox]]></category>
		<category><![CDATA[Smart Home]]></category>
		<guid isPermaLink="false">https://www.dahlen.org/?p=3720</guid>

					<description><![CDATA[<p>Ich hab wieder einen Mini-PC gekauft. Diesmal den GMKtec NucBox G5 mit Intel Alder Lake N97 CPU. Nach nur einem Monat geht er zu eBay, ich erkläre warum das nicht am Gerät liegt. Szenario A: Cluster Compute Node Als richtiger IT-Nerd habe ich natürlich ein Homelab. Konkret werkeln zwei Rechner als Cluster auf Basis Proxmox [&#8230;]</p>
<p>Der Beitrag <a href="https://www.dahlen.org/2025/08/31/gmktec-nucbox-g5-n97-mini-pc/">GMKtec NucBox G5 N97 Mini-PC</a> erschien zuerst auf <a href="https://www.dahlen.org">dahlen.org</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Ich hab wieder einen Mini-PC gekauft. Diesmal den GMKtec NucBox G5 mit Intel Alder Lake N97 CPU. Nach nur einem Monat geht er zu eBay, ich erkläre warum das nicht am Gerät liegt.</p>



<span id="more-3720"></span>



<h2 class="wp-block-heading">Szenario A: Cluster Compute Node</h2>



<p class="wp-block-paragraph">Als richtiger IT-Nerd habe ich natürlich ein Homelab. Konkret werkeln zwei Rechner als Cluster auf Basis Proxmox VE. Dazu dient ein Raspberry Pi als „<a href="https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_corosync_external_vote_support" target="_blank" rel="noreferrer noopener">QDevice</a>“, um im Falle einer Wartung oder Störung festzustellen, welche Cluster-Knoten noch aktiv sind. Ein QDevice stellt aber keine Rechenkapazität zur Verfügung, darum sollte ein Mini-PC als 3. Knoten in den Cluster ziehen, Rechenleistung beisteuern und das QDevice obsolet machen.</p>



<p class="wp-block-paragraph">Der <a href="https://de.gmktec.com/products/gmktec-nucbox-g5-intel-alder-lake-n97-mini-pc" target="_blank" rel="noreferrer noopener">GMKtec NucBox G5 N97</a> wurde auf <a onMouseOut="al_link_out()" onMouseOver="al_gen_multi(1040441838, {de : 'A-B0DGPVF3G5'}, 'de', 'default');"  rel="nofollow" target="_blank" href="http://www.amazon.de/gp/product/B0DGPVF3G5?ie=UTF8&amp;linkCode=xm2&amp;camp=2025&amp;creative=6738&amp;tag=dahlenorg-21&amp;creativeASIN=B0DGPVF3G5&amp;SubscriptionId=">Amazon</a> für ca. 150€ angeboten. Mit <a href="https://www.intel.de/content/www/de/de/products/sku/233090/intel-processor-n97-6m-cache-up-to-3-60-ghz/specifications.html" target="_blank" rel="noreferrer noopener">Intel N97 CPU</a>, 12 GB RAM und 256 GB SSD ist er gegenüber den anderen Knoten bzgl. Speicher und Storage zwar unterlegen, aber die Intel N97 CPU ist den AMD Ryzen 3 3200G der anderen Knoten ebenbürtig. Und mit einem (einstellbaren) <em>Thermal Design Power</em> (TDP) von 8-15 Watt im Stromverbrauch deutlich unter den 65W TDP der AMD CPUs.</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="2000" height="2000" data-id="3727" src="https://www.dahlen.org/wp-content/uploads/2025/08/img_0881.jpg" alt="" class="wp-image-3727" srcset="https://www.dahlen.org/wp-content/uploads/2025/08/img_0881.jpg 2000w, https://www.dahlen.org/wp-content/uploads/2025/08/img_0881-300x300.jpg 300w, https://www.dahlen.org/wp-content/uploads/2025/08/img_0881-1024x1024.jpg 1024w, https://www.dahlen.org/wp-content/uploads/2025/08/img_0881-150x150.jpg 150w, https://www.dahlen.org/wp-content/uploads/2025/08/img_0881-768x768.jpg 768w, https://www.dahlen.org/wp-content/uploads/2025/08/img_0881-1536x1536.jpg 1536w" sizes="(max-width: 2000px) 100vw, 2000px" /><figcaption class="wp-element-caption">Vorderseite mit Power-Taste und USB</figcaption></figure>



<figure class="wp-block-image size-full"><img decoding="async" width="2000" height="2000" data-id="3729" src="https://www.dahlen.org/wp-content/uploads/2025/08/img_0882.jpg" alt="" class="wp-image-3729" srcset="https://www.dahlen.org/wp-content/uploads/2025/08/img_0882.jpg 2000w, https://www.dahlen.org/wp-content/uploads/2025/08/img_0882-300x300.jpg 300w, https://www.dahlen.org/wp-content/uploads/2025/08/img_0882-1024x1024.jpg 1024w, https://www.dahlen.org/wp-content/uploads/2025/08/img_0882-150x150.jpg 150w, https://www.dahlen.org/wp-content/uploads/2025/08/img_0882-768x768.jpg 768w, https://www.dahlen.org/wp-content/uploads/2025/08/img_0882-1536x1536.jpg 1536w" sizes="(max-width: 2000px) 100vw, 2000px" /><figcaption class="wp-element-caption">SD Slot und Kensington-Aufnahme</figcaption></figure>



<figure class="wp-block-image size-full"><img decoding="async" width="2000" height="2000" data-id="3731" src="https://www.dahlen.org/wp-content/uploads/2025/08/img_0883.jpg" alt="" class="wp-image-3731" srcset="https://www.dahlen.org/wp-content/uploads/2025/08/img_0883.jpg 2000w, https://www.dahlen.org/wp-content/uploads/2025/08/img_0883-300x300.jpg 300w, https://www.dahlen.org/wp-content/uploads/2025/08/img_0883-1024x1024.jpg 1024w, https://www.dahlen.org/wp-content/uploads/2025/08/img_0883-150x150.jpg 150w, https://www.dahlen.org/wp-content/uploads/2025/08/img_0883-768x768.jpg 768w, https://www.dahlen.org/wp-content/uploads/2025/08/img_0883-1536x1536.jpg 1536w" sizes="(max-width: 2000px) 100vw, 2000px" /><figcaption class="wp-element-caption">Rückseite mit USB-C-Stromanschluss, USB-A, Audio, 2x HDMI und GbE-LAN</figcaption></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="2000" height="2000" data-id="3730" src="https://www.dahlen.org/wp-content/uploads/2025/08/img_0884.jpg" alt="" class="wp-image-3730" srcset="https://www.dahlen.org/wp-content/uploads/2025/08/img_0884.jpg 2000w, https://www.dahlen.org/wp-content/uploads/2025/08/img_0884-300x300.jpg 300w, https://www.dahlen.org/wp-content/uploads/2025/08/img_0884-1024x1024.jpg 1024w, https://www.dahlen.org/wp-content/uploads/2025/08/img_0884-150x150.jpg 150w, https://www.dahlen.org/wp-content/uploads/2025/08/img_0884-768x768.jpg 768w, https://www.dahlen.org/wp-content/uploads/2025/08/img_0884-1536x1536.jpg 1536w" sizes="auto, (max-width: 2000px) 100vw, 2000px" /><figcaption class="wp-element-caption">Unterseite mit M.2 2242 SATA SSD und M.2 WLAN/BT Modul</figcaption></figure>
</figure>



<p class="wp-block-paragraph">Um es kurz zu machen: Die gestellte Aufgabe als „Compute-Knoten“ im Cluster hat der G5 einwandfrei erfüllt. Die Installation von <a href="https://proxmox.com/en/products/proxmox-virtual-environment/overview" target="_blank" rel="noreferrer noopener">Proxmox VE 9</a>, die Aufnahme in den Cluster und der Betrieb von virtuellen Maschinen liefen völlig reibungslos. Die Rahmendaten des G5 reichen für Services wie <a href="https://home-assistant.io/" target="_blank" rel="noreferrer noopener">Home Assistant</a> oder <a href="https://wordpress.org/" target="_blank" rel="noreferrer noopener">WordPress</a> (für diesen Blog) völlig aus.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="768" height="1024" src="https://www.dahlen.org/wp-content/uploads/2025/08/img_0887-768x1024.jpg" alt="" class="wp-image-3741" srcset="https://www.dahlen.org/wp-content/uploads/2025/08/img_0887-768x1024.jpg 768w, https://www.dahlen.org/wp-content/uploads/2025/08/img_0887-225x300.jpg 225w, https://www.dahlen.org/wp-content/uploads/2025/08/img_0887-1152x1536.jpg 1152w, https://www.dahlen.org/wp-content/uploads/2025/08/img_0887.jpg 1500w" sizes="auto, (max-width: 768px) 100vw, 768px" /><figcaption class="wp-element-caption">GMKtec NucBox G5 im Server-Schrank &#8211; auf verlorenem Posten</figcaption></figure>



<p class="wp-block-paragraph">Für <a href="https://nextcloud.com/de/" target="_blank" rel="noreferrer noopener">Nextcloud</a> oder <a href="https://www.photoprism.app/" target="_blank" rel="noreferrer noopener">Photoprism</a> ist die 256 GB SSD aber zu klein. Da aufgrund der winzigen Abmessungen des G5 auch nur <a href="https://www.thomas-krenn.com/de/wiki/M.2" target="_blank" rel="noreferrer noopener">2242 M.2 SSDs</a> möglich sind, wird es bei mehr Speicherbedarf schnell teuer. Außerdem gibt es nur einen M.2 M-Key Slot. Spiegelung von 2 SSD als RAID ist damit unmöglich.</p>



<h2 class="wp-block-heading">Szenario B: Office &amp; Internet-PC</h2>



<p class="wp-block-paragraph">Also habe ich den G5 für seinen eigentlichen Anwendungsfall vorbereitet: Als winziger, hinreichend dimensionierter und performanter Arbeitsplatz für Office und Internet. BIOS zurückgesetzt, Windows 11 re-installiert (Produktschlüssel ist im BIOS/UEFI hinterlegt) und ins WLAN aufgenommen.</p>



<p class="wp-block-paragraph">Das Ergebnis ersprach vollumfänglich den Erwartungen. Der G5 ist leise und erfüllt die Aufgaben eines Office PCs zuverlässig und unauffällig. Die N97 CPU kommt (in diesem Szenario) niemals an ihre Grenzen, 12 GB RAM (festverlötet) und 256 GB SSD Speicher sind absolut ausreichend. An einem 4K Monitor angeschlossen, konnte auch die interne Grafikeinheit mit YOUTube und anderen Quellen nicht ins Schwitzen gebracht werden. Spiele jedoch habe ich &#8211; da abseits des Szenarios &#8211; nicht getestet.</p>



<h2 class="wp-block-heading">Ergebnis: eBay</h2>



<p class="wp-block-paragraph">Warum geht der G5 letztendlich in den Wiederverkauf zu eBay und warum ist das nicht dem Gerät anzulasten? </p>



<p class="wp-block-paragraph">Nun &#8211; den G5 als Compute Node im Cluster einzusetzen ist zwar technisch abbildbar und der geringe Stromverbrauch von Vorteil, aber die Ressourcen des G5 und seine mangelnde Erweiterbarkeit reduzieren die Einsatzszenarien, gerade bei virtuellen Maschinen. Allerdings ist der G5 dafür auch nicht gemacht. Wie man auf dem Bild oben erkennt, wurde inzwischen ein vollwertiger, 3. Knoten zusammengestellt.</p>



<p class="wp-block-paragraph">Den Anspruch ein kleiner und diskreter Office PC zu sein, der auch bei großen Dokumenten, Multimedia-Wiedergabe und (vermutlich) einfachen Spielen nicht in die Knie geht, erfüllt der GMKtec NucBox G5 vollumfänglich. Allerdings habe ich dafür keinen Bedarf, dank hinreichend Arbeitsplatz-Rechnern im Zugriff. </p>



<p class="wp-block-paragraph">Es bleibt also Festzuhalten, der der GMKTec NucBox G5 gemäß seiner Spezifikation als Office PC sehr gut funktioniert. Leistung und Anschlußmöglichkeiten sind ausreichend, Strombedarf und Lautstärke moderat.</p>



<p class="wp-block-paragraph">Mein größter Kritikpunkt am G5 ist der USB-C-Port, der ausschließlich der Stromversorgung dient (über das mitgelieferte Netzteil). Besitzt man einen Monitor, der einen vollwertigen USB-C-Anschluß inkl. Power Delivery bereitstellt, bringt das beim G5 leider gar nichts. Es sind mindestens USB-C-Netzteil, USB-Hub bzw. -Tastatur/-Maus und HDMI-Kabel zu verbinden. </p>



<p class="wp-block-paragraph">Außerdem wissenswert: Die USB-Anschlüsse des GMKtec NucBox G5 liefern nur minimal Strom an angeschlossene Peripherie. Eine 2,5“ HDD im USB-Gehäuse kann noch bedient werden, eine 2. an einem anderen Port setze immer wieder aus. </p>
<p>Der Beitrag <a href="https://www.dahlen.org/2025/08/31/gmktec-nucbox-g5-n97-mini-pc/">GMKtec NucBox G5 N97 Mini-PC</a> erschien zuerst auf <a href="https://www.dahlen.org">dahlen.org</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dahlen.org/2025/08/31/gmktec-nucbox-g5-n97-mini-pc/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Linux Software RAID &#8211; Festplatte(n) tauschen</title>
		<link>https://www.dahlen.org/2022/11/30/linux-software-raid-festplatten-tauschen/</link>
					<comments>https://www.dahlen.org/2022/11/30/linux-software-raid-festplatten-tauschen/#respond</comments>
		
		<dc:creator><![CDATA[christoph]]></dc:creator>
		<pubDate>Wed, 30 Nov 2022 22:11:50 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Heimautomatisierung]]></category>
		<category><![CDATA[Hobby]]></category>
		<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[RAID]]></category>
		<category><![CDATA[Server]]></category>
		<guid isPermaLink="false">https://www.dahlen.org/?p=3497</guid>

					<description><![CDATA[<p>Corona hat mich erwischt, mit mäßigen Auswirkungen. Und die M2 SSD in meinem Server ist "geplatzt", mit deutlichen Auswirkungen. Und eine der beiden HDDs im RAID1 sagt ihren nahenden Tod via S.M.A.R.T.-Warnung voraus - zumindest das soll ohne Auswirkungen bleiben. </p>
<p>Der Beitrag <a href="https://www.dahlen.org/2022/11/30/linux-software-raid-festplatten-tauschen/">Linux Software RAID &#8211; Festplatte(n) tauschen</a> erschien zuerst auf <a href="https://www.dahlen.org">dahlen.org</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="wp-block-post-excerpt"><p class="wp-block-post-excerpt__excerpt">Corona hat mich erwischt, mit mäßigen Auswirkungen. Und die M2 SSD in meinem Server ist &#8222;geplatzt&#8220;, mit deutlichen Auswirkungen. Und eine der beiden HDDs im RAID1 sagt ihren nahenden Tod via S.M.A.R.T.-Warnung voraus &#8211; zumindest das soll ohne Auswirkungen bleiben. </p></div>


<span id="more-3497"></span>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph">Eine unwillkommene Gelegenheit also dem RAID 1 zu unverminderter Stabilität (und einer Verdoppelung der Kapazität) durch den Tausch beider Festplatten gegen neue zu verhelfen. Und da dies nicht das erste Mal ist und sicher auch nicht das letzte Mal sein wird, diesmal mit Mitschrift.</p>



<h2 class="wp-block-heading">Ausgangsituation</h2>



<p class="wp-block-paragraph">Mein Heim-Server verwendet (aktuell) <a rel="noreferrer noopener" href="https://ubuntu.com/download/server" target="_blank">Ubuntu 22.04 Server</a> als Betriebssystem. Die beiden 2,5&#8243; <a onMouseOut="al_link_out()" onMouseOver="al_gen_multi(796648250, {de : 'A-B01LXRWWB6'}, 'de', 'default');"  rel="nofollow" target="_blank" href="http://www.amazon.de/gp/product/B01LXRWWB6?ie=UTF8&amp;linkCode=xm2&amp;camp=2025&amp;creative=6738&amp;tag=dahlenorg-21&amp;creativeASIN=B01LXRWWB6&amp;SubscriptionId=">Seagate Barracuda</a> Festplatten sind als <kbd>/dev/sda</kbd> und <kbd>/dev/sdb</kbd> eingebunden. Sie wurden aus dem inzwischen verkauften <a href="https://www.dahlen.org/2020/03/06/asrock-deskmini-a300/">ASRock Desk Mini</a> in den neuen 19&#8243;-Server übernommen.</p>



<p class="wp-block-paragraph">Via Linux Software RAID wird ein RAID 1 <kbd>/dev/md0</kbd> über die beiden Platten realisiert. Das <a onMouseOut="al_link_out()" onMouseOver="al_gen_multi(1980198745, {de : 'A-B07THL4C87'}, 'de', 'default');"  rel="nofollow" target="_blank" href="http://www.amazon.de/gp/product/B07THL4C87?ie=UTF8&amp;linkCode=xm2&amp;camp=2025&amp;creative=6738&amp;tag=dahlenorg-21&amp;creativeASIN=B07THL4C87&amp;SubscriptionId=">ASUS A320I Mainboard</a> unterstützt <em>hot-plug</em>, d.h. die Platten können im laufenden Betrieb abgezogen oder angesteckt werden.</p>



<p class="wp-block-paragraph">Der Wechsel der Festplatten wird im laufenden Betrieb stattfinden. Ich beuge Datenverlusten durch regelmäßige, ausgelagerte und geprüfte Backups mit <a href="https://torsion.org/borgmatic/" target="_blank" rel="noreferrer noopener">Borgmatic</a> vor. </p>



<h3 class="wp-block-heading">Warnung</h3>



<p class="wp-block-paragraph">Die im folgenden beschriebenen Schritte sind auf meine Hard- und Software-Konstellation ausgerichtet und haben dort fehlerfrei funktioniert. Dennoch kann selbst bei korrekter Ausführung das Risiko des Datenverlusts niemals ganz ausgeschlossen werden.</p>



<p class="wp-block-paragraph"><strong>Das Nachvollziehen der hier beschriebenen Schritte geschieht auf eigene Gefahr!</strong> </p>



<h2 class="wp-block-heading">Festplatte aus RAID entfernen</h2>



<p class="wp-block-paragraph">Zunächst gilt es <strong>eine</strong> der beiden Festplatten zu entfernen (hier: <kbd>/dev/sda</kbd>). Da diese vom RAID aktuell verwendet wird, muss sie zunächst als fehlerhaft markiert werden (es sei denn, sie ist es bereits):</p>



<pre class="wp-block-code"><code lang="shell" class="language-shell">$ sudo mdadm --manage /dev/md0 --fail /dev/sda</code></pre>



<p class="wp-block-paragraph">Im nächsten Schritt wird die fehlerhafte bzw. als fehlerhaft markierte Festplatte aus dem RAID entfernt:</p>



<pre class="wp-block-code"><code lang="shell" class="language-shell">$ sudo mdadm --manage /dev/md0 --remove /dev/sda</code></pre>



<p class="wp-block-paragraph">Um das Entfernen der Platte vorzubereiten und die Identifizierung zu erleichtern, wird als nächstes die Platte in den Sleep-Modus geschickt. Bei SSDs ist dieser Schritt natürlich nicht notwendig:</p>



<pre class="wp-block-code"><code lang="shell" class="language-shell">$ sudo hdparm -Y /dev/sda</code></pre>



<p class="wp-block-paragraph">Und schließlich (aus reiner Vorsicht) melden wir die Platte noch im Kernel ab. Damit sollte das Entfernen nun sicher sein:</p>



<pre class="wp-block-code"><code lang="shell" class="language-shell">$ echo 1 | sudo tee /sys/block/sda/device/delete</code></pre>



<p class="wp-block-paragraph">Nun steht der physikalische Tausch der Platten an, den ich an dieser Stelle natürlich nicht im Detail beschreiben möchte. Ist die neue Platte eingebaut und wieder online, beginnt man mit der Anmeldung am RAID.</p>



<h2 class="wp-block-heading">Festplatte in RAID aufnehmen</h2>



<p class="wp-block-paragraph">Da die neue Platte (3,5&#8243; 4TB <a onMouseOut="al_link_out()" onMouseOver="al_gen_multi(63897577, {de : 'A-B08VH8C3WZ'}, 'de', 'default');"  rel="nofollow" target="_blank" href="http://www.amazon.de/gp/product/B08VH8C3WZ?ie=UTF8&amp;linkCode=xm2&amp;camp=2025&amp;creative=6738&amp;tag=dahlenorg-21&amp;creativeASIN=B08VH8C3WZ&amp;SubscriptionId=">WD RED Plus</a>) fabrikfrisch und ohne Initialisierung daherkam, musste zunächst eine Partitionstabelle angelegt werden, auch wenn die gesamte Platte ohne dedizierte Partitionen verwendet wird:</p>



<pre class="wp-block-code"><code lang="shell" class="language-shell">$ sudo cfdisk -z /dev/sda</code></pre>



<p class="wp-block-paragraph">Ist auch dies geschehen, kann die Platte &#8211; wie gesagt, als Ganzes &#8211; am RAID angemeldet werden:</p>



<pre class="wp-block-code"><code lang="shell" class="language-shell">$ sudo mdadm --manage /dev/md0 --add /dev/sda</code></pre>



<p class="wp-block-paragraph">Die Linux RAID-Software beginnt nun mit der Synchronisierung der 2. Platte, d.h. im Wesentlichen werden die Informationen der verbliebenen  &#8222;alten&#8220; Platte (<kbd>/dev/sdb</kbd>) auf die neue (<kbd>/dev/sda</kbd>) übertragen. </p>



<p class="wp-block-paragraph">Das nimmt einige Zeit in Anspruch und während dieser Zeit ist das RAID recht &#8222;empfindlich&#8220;, da bis zum Abschluß der Synchronisierung logisch nur eine Platte für das RAID zur Verfügung steht. Bei höheren RAID-Leveln (5,6) sieht das natürlich anders aus und bei RAID 0 ist mit dem Ausfall einer Platte eh &#8222;Schicht im Schacht&#8220;.</p>



<p class="wp-block-paragraph">Über den Fortschritt der Synchronisierung kann (und muß) man sich immer wieder informieren. Ein Tausch der verbliebenen, &#8222;alten&#8220; Platte <kbd>/dev/sdb</kbd> ist erst nach vollständiger Synchronisierung möglich und erfolgt dann analog zu den obigen Schritten.</p>



<p class="wp-block-paragraph">Der Möglichkeiten zur Analyse lauten:</p>



<pre class="wp-block-code"><code lang="shell" class="language-shell">$ sudo mdadm --detail /dev/md0</code></pre>



<p class="wp-block-paragraph">bzw.</p>



<pre class="wp-block-code"><code lang="shell" class="language-shell">$ cat /proc/mdstat</code></pre>



<p class="wp-block-paragraph">Die Ausgaben zum ersten Befehl ist umfangreich, aber eher  zusammenfassend, der relevante Wert befindet sich in &#8222;Rebuild Status&#8220;:</p>



<pre class="wp-block-code"><code lang="shell" class="language-shell">/dev/md0:
           Version : 1.2
     Creation Time : Fri Apr  1 17:19:01 2022
        Raid Level : raid1
        Array Size : 1953382464 (1862.89 GiB 2000.26 GB)
     Used Dev Size : 1953382464 (1862.89 GiB 2000.26 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent
     Intent Bitmap : Internal
       Update Time : Wed Nov 30 19:10:58 2022
             State : active, degraded, recovering
    Active Devices : 1
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 1
Consistency Policy : bitmap
    Rebuild Status : 32% complete
              Name : example:0  (local to host example)
              UUID : a3738222:357f6cb8:b4014413:62be2f37
            Events : 109210
    Number   Major   Minor   RaidDevice State
       2       8       16        0      active sync   /dev/sdb
       3       8        0        1      spare rebuilding   /dev/sda</code></pre>



<p class="wp-block-paragraph">Der zweite Befehl führt zu einer kürzeren, aber detaillierteren Anzeige. Die Ausgabe sollte der folgenden ähneln, natürlich mit unterschiedlichen (und bei mehrfachem Aufruf ansteigenden) Angaben zum Fortschritt:</p>



<pre class="wp-block-code"><code lang="shell" class="language-shell">Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdb[2] sda[1]
      1953382464 blocks super 1.2 [2/1] [U_]
      [&gt;....................]  recovery =  0.2% (5148736/1953382464) finish=398.8min speed=81402K/sec
      bitmap: 5/15 pages [20KB], 65536KB chunk
unused devices: &lt;none&gt;</code></pre>



<p class="wp-block-paragraph">Nun heißt es Geduld zu haben, bis das Recovery abgeschlossen ist und der Wechsel der verbleibenen Platte nach dem gleichen Muster vollzogen werden kann.</p>



<h3 class="wp-block-heading">RAID und Filesystem vergrößern</h3>



<p class="wp-block-paragraph">In meinem Falle wurden 2x2TB Platten gegen 2x4TB Platten getauscht. Entsprechend vergrößerte sich der für RAID1 zur Verfügung stehende Platz von 2TB auf 4TB. Dieses Mehr an Platz wird aber nicht automatisch genutzt. Fragt man den genutzten Speicher mittels <kbd>mdadm</kbd> ab, so werden nur 2TB berichtet.</p>



<pre class="wp-block-code"><code lang="shell" class="language-shell">$ sudo mdadm --detail /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Fri Apr  1 17:19:01 2022
        Raid Level : raid1
        Array Size : 1953382464 (1862.89 GiB 2000.26 GB)</code></pre>



<p class="wp-block-paragraph">Der folgende Befehl dehnt das RAID nun auf den gesamten, zur Verfügung stehenden Platz aus:</p>



<pre class="wp-block-code"><code lang="shell" class="language-shell">$ sudo mdadm --grow /dev/md0 --size max</code></pre>



<p class="wp-block-paragraph">Ein erneuter Aufruf von <kbd>mdadm</kbd> bestätigt die neue Größe:</p>



<pre class="wp-block-code"><code lang="shell" class="language-shell">$ sudo mdadm --detail /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Fri Apr  1 17:19:01 2022
        Raid Level : raid1
        Array Size : 3906886488 (3.64 TiB 4.00 TB)
[...]</code></pre>



<p class="wp-block-paragraph">Nur &#8211; so wie das RAID nicht unmittelbar den gesamten, verfügbaren Platz auf den Datenträgern verwendet hat, so nutzt auch das Filesystem auf dem RAID nicht ohne weiteren Eingriff den verfügbaren Platz, wie mittels df festgestellt werden kann:</p>



<pre class="wp-block-code"><code lang="shell" class="language-shell">$ df -h /srv
Filesystem      Size  Used Avail Use% Mounted on
/dev/md0        1.8T  271G  1.5T  16% /srv</code></pre>



<p class="wp-block-paragraph">Aber auch das lässt sich beheben, mit dem entsprechenden Werkzeug des Filesystems. Da ich ext4 verwende, ist <kbd>resize2fs</kbd> das Mittel der Wahl:</p>



<pre class="wp-block-code"><code lang="shell" class="language-shell">$ sudo resize2fs /dev/md0
resize2fs 1.46.5 (30-Dec-2021)
Filesystem at /dev/md0 is mounted on /srv; on-line resizing required
old_desc_blocks = 233, new_desc_blocks = 466
The filesystem on /dev/md0 is now 976721622 (4k) blocks long.</code></pre>



<p class="wp-block-paragraph">Nochmal das Ergebnis mit <kbd>df</kbd> prüfen und fertig:</p>



<pre class="wp-block-code"><code lang="shell" class="language-shell">$ df -h /srv
Filesystem      Size  Used Avail Use% Mounted on
/dev/md0        3.6T  271G  3.2T   8% /srv</code></pre>



<h2 class="wp-block-heading">Postskriptum</h2>



<p class="wp-block-paragraph">Im Nachhinein hat sich herausgestellt, dass der nahende Tod der installierten 2,5&#8243; 2TB <a onMouseOut="al_link_out()" onMouseOver="al_gen_multi(536128066, {de : 'A-B01LXRWWB6'}, 'de', 'default');"  rel="nofollow" target="_blank" href="http://www.amazon.de/gp/product/B01LXRWWB6?ie=UTF8&amp;linkCode=xm2&amp;camp=2025&amp;creative=6738&amp;tag=dahlenorg-21&amp;creativeASIN=B01LXRWWB6&amp;SubscriptionId=">Seagate Barracuda</a>-Platten ein Fehlalarm war, verursacht durch die tatsächlich endgültig zerstörte WD Green. Auf letzterer war leider das Betriebssystem installiert (non-raid). Fairerweise sei darauf hingewiesen, dass die WD Green Serie ausdrücklich nicht auf Dauerbetrieb ausgelegt ist. Grundsätzlich setze ich gerne auf Western Digitial und so wird als Ersatz in Kürze eine <a onMouseOut="al_link_out()" onMouseOver="al_gen_multi(1509713590, {de : 'A-B07YFG1N7Q'}, 'de', 'default');"  rel="nofollow" target="_blank" href="http://www.amazon.de/gp/product/B07YFG1N7Q?ie=UTF8&amp;linkCode=xm2&amp;camp=2025&amp;creative=6738&amp;tag=dahlenorg-21&amp;creativeASIN=B07YFG1N7Q&amp;SubscriptionId=">WD Red SA500</a> eingebaut. </p>



<p class="wp-block-paragraph">Nach dem Ersetzen der SSD, dem Neuaufsetzen des OS und dem Einspielen des Backups waren auch die <a href="https://de.wikipedia.org/wiki/Self-Monitoring,_Analysis_and_Reporting_Technology" target="_blank" rel="noreferrer noopener">S.M.A.R.T.</a>-Werte der &#8222;alten&#8220; Platten wieder einwandfrei. Aber die Neuen waren halt schon geliefert, was will man machen &#8230;</p>
<p>Der Beitrag <a href="https://www.dahlen.org/2022/11/30/linux-software-raid-festplatten-tauschen/">Linux Software RAID &#8211; Festplatte(n) tauschen</a> erschien zuerst auf <a href="https://www.dahlen.org">dahlen.org</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dahlen.org/2022/11/30/linux-software-raid-festplatten-tauschen/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Neue Hardware für den Zigbee-Hub und Home Assistant</title>
		<link>https://www.dahlen.org/2022/11/06/neue-hardware-fuer-den-home-assistant-und-zigbee-hub/</link>
					<comments>https://www.dahlen.org/2022/11/06/neue-hardware-fuer-den-home-assistant-und-zigbee-hub/#respond</comments>
		
		<dc:creator><![CDATA[christoph]]></dc:creator>
		<pubDate>Sun, 06 Nov 2022 11:23:46 +0000</pubDate>
				<category><![CDATA[Heimautomatisierung]]></category>
		<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Sevelen]]></category>
		<category><![CDATA[Home Assistant]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Zigbee]]></category>
		<guid isPermaLink="false">https://www.dahlen.org/?p=3403</guid>

					<description><![CDATA[<p>Vor fast 2 Jahren habe ich mich erstmals bewusst mit der Zigbee-Technologie und ihrer Integration in Home Assistant (HA) beschäftigt. Die seinerzeit gewählte Hardware und Software haben weitestgehend einwandfrei ihren Dienst verrichtet. Doch wiederkehrende Probleme wecken den Wunsch nach Veränderung, Probleme, die mit neuer Hardware und alter Software adressiert werden sollen &#8230; Dabei bleibt der [&#8230;]</p>
<p>Der Beitrag <a href="https://www.dahlen.org/2022/11/06/neue-hardware-fuer-den-home-assistant-und-zigbee-hub/">Neue Hardware für den Zigbee-Hub und Home Assistant</a> erschien zuerst auf <a href="https://www.dahlen.org">dahlen.org</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Vor <a href="https://www.dahlen.org/2020/12/26/zigbee-hub-mit-raspberry-pi-und-raspbee-ii/">fast 2 Jahren</a> habe ich mich erstmals bewusst mit der Zigbee-Technologie und ihrer Integration in Home Assistant (HA) beschäftigt. Die seinerzeit gewählte Hardware und Software haben weitestgehend einwandfrei ihren Dienst verrichtet. Doch wiederkehrende Probleme wecken den Wunsch nach Veränderung, Probleme, die mit neuer Hardware und alter Software adressiert werden sollen &#8230; </p>



<span id="more-3403"></span>



<p class="wp-block-paragraph">Dabei bleibt der Anwendungsfall unverändert: Die Auswertung und Steuerung von ca. 50 Zigbee-Geräten im Außenbereich der <a href="https://www.dahlen.org/projekte/muehle/">Dahlen-Mühle</a>. Leuchtmittel, Sensoren und Steckdosen auf einer Fläche von über 10.000m², ohne direkten Zugang zum Internet und teilweise abseits einer dauerhaften Stromversorgung.</p>



<h2 class="wp-block-heading">Hardware aktuell</h2>



<p class="wp-block-paragraph">Seinerzeit habe ich einen Raspberry Pi 4 und das <a href="https://amzn.to/3rRIMbr" target="_blank" rel="noreferrer noopener sponsored nofollow">Phoscon Raspbee II</a>-Modul als Hardware-Plattform gewählt. Ziel war ein kompakter, unauffälliger Aufbau mit geringem Stromverbrauch. Dieses Ziel wurde erreicht, doch der Betrieb ist nicht frei von Problemen:</p>



<ul class="wp-block-list">
<li>die SD-Karte im Raspberry Pi 4 macht schlapp, obwohl es sich um eine <a href="https://amzn.to/3rRIkdf" target="_blank" rel="noreferrer noopener sponsored nofollow">Endurance</a>-Version von Samsung handelt. Gleichzeitig ist es mir nicht auf Anhieb gelungen, den Raspberry von USB-Stick der -Disk zu booten (wie z.B. beim <a href="https://www.dahlen.org/2018/03/18/raspberry-pi-3-modell-b-fuer-usb-boot-vorbereiten/">Raspberry Pi 3</a>)</li>



<li>die <a href="https://amzn.to/3rRIMbr" target="_blank" rel="noreferrer noopener sponsored nofollow">Raspbee II</a>-Karte werkelt unsichtbar vor sich hin, aber (ich fürchte) ihre Bauform hat negativen Einfluss auf die Reichweite. Gleichzeitig <a href="https://github.com/dresden-elektronik/deconz-rest-plugin/issues/3485" target="_blank" rel="noreferrer noopener">fehlen</a> ihr moderne Funktionen wie Touchlink</li>



<li>trotz guter technischer Werte kommt der Raspberry Pi 4 doch an seine Grenzen. Im &#8222;Wirkbetrieb&#8220; fällt das wenig auf, aber bei der (remote) Administration kommt es immer wieder zu Wartezeiten</li>
</ul>



<p class="wp-block-paragraph">Besonders der letzte Punkt treibt einem die Schweißperlen auf Stirn, wenn man nach einem Reboot aus der Ferne nicht weiß, ob die Kiste einfach noch ein paar Minuten braucht oder man den Weg ins 25km entfernte Elternhaus antreten darf.</p>



<h2 class="wp-block-heading">Neue Hardware</h2>



<p class="wp-block-paragraph">Die neue Hardware soll entsprechend die identifizierten Ursachen beseitigen und gleichzeitig den unveränderten Anspruch eines unauffälligen 24/7-Betriebs bei geringem Stromverbrauch erfüllen. </p>



<p class="wp-block-paragraph">Konkret bedeutet dies:</p>



<ul class="wp-block-list">
<li>sparsame x86-Hardware mit angemessener Leistung</li>



<li>kompakt (was zu Lasten der Flexibilität gehen darf)</li>



<li>keine beweglichen Teile, wie Lüfter oder mechanische Festplatten</li>



<li>einwandfreie Unterstützung durch (Ubuntu) Linux</li>



<li>moderne Zigbee Coordinator-Hardware mit hoher Reichweite</li>
</ul>



<h3 class="wp-block-heading">Minisforum N40 Mini-PC</h3>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="1024" src="https://www.dahlen.org/wp-content/uploads/2022/10/apc_0083-1024x1024.jpg" alt="Minisforum N40" class="wp-image-3401" srcset="https://www.dahlen.org/wp-content/uploads/2022/10/apc_0083-1024x1024.jpg 1024w, https://www.dahlen.org/wp-content/uploads/2022/10/apc_0083-300x300.jpg 300w, https://www.dahlen.org/wp-content/uploads/2022/10/apc_0083-150x150.jpg 150w, https://www.dahlen.org/wp-content/uploads/2022/10/apc_0083-768x768.jpg 768w, https://www.dahlen.org/wp-content/uploads/2022/10/apc_0083-1536x1536.jpg 1536w, https://www.dahlen.org/wp-content/uploads/2022/10/apc_0083-2048x2048.jpg 2048w, https://www.dahlen.org/wp-content/uploads/2022/10/apc_0083-1200x1200.jpg 1200w, https://www.dahlen.org/wp-content/uploads/2022/10/apc_0083-1980x1980.jpg 1980w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Minisforum N40</figcaption></figure>



<p class="wp-block-paragraph">Der <a href="https://amzn.to/40ippdD" target="_blank" rel="noreferrer noopener sponsored nofollow">Minisforum N40</a> (<a href="https://store.minisforum.de/products/elitemini-n40">Datenblatt</a>) Mini-PC erfüllt die gestellten Kriterien und ist für den angedachten Anwendungsfall mehr als ausreichend:</p>



<ul class="wp-block-list">
<li><a href="https://www.intel.de/content/www/de/de/products/sku/197310/intel-celeron-processor-n4020-4m-cache-up-to-2-80-ghz/specifications.html" target="_blank" rel="noreferrer noopener">Intel Celeron N4020 CPU</a> (2 Kerne, bis zu 2,8 GHz)</li>



<li>4 GB RAM (DDR4, nicht erweiterbar)</li>



<li>64 GB &#8222;eMMC&#8220; SSD</li>



<li>3 USB-A 3.0-Anschlüsse</li>



<li>RJ45 GbE LAN und IEEE 802.11ac Dual-Band Wi-Fi </li>
</ul>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">Bei Bedarf kann eine zusätzliche SSD (M.2 2242 SATA 3.0) verbaut werden. Ich habe aber darauf verzichtet, weil nach der Installation und Konfiguration nur 8,5 GB der verfügbaren 56 GB der eMMC belegt waren.</p>



<p class="wp-block-paragraph">Das Netzteil (DC 12V, 1,5A) liefert bis zu 18 Watt, der tatsächliche Verbrauch des N40 in meiner Konstellation liegt zwischen 3 und 5 Watt. Die CPU ist mit Grafikeinheit, für den Anschluss an Fernseher / Monitor (während der Installation) steht ein Standard-HDMI Port zur Verfügung.</p>



<p class="wp-block-paragraph">Die Kantenlänge des N40 entspricht übrigens ziemlich genau dem Durchmesser einer Audio CD (wer es noch kennt). Die CPU wird passiv gekühlt, das gesamte System gibt keinerlei Geräusche von sich und wird nicht warm.</p>



<h4 class="wp-block-heading">SONOFF ZBDongle-P</h4>



<p class="wp-block-paragraph">Bei der Wahl der neuen Coordinator-Hardware fiel die Wahl auf das <a href="https://amzn.to/3SRiiCR" target="_blank" rel="noreferrer noopener sponsored nofollow">SONOFF Zigbee 3.0 USB Dongle Plus</a> (kurz: <em>ZBDongle-P</em>), welches auf der Adapter-Seite von <a href="https://www.zigbee2mqtt.io/" target="_blank" rel="noreferrer noopener">Zigbee2MQTT</a> als &#8222;<a href="https://www.zigbee2mqtt.io/guide/adapters/#recommended" target="_blank" rel="noreferrer noopener">recommended</a>&#8220; aufgeführt wird und über einen modernen Texas Instruments CC2652P Chip mit zusätzlichem Verstärker verfügt.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="1024" src="https://www.dahlen.org/wp-content/uploads/2022/10/apc_0084-1024x1024.jpg" alt="SONOFF Zigbee 3.0 USB Dongle Plus" class="wp-image-3402" srcset="https://www.dahlen.org/wp-content/uploads/2022/10/apc_0084-1024x1024.jpg 1024w, https://www.dahlen.org/wp-content/uploads/2022/10/apc_0084-300x300.jpg 300w, https://www.dahlen.org/wp-content/uploads/2022/10/apc_0084-150x150.jpg 150w, https://www.dahlen.org/wp-content/uploads/2022/10/apc_0084-768x768.jpg 768w, https://www.dahlen.org/wp-content/uploads/2022/10/apc_0084-1536x1536.jpg 1536w, https://www.dahlen.org/wp-content/uploads/2022/10/apc_0084-2048x2048.jpg 2048w, https://www.dahlen.org/wp-content/uploads/2022/10/apc_0084-1200x1200.jpg 1200w, https://www.dahlen.org/wp-content/uploads/2022/10/apc_0084-1980x1980.jpg 1980w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">SONOFF Zigbee 3.0 USB Dongle Plus</figcaption></figure>



<p class="wp-block-paragraph">Direkt eingesteckt steht das Dongle deutlich über den N40 hinaus. Allerdings wird bei USB 3.0 und Zigbee wg. möglicher <a href="https://www.unit3compliance.co.uk/2-4ghz-intra-system-or-self-platform-interference-demonstration/" target="_blank" rel="noreferrer noopener">Interferenzen</a> der Einsatz einer USB-Verlängerung empfohlen, was eine relativ freie Platzierung des Dongles erlaubt. Genau wie der Minisforum N40 wird das Dongle auch bei max. Verstärkung von 20dBm nicht warm.</p>



<p class="wp-block-paragraph">Der Einsatz des Dongles mit Zigbee2MQTT ist problemlos und es liefert &#8222;vernünftige&#8220; LQI-Werte. Beim Raspbee II steigen diese mit der Zeit von 0 bis 255 und starten dann wieder erneut. Die Aussagekraft des <em><a href="https://de.wikipedia.org/wiki/Link_Quality_Indicator" target="_blank" rel="noreferrer noopener">Link Quality Indicators</a></em> ist zwar begrenzt, aber stabile Werte sind dennoch von Vorteil.</p>



<p class="wp-block-paragraph"></p>



<h2 class="wp-block-heading">Software: Home Assistant</h2>



<p class="wp-block-paragraph">Unverändert soll <a href="https://home-assistant.io" target="_blank" rel="noreferrer noopener">Home Assistant</a> in der &#8222;<a href="https://www.home-assistant.io/installation/linux#install-home-assistant-container" target="_blank" rel="noreferrer noopener">Container</a>&#8222;-Edition zum Einsatz kommen, in Verbindung mit <a href="https://www.zigbee2mqtt.io/" target="_blank" rel="noreferrer noopener">Zigbee2MQTT</a>. Jedoch werden die bestehende Installation und Konfiguration verworfen und neu aufgebaut. Nach diversen Iterationen des technisch &#8222;Machbaren&#8220; gebe ich dem Wunsch meiner Eltern nach und reduziere auf &#8222;das Nötigste&#8220;: Licht an bei Bewegung in der Dunkelheit. </p>



<p class="wp-block-paragraph">Auf dem Gelände sind mehrere, batteriebetriebene Bewegungssensoren von <a href="https://amzn.to/3hhdJ73" target="_blank" rel="noreferrer noopener sponsored nofollow">Philips Hue</a> verteilt. Diese werden via Automatiken in Home Assistant mit einen oder mehreren Gruppen von Leuchten verbunden und agieren entsprechend &#8211; aber nur wenn es draußen dunkel ist.</p>



<p class="wp-block-paragraph">Die &#8222;<a href="https://www.home-assistant.io/integrations/sun/" target="_blank" rel="noreferrer noopener">Sun</a>&#8222;-Integration von HA wird verwendet, um über Dunkelheit zu entscheiden: Sie beginnt 15min nach Sonnenuntergang und endet 30min vor Sonnenaufgang. Alternativ kann die tatsächliche Helligkeit als Indikator dienen, denn die Hue Sensoren liefern ensprechene Angaben. Damit wären dunkle Phasen tagsüber abgedeckt (z.B. bei schlechtem Wetter).</p>



<p class="wp-block-paragraph">Für meine Belange habe ich ein Repository auf Github angelegt, welches aber ausreichend generisch ist und auch für andere Einsteiger hilfreich sein könnte. Quelle und Instruktionen finden sich unter <a href="https://github.com/m0wlheld/homeassistant-zigbee2mqtt/" target="_blank" rel="noreferrer noopener">https://github.com/m0wlheld/homeassistant-zigbee2mqtt/</a>.</p>



<p class="wp-block-paragraph">Leider bedeutet ein Wechsel der Zigbee-Controller-Plattform (von Raspbee II auf den TI CC2652P des Sonoff Dongle) immer auch eine erneute Einbindung (<em>Pairing</em>) der Zigbee-Geräte. Ein Wochenende mit Leiter, Schraubendreher und Wäschekörben voller smarter LEDs ist also garantiert &#8230;</p>
<p>Der Beitrag <a href="https://www.dahlen.org/2022/11/06/neue-hardware-fuer-den-home-assistant-und-zigbee-hub/">Neue Hardware für den Zigbee-Hub und Home Assistant</a> erschien zuerst auf <a href="https://www.dahlen.org">dahlen.org</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dahlen.org/2022/11/06/neue-hardware-fuer-den-home-assistant-und-zigbee-hub/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ASRock DeskMini A300</title>
		<link>https://www.dahlen.org/2020/03/06/asrock-deskmini-a300/</link>
					<comments>https://www.dahlen.org/2020/03/06/asrock-deskmini-a300/#comments</comments>
		
		<dc:creator><![CDATA[christoph]]></dc:creator>
		<pubDate>Fri, 06 Mar 2020 17:00:00 +0000</pubDate>
				<category><![CDATA[Hobby]]></category>
		<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Netzwerke]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<guid isPermaLink="false">https://www.dahlen.org/?p=2980</guid>

					<description><![CDATA[<p>Mein HP ProLiant N54L ist in die Jahre gekommen. CPU und Speicher stossen an ihre Grenzen. Der ASRock DeskMini A300 tritt an, diese Grenzen zu überwinden.</p>
<p>Der Beitrag <a href="https://www.dahlen.org/2020/03/06/asrock-deskmini-a300/">ASRock DeskMini A300</a> erschien zuerst auf <a href="https://www.dahlen.org">dahlen.org</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Seit einigen Jahren dient ein HP ProLiant N54L Microserver mir als &#8222;Heimserver&#8220;. Ein grundsolides Gerät, leise, wartungsarm, stabil. Die AMD Turion II CPU ist allerdings festverlötet und stößt mit ihren 2,2 GHz an ihre Grenzen, ebenso wie die max. 8 GB RAM. Zeit für etwas Neues, stärker, größer &#8211; und kleiner: Der ASRock DeskMini A300.</p>



<span id="more-2980"></span>



<h2 class="wp-block-heading">Der &#8222;Alte&#8220;</h2>



<p class="wp-block-paragraph">Der N54L Generation 7 (G7) ist ein Microserver auf Basis der AMD Turion II Neo Dual-Core CPU. Sie ist auf einem HP Custom Mainboard verlötet und bietet 2x 2,2&nbsp;GHz. Ihr zur Seite stehen aktuell 8&nbsp;GB RAM und 4x 2&nbsp;TB HDDs (WD Red) im RAID 5 Verbund.</p>



<p class="wp-block-paragraph">Auf diesem Server laufen Dienste, welche in unserem Haus durch mich und andere Familienmitglieder genutzt werden. Zunächst natürlich <a href="#software">Homegear</a> und <a href="#software">Home Assistant</a> zur Heimautomatisierung. Aber auch Datenbanken und Datei-Freigaben für die Windows-Geräte im Haus. Und eben auch mehrere <a href="#software">Minecraft</a> Server &#8211; zur Unterhaltung. </p>



<p class="wp-block-paragraph">All das bringt die CPU immer deutlicher an ihre Grenzen, es kommt zu Mikrorucklern (&#8222;Lags&#8220;) in Minecraft und zwischen auslösendem Ereignis und Reaktion des Smart Home können schonmal Sekunden vergehen. Man liegt also bereits im Dunkeln, wenn die Beleuchtung endlich angeht.</p>



<h2 class="wp-block-heading">Der &#8222;Neue&#8220;</h2>



<p class="wp-block-paragraph">Zeit also für etwas Neues, was größer (= leistungsstärker)  und gleichzeitig kleiner (= raumsparender) ist. Von den insgesamt 5,6 TB  Plattenplatz waren nämlich dauerhaft nie mehr als 600 GB belegt. </p>



<p class="wp-block-paragraph">Es war schnell klar, dass ein Eigenbau zum Einsatz kommen sollte. Möglichst klein, doch mit ausreichend aktueller Hardware und Platz für mindestens 2 Festplatten. Intel NUC oder Gigabyte BRIX Systeme kamen daher nicht infrage. Außerdem sollte wieder <a href="#software">Ubuntu</a> Linux zu Einsatz kommen. Damit schieden NAS-Systeme von Synology oder QNAP aus.</p>



<p class="wp-block-paragraph">Nach einiger Recherche stieß ich auf System, das für meine Anforderung wie gemacht schien: Den <a href="#produkte">ASRock DeskMini A300</a> Barebone.</p>



<figure class="wp-block-image size-large"><a href="https://www.dahlen.org/wp-content/uploads/2020/03/img_4384-scaled-1.jpg"><img decoding="async" src="https://www.dahlen.org/wp-content/uploads/2020/03/img_4384-1920x1174.jpg" alt="Größenvergleich, Zauberwürfel, A300, N54L" class="wp-image-3019"/></a><figcaption>ASRock A300 und HP N54L im Größenvergleich</figcaption></figure>



<h3 class="wp-block-heading">ASRock DeskMini A300</h3>



<p class="wp-block-paragraph">Der <a href="#produkte">DeskMini A300</a> ist ein Barebone im Mini-STX Format. Die Abmessungen des Gehäuses betragen 155x155x80 mm. Auf dem Mainboard befindet sich ein AM4 Sockel mit A300 Chipsatz für moderne AMD CPUs der Picasso, Raven Ridge oder Bristol Ridge Familie.</p>



<p class="wp-block-paragraph">Somit sind viele aktuelle AMD Athlon und Ryzen CPUs nutzbar, solange die TWP nicht 65 W übersteigt. Außerdem muss eine CPU mit integrierter Grafik (<em>APU</em> bzw. <em>iGPU</em>) zum Einsatz kommen. Das Bild-Signal kann via HDMI, Display Port oder D-SUB/VGA abgegriffen werden.</p>



<p class="wp-block-paragraph">Verfügbar sind weiterhin M.2 Slots (Type 2280), SATA 6GB/s, Gigabit-LAN und USB 3.1 vorhanden. Der maximale Speicherausbau beträgt 64 GB und im Gehäuse haben 2 2,5&#8243; HDDs bis max. 9mm Dicke Platz.</p>



<h3 class="wp-block-heading">AMD Athlon 200GE</h3>



<p class="wp-block-paragraph">Die <a href="#produkte">AMD Athlon 200GE</a> APU ist eine Low-Cost CPU aus der Raven Ridge Familie mit 2 Kernen in Zen-Architektur. Sie bietet 4 logische CPUs und taktet mit bis zu 3,2 GHz. </p>



<p class="wp-block-paragraph">Neben der CPU ist noch eine Vega 3 Grafikeinheit verbaut, so dass auf eine dedizierte Lösung verzichtet werden kann. Mit 35 W TWP passt sie locker in die Spezifikation des <a href="#produkte">DeskMini A300</a> und liegt leistungstechnisch doch weit über dem Turion II des N54L.</p>



<h3 class="wp-block-heading">Speicher</h3>



<p class="wp-block-paragraph">Ein Barebone muss neben der CPU natürlich noch mit flüchtigem und permanentem Speicher bestückt werden. Der <a href="#produkte">Athlon 200GE</a> unterstützt DDR4-2666 Speicher, entsprechend den Vorgaben des Boards kommt ein 2x 8 GB Kit von <a href="#produkte">Crucial</a> zum Einsatz. </p>



<p class="wp-block-paragraph">Als Medium für das Betriebssystem (Ubuntu Server 18.04 LTS) kommt eine <a href="#produkte">Samsung PM981</a> 256 GB SSD im M.2 2280 Format zum Einsatz. Über NVMe angesteuert, können bis zu 3GB/s gelesen werden. Als &#8222;Bulk Version&#8220; ohne Kühlkörper ist sie für knapp 50 EUR erhältlich.</p>



<figure class="wp-block-image size-large"><a href="https://www.dahlen.org/wp-content/uploads/2020/03/img_4385-scaled-1.jpg"><img decoding="async" src="https://www.dahlen.org/wp-content/uploads/2020/03/img_4385-1920x2220.jpg" alt="ASRock A300 Mainboard" class="wp-image-3020"/></a><figcaption>A300 mit bestücktem Mainboard</figcaption></figure>



<p class="wp-block-paragraph">Die eigentlichen Nutzdaten werden auf 2 <a href="#produkte">Seagate BarraCuda</a> 2000 GB HDDs abgelegt, welche über md-tools zu einem RAID 1 (also gespiegelt) verbunden sind. Bis zu 125 MB/s lesender Transfer sind möglich. Aufgrund der beengten Platzverhältnisse können keine HDDs höher als 9 mm verbaut werden, die Seagates sind 7,5 mm dick. </p>



<h2 class="wp-block-heading">Fazit</h2>



<p class="wp-block-paragraph">Der Eigenbau auf Basis des DeskMini A300 erfüllt meine Anforderungen bis dato in vollem Umfang. Er ist klein, leistungsstark, dabei leise und günstig in Anschaffung und Unterhalt.  Der gesamte Setup hat ca. 450 EUR gekostet.  </p>



<p class="wp-block-paragraph">Der Zusammenbau war kinderleicht, lediglich die Montage der zweiten HDD ist etwas aufwendiger, dann muss das Mainboard demontiert werden. </p>



<figure class="wp-block-image size-large"><a href="https://www.dahlen.org/wp-content/uploads/2020/03/img_4386-scaled-1.jpg"><img decoding="async" src="https://www.dahlen.org//wp-content/uploads/2020/03/img_4386-1920x1188.jpg" alt="ASRock A300 Festplatten" class="wp-image-3018"/></a><figcaption>A300 Mainboard-Träger mit montierten Festplatten</figcaption></figure>



<p class="wp-block-paragraph">Die Geräuschentwicklung mit dem &#8222;boxed&#8220; Kühler des Athlon 200GE ist moderat, für Wohn- oder Schlafzimmer sicher zu laut, steht mir allerdings ein eigener Raum für die &#8222;Haus-IT&#8220; zur Verfügung.</p>



<h2 class="wp-block-heading">Ausblick</h2>



<p class="wp-block-paragraph">Die Migration des N54L auf den neuen Server wird sicherlich einige Zeit in Anspruch nehmen. Vorteilhaft ist, dass schon auf dem alten Server <a href="#software">Docker</a> und Docker Compose zum Einsatz kommen. Nutz- und Konfigurationsdaten der Anwendungen sind daher leicht identifizier- und kopierbar.</p>



<p class="wp-block-paragraph">Um meine &#8222;Skills&#8220; im Bereich Container Orchestrierung auszubauen, werde ich wohl <a href="#software">Kubernetes</a> oder <a href="#software">Rancher K3s</a> installieren. Letzteres läuft schon auf den <a href="#produkte">Raspberry Pi</a>s im Haus, so dass ein Cluster mit 4 Nodes entstünde.</p>



<p class="wp-block-paragraph">Sollte da neue System wider Erwarten an seine Grenzen stoßen, bleiben mir mehrere Möglichkeiten der &#8222;vertikalen&#8220; Skalierung: Eine leistungsstärkere CPU und/oder mehr Hautpspeicher. Auch eine &#8222;horizontale&#8220; Skalierung ist möglich, durch mehrere Duplikate des neuen Systems. Das Volumen eines N54L (ca. 14 Liter) ist auf jeden Fall ausreichend für bis zu 6 ASRock DeskMinis.</p>



<p class="wp-block-paragraph"></p>



<h2 class="wp-block-heading">Weiterführende Informationen</h2>



<h3 class="wp-block-heading" id="software"> Software und Dokumentation </h3>



<ul class="wp-block-list"><li><a href="https://ubuntu.com/download/server" target="_blank" rel="noreferrer noopener" aria-label=" (öffnet in neuem Tab)">Ubuntu Server</a></li><li><a href="https://hub.docker.com/editions/community/docker-ce-server-ubuntu" target="_blank" rel="noreferrer noopener" aria-label=" (öffnet in neuem Tab)">Docker Community Edition</a> für Ubuntu</li><li><a href="https://k3s.io/">Rancher K3s</a></li><li><a href="https://prometheus.io/" target="_blank" rel="noreferrer noopener" aria-label="Prometheus (öffnet in neuem Tab)">Prometheus</a></li><li><a href="https://homegear.eu/" target="_blank" rel="noreferrer noopener" aria-label=" (öffnet in neuem Tab)">Homegear</a></li><li><a href="https://home-assistant.io/" target="_blank" rel="noreferrer noopener" aria-label=" (öffnet in neuem Tab)">Home Assistant</a></li><li><a href="https://minecraft.net/" target="_blank" rel="noreferrer noopener" aria-label=" (öffnet in neuem Tab)">Minecraft</a></li></ul>



<h3 class="wp-block-heading" id="produkte">Produkte<a href="https://www.dahlen.org/impressum#affiliate">*</a></h3>



<ul class="wp-block-list"><li><a onMouseOut="al_link_out()" onMouseOver="al_gen_multi(599338992, {de : 'A-B07P9GL1LN'}, 'de', 'default');"  rel="nofollow" target="_blank" href="http://www.amazon.de/gp/product/B07P9GL1LN?ie=UTF8&amp;linkCode=xm2&amp;camp=2025&amp;creative=6738&amp;tag=dahlenorg-21&amp;creativeASIN=B07P9GL1LN&amp;SubscriptionId=">ASRock DeskMini A300 Barebone</a> (<a href="https://www.asrock.com/nettop/AMD/DeskMini%20A300%20Series/index.de.asp#Specification" target="_blank" rel="noreferrer noopener" aria-label=" (öffnet in neuem Tab)">Produktseite</a>)</li><li><a onMouseOut="al_link_out()" onMouseOver="al_gen_multi(227471083, {de : 'A-B07HJWVJDN'}, 'de', 'default');"  rel="nofollow" target="_blank" href="http://www.amazon.de/gp/product/B07HJWVJDN?ie=UTF8&amp;linkCode=xm2&amp;camp=2025&amp;creative=6738&amp;tag=dahlenorg-21&amp;creativeASIN=B07HJWVJDN&amp;SubscriptionId=">AMD Athlon 200GE APU boxed (YD200GC6FBBOX)</a> (<a href="https://www.amd.com/de/products/apu/amd-athlon-200ge" target="_blank" rel="noreferrer noopener" aria-label=" (öffnet in neuem Tab)">Produktseite</a>)</li><li><a onMouseOut="al_link_out()" onMouseOver="al_gen_multi(2027144072, {de : 'A-B071KP8CGG'}, 'de', 'default');"  rel="nofollow" target="_blank" href="http://www.amazon.de/gp/product/B071KP8CGG?ie=UTF8&amp;linkCode=xm2&amp;camp=2025&amp;creative=6738&amp;tag=dahlenorg-21&amp;creativeASIN=B071KP8CGG&amp;SubscriptionId=">Crucial DDR4-2666 16GB Kit (CT2K8G4SFS8266)</a></li><li><a onMouseOut="al_link_out()" onMouseOver="al_gen_multi(2002041061, {de : 'A-B07CGCJJMV'}, 'de', 'default');"  rel="nofollow" target="_blank" href="http://www.amazon.de/gp/product/B07CGCJJMV?ie=UTF8&amp;linkCode=xm2&amp;camp=2025&amp;creative=6738&amp;tag=dahlenorg-21&amp;creativeASIN=B07CGCJJMV&amp;SubscriptionId=">Samsung PM981 256GB M.2 SSD (MZVLB256HAHQ)</a></li><li><a onMouseOut="al_link_out()" onMouseOver="al_gen_multi(1307040293, {de : 'A-B01LXRWWB6'}, 'de', 'default');"  rel="nofollow" target="_blank" href="http://www.amazon.de/gp/product/B01LXRWWB6?ie=UTF8&amp;linkCode=xm2&amp;camp=2025&amp;creative=6738&amp;tag=dahlenorg-21&amp;creativeASIN=B01LXRWWB6&amp;SubscriptionId=">Seagate BarraCuda 2000GB HDD (ST2000LM015)</a> (<a href="https://www.seagate.com/www-content/datasheets/pdfs/barracuda-2-5-DS1907-2-1907DE-de_DE.pdf" target="_blank" rel="noreferrer noopener" aria-label="Datenblatt (öffnet in neuem Tab)">Datenblatt</a>)</li><li><a onMouseOut="al_link_out()" onMouseOver="al_gen_multi(447510166, {de : 'A-B07PGWXQCM'}, 'de', 'default');"  rel="nofollow" target="_blank" href="http://www.amazon.de/gp/product/B07PGWXQCM?ie=UTF8&amp;linkCode=xm2&amp;camp=2025&amp;creative=6738&amp;tag=dahlenorg-21&amp;creativeASIN=B07PGWXQCM&amp;SubscriptionId=">Western Digital RED 2TB 3,5″ HDD (WD20EFAX)</a></li></ul>
<p>Der Beitrag <a href="https://www.dahlen.org/2020/03/06/asrock-deskmini-a300/">ASRock DeskMini A300</a> erschien zuerst auf <a href="https://www.dahlen.org">dahlen.org</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dahlen.org/2020/03/06/asrock-deskmini-a300/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Die eigene Cloud auf dem Raspberry PI (Teil 3: Anbindung von Clients)</title>
		<link>https://www.dahlen.org/2013/02/24/die-eigene-cloud-3/</link>
					<comments>https://www.dahlen.org/2013/02/24/die-eigene-cloud-3/#comments</comments>
		
		<dc:creator><![CDATA[christoph]]></dc:creator>
		<pubDate>Sun, 24 Feb 2013 15:27:13 +0000</pubDate>
				<category><![CDATA[Hobby]]></category>
		<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Internet of Things]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Raspberry]]></category>
		<guid isPermaLink="false">https://www.dahlen.org/?p=999</guid>

					<description><![CDATA[<p>Im ersten und zweiten Teil dieser Blog-Post-Serie bin ich auf die Installation der Cloud-Software ownCloud auf der eigenen, schwachbrüstigen Hardware eingegangen. Dabei wurde auf den Mini-Computer Raspberry PI, die Web-Server-Software lighttpd, Verschlüsselung via Transport Layer Security (TLS) und schließlich ownCloud gesetzt. In diesem dritten und vorerst letzten Teil wird auf die Anbindung von stationären und [&#8230;]</p>
<p>Der Beitrag <a href="https://www.dahlen.org/2013/02/24/die-eigene-cloud-3/">Die eigene Cloud auf dem Raspberry PI (Teil 3: Anbindung von Clients)</a> erschien zuerst auf <a href="https://www.dahlen.org">dahlen.org</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Im <a href="https://www.dahlen.org/2013/02/die-eigene-cloud-1/" title="Die eigene Cloud auf dem Raspberry PI (Teil 1: lighttpd und SSL)">ersten</a> und <a href="https://www.dahlen.org/2013/02/die-eigene-cloud-2/" title="Die eigene Cloud auf dem Raspberry PI (Teil 2: ownCloud Installation)">zweiten</a> Teil dieser Blog-Post-Serie bin ich auf die Installation der Cloud-Software <a href="http://owncloud.org" title="ownCloud Website besuchen">ownCloud</a> auf der eigenen, schwachbrüstigen Hardware eingegangen. Dabei wurde auf den Mini-Computer <a href="http://www.raspberrypi.org/" title="Raspberry PI Foundation">Raspberry PI</a>, die Web-Server-Software <a href="http://lighttpd.net/" title="LigHTTPd Website">lighttpd</a>, Verschlüsselung via Transport Layer Security (TLS) und schließlich ownCloud gesetzt. </p>
<p>In diesem dritten und vorerst letzten Teil wird auf die Anbindung von stationären und mobilen Clients eingegangen. Dabei kommen vorerst iOS und Mozilla Thunderbird zum Einsatz. Der fiktive ownCloud Server ist dabei unter der URL <em>https://owncloud.dahlen.org/</em> mit dem Benutzer <em>cloudmaster</em> zu erreichen.<br />
<span id="more-999"></span></p>
<h3>Client-Geräte und -Software</h3>
<p>Die Nutzungsmöglichkeiten von ownCloud via iPhone oder anderen mobilen Geräten sind vielfältig. Neben einem Zugriff über die entsprechende ownCloud App können Kontakte und Kalenderdaten über das CardDAV resp. CalDAV Protokoll verwaltet werden, welches von iOS direkt unterstützt wird.</p>
<h4>Geräte mit Apples iOS</h4>
<p>Die entsprechenden Assistenten zur Einrichung in iOS sind recht <q>straight-forward</q>, benötigen aber etwas Vorarbeit auf der Server-Seite. Zur automatischen Erkennung der Möglichkeiten fragt iOS zunächst die Pfade </p>
<ul>
<li><tt>/.well-known/carddav</tt> bzw.</li>
<li><tt>/.well-known/caldav</tt> ab.</li>
</ul>
<p>Diese existieren in ownCloud nicht, ihre Funktionalität allerdings sehr wohl, nur an anderer Stelle. Am einfachsten ist es jetzt, die Anfragen per HTTP Redirect umzuleiten. Dazu wird die Konfiguration unter <tt>/etc/lighttpd/lighttpd.conf</tt> um einen Eintrag ergänzt, z.B. ab Zeile 22:</p>
<blockquote><p>
url.access-deny = ( &#8222;~&#8220;, &#8222;.inc&#8220; )<br />
url.redirect = (<br />
 &#8222;^/.well-known/carddav$&#8220; => &#8222;/remote.php/carddav/&#8220;,<br />
 &#8222;^/.well-known/caldav$&#8220; => &#8222;/remote.php/caldav/&#8220;<br />
)
</p></blockquote>
<p>Außerdem ist es wichtig, daß man den eigenen Kalender in ownCloud über den Browser mindestens 1x aufruft. Erst dann werden die notwendigen Strukturen in ownClouds CalDAV-Server eingerichtet.</p>
<p>Dann kann die Anbindung via iPhone beginnen. Die Assistenten befinden sich in <q>Einstellungen</q> &#8211; <q>Mail, Kontakte, Kalender</q> &#8211; <q>Account hinzufügen &#8230;</q>. Aus der Liste der Möglichen Anbieter (iCloud, Exchange usw.) wählt man den letzten Punkt (<q>Andere</q>):<br />
<figure id="attachment_1009" aria-describedby="caption-attachment-1009" style="width: 217px" class="wp-caption aligncenter"><a href="https://www.dahlen.org/wp-content/uploads/2013/02/iOS-CardDAV-1.png"><img loading="lazy" decoding="async" src="https://www.dahlen.org/wp-content/uploads/2013/02/iOS-CardDAV-1-217x300.png" alt="Neuen CardDAV / CalDAV Account wählen" width="217" height="300" class="size-medium wp-image-1009" /></a><figcaption id="caption-attachment-1009" class="wp-caption-text">Neuen CardDAV / CalDAV Account wählen</figcaption></figure></p>
<p>Die Dialoge für CardDAV und CalDAV sind im Wesentlichen identisch. Durch unsere Vorbereitung reicht es, den Namen des Server (<em>owncloud.dahlen.org</em>, <strong>ohne</strong> https://), den Benutzernamen und das Paßwort einzutragen. Alles andere wird bei Wahl von <q>Weiter</q> oben rechts automatisch ermittelt.</p>
<p><figure id="attachment_1010" aria-describedby="caption-attachment-1010" style="width: 208px" class="wp-caption aligncenter"><a href="https://www.dahlen.org/wp-content/uploads/2013/02/iOS-CardDAV-2.png"><img loading="lazy" decoding="async" src="https://www.dahlen.org/wp-content/uploads/2013/02/iOS-CardDAV-2-208x300.png" alt="Assistent CalDAV / CardDAV" width="208" height="300" class="size-medium wp-image-1010" srcset="https://www.dahlen.org/wp-content/uploads/2013/02/iOS-CardDAV-2-208x300.png 208w, https://www.dahlen.org/wp-content/uploads/2013/02/iOS-CardDAV-2.png 320w" sizes="auto, (max-width: 208px) 100vw, 208px" /></a><figcaption id="caption-attachment-1010" class="wp-caption-text">Assistent CalDAV / CardDAV</figcaption></figure></p>
<p>Und das war es dann auch schon. Der neue Kalender taucht in der Kalender-App auf und nimmt Termine entgegen. Die Enrichtung eines Kontakt-Accounts geschieht völlig analog und wird hier nicht weiter beschrieben.</p>
<h4>Mozilla Thunderbird mit Lightning Add-On</h4>
<p>Mozillas Mail-Client <a href="http://www.mozilla.org/de/thunderbird/?flang=de" title="Mozilla Thunderbird Website">Thunderbird</a> wird durch das Kalender-AddOn Lightning in die Richtung eines Personal Information Assistents, wie z.B. Outlook gerückt. Als Vertreter der Open Source Idee war zu erwarten, daß eine Anbindung an offene Standards möglich ist. </p>
<p>Zumindest für den Kalender gilt das auch. Nach der Installation von Lightning und dem Neustart von Thunderbird wird über das Menü <q>Datei</q> &#8211; <q>Neu</q> &#8211; <q>Kalender</q> der Assistent für einen neuen Kalender gestartet. Zunächst entscheidet man sich für einen Kalender im Netzwerk.</p>
<p><figure id="attachment_1016" aria-describedby="caption-attachment-1016" style="width: 300px" class="wp-caption aligncenter"><a href="https://www.dahlen.org/wp-content/uploads/2013/02/thunderbird-lightning-caldav-1.png"><img loading="lazy" decoding="async" src="https://www.dahlen.org/wp-content/uploads/2013/02/thunderbird-lightning-caldav-1-300x242.png" alt="Assistent zur Anlage eines Kalenders" width="300" height="242" class="size-medium wp-image-1016" srcset="https://www.dahlen.org/wp-content/uploads/2013/02/thunderbird-lightning-caldav-1-300x242.png 300w, https://www.dahlen.org/wp-content/uploads/2013/02/thunderbird-lightning-caldav-1.png 498w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><figcaption id="caption-attachment-1016" class="wp-caption-text">Assistent zur Anlage eines Kalenders</figcaption></figure></p>
<p>Im folgenden Dialog wählt man das Kalender-Format, was hier CalDAV ist. Der Dialog erwartet auch die Adresse, unter welcher der Kalender erreichbar ist. An dieser Stelle ist es leider nicht ausreichend einfach nur die URL des ownCloud-Servers anzugeben. Vielmehr wird hier die vollständige URL zum persönlichen Kalender erwartet.</p>
<p>Diese URL kann in ownCloud ausgelesen werden. Dazu wählt man in der Web-Oberfläche von ownCloud den Kalender und klickt dann oben rechts auf das Kalender-Symbol. Ein weiterer Klick auf das Weltkugel-Symbol offenbart dann den CalDAV-Link.<br />
<figure id="attachment_1021" aria-describedby="caption-attachment-1021" style="width: 277px" class="wp-caption aligncenter"><a href="https://www.dahlen.org/wp-content/uploads/2013/02/CalDAV-Link.png"><img loading="lazy" decoding="async" src="https://www.dahlen.org/wp-content/uploads/2013/02/CalDAV-Link.png" alt="Die CalDAV-Adresse des gewählten Kalenders." width="277" height="279" class="size-full wp-image-1021" srcset="https://www.dahlen.org/wp-content/uploads/2013/02/CalDAV-Link.png 277w, https://www.dahlen.org/wp-content/uploads/2013/02/CalDAV-Link-150x150.png 150w" sizes="auto, (max-width: 277px) 100vw, 277px" /></a><figcaption id="caption-attachment-1021" class="wp-caption-text">Die CalDAV-Adresse des gewählten Kalenders.</figcaption></figure></p>
<p>Gemäß den Beispieldaten in diesem Artikel lautet die CalDAV-Adresse meines Default-Kalenders<br />
<em>https://owncloud.dahlen.org/remote.php/caldav/principals/cloudmaster/defaultcalendar</em>. Diese trägt man in den offenen Dialog ein und bestätigt mit <q>Weiter</q>.<br />
<figure id="attachment_1017" aria-describedby="caption-attachment-1017" style="width: 300px" class="wp-caption aligncenter"><a href="https://www.dahlen.org/wp-content/uploads/2013/02/thunderbird-lightning-caldav-2.png"><img loading="lazy" decoding="async" src="https://www.dahlen.org/wp-content/uploads/2013/02/thunderbird-lightning-caldav-2-300x239.png" alt="Auswahl des Kalendertyps und -quelle" width="300" height="239" class="size-medium wp-image-1017" /></a><figcaption id="caption-attachment-1017" class="wp-caption-text">Auswahl des Kalendertyps und -quelle</figcaption></figure></p>
<p>Im nächsten Dialog-Schritt hat man noch die Möglichkeit die Darstellung des Kalendars zu personalisieren und eine <nobr>E-Mail-</nobr><wbr>Adresse zuzuordnen. Außerdem werden in einem Popup die Anmeldedaten abgefragt.<br />
<figure id="attachment_1018" aria-describedby="caption-attachment-1018" style="width: 300px" class="wp-caption aligncenter"><a href="https://www.dahlen.org/wp-content/uploads/2013/02/thunderbird-lightning-caldav-3.png"><img loading="lazy" decoding="async" src="https://www.dahlen.org/wp-content/uploads/2013/02/thunderbird-lightning-caldav-3-300x241.png" alt="Beschriftung in der Kalenderansicht" width="300" height="241" class="size-medium wp-image-1018" /></a><figcaption id="caption-attachment-1018" class="wp-caption-text">Beschriftung in der Kalenderansicht</figcaption></figure></p>
<p>Schließlich kommt es zum letzten Schritt des Dialogs, in welchem man einfach nur auf <q>Fertigstellen</q> klickt. Das war&#8217;s.<br />
<figure id="attachment_1019" aria-describedby="caption-attachment-1019" style="width: 300px" class="wp-caption aligncenter"><a href="https://www.dahlen.org/wp-content/uploads/2013/02/thunderbird-lightning-caldav-4.png"><img loading="lazy" decoding="async" src="https://www.dahlen.org/wp-content/uploads/2013/02/thunderbird-lightning-caldav-4-300x240.png" alt="Beenden des Assistenten" width="300" height="240" class="size-medium wp-image-1019" /></a><figcaption id="caption-attachment-1019" class="wp-caption-text">Beenden des Assistenten</figcaption></figure></p>
<p>Damit hat mein Protokoll zur Einrichtung des eigenen, abgesicherten ownCloud-Servers auf dem Raspberry PI und die Anbindung an Clients sein vorläufiges Ende erreicht. Es ist nicht ausgeschlossen, daß Ergänzungen für weiter Clients wie Android oder Outlook folgen. </p>
<p>Ich hoffe, daß meine Ausführungen dem ein oder anderem zur Hilfe reichen und freue mich auf Feedback.</p>
<p>Der Beitrag <a href="https://www.dahlen.org/2013/02/24/die-eigene-cloud-3/">Die eigene Cloud auf dem Raspberry PI (Teil 3: Anbindung von Clients)</a> erschien zuerst auf <a href="https://www.dahlen.org">dahlen.org</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dahlen.org/2013/02/24/die-eigene-cloud-3/feed/</wfw:commentRss>
			<slash:comments>14</slash:comments>
		
		
			</item>
		<item>
		<title>Die eigene Cloud auf dem Raspberry PI (Teil 2: ownCloud Installation)</title>
		<link>https://www.dahlen.org/2013/02/23/die-eigene-cloud-2/</link>
					<comments>https://www.dahlen.org/2013/02/23/die-eigene-cloud-2/#comments</comments>
		
		<dc:creator><![CDATA[christoph]]></dc:creator>
		<pubDate>Sat, 23 Feb 2013 15:31:35 +0000</pubDate>
				<category><![CDATA[Hobby]]></category>
		<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Internet of Things]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Raspberry]]></category>
		<guid isPermaLink="false">https://www.dahlen.org/?p=959</guid>

					<description><![CDATA[<p>Im ersten Teil meines Protokolls zum Thema Die eigene Cloud bin ich auf die Installation und Absicherung des Servers eingegangen. In diesem Teil geht es um die eigentliche Installation von ownCloud. Ziel ist es, Kalender- und Kontaktdaten weltweit im Zugriff zu haben, wobei sie dennoch auf eigener Hardware bleiben. Dazu wurde die Web-Server-Software lighttpd installiert [&#8230;]</p>
<p>Der Beitrag <a href="https://www.dahlen.org/2013/02/23/die-eigene-cloud-2/">Die eigene Cloud auf dem Raspberry PI (Teil 2: ownCloud Installation)</a> erschien zuerst auf <a href="https://www.dahlen.org">dahlen.org</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Im <a href="https://www.dahlen.org/2013/02/die-eigene-cloud-1/" title="Die eigene Cloud auf dem Raspberry PI (Teil 1: lighttpd und SSL)">ersten</a> Teil meines Protokolls zum Thema <q>Die eigene Cloud</q> bin ich auf die Installation und Absicherung des Servers eingegangen. In diesem Teil geht es um die eigentliche Installation von <a href="http://owncloud.org/" title="ownCloud Homepage besuchen">ownCloud</a>. Ziel ist es, Kalender- und Kontaktdaten weltweit im Zugriff zu haben, wobei sie dennoch auf eigener Hardware bleiben.</p>
<p>Dazu wurde die Web-Server-Software <a href="http://www.lighttpd.net/" title="Lighttpd Website besuchen">lighttpd</a> installiert und die Kommunikation via <em>Transport Layer Security</em> (TLS) abgesichert. Mein (fiktiver) Web-Server ist nun ausschließlich unter https://owncloud.dahlen.org/ erreichbar.<br />
<span id="more-959"></span></p>
<h3>Installation von ownCloud</h3>
<p>Wegen der begrenzten Ressourcen des <a href="http://www.raspberrypi.org/" title="Raspberry PI Foundation">Raspberry PI</a> wurde nicht auf das ownCloud-Paket der Distribution (Raspian) zurückgegriffen, da hier eine Abhängigkeit zum Apache 2 http-Server besteht. Dennoch kann das Gros der notwendigen Software aus den Paketquellen der Distribution genommen werden, z.B. <a href="http://php.net/" title="PHP 5">PHP5</a> mit seinen Modulen:<br />
<code>$ sudo apt-get install php5-gd php5-curl php5-sqlite php5-cgi</code></p>
<h4>PHP5</h4>
<p>Nach der Installation von PHP5 sind bei Bedarf zwei Einstellungen anzupassen, welche Auswirkung auf den gleichen Aspekt haben: Die maximale Größe für Uploads nach ownCloud. Es handelt sich um folgende Parameter, die sich in der Datei <tt>/etc/php5/cgi/php.ini</tt> befinden:</p>
<ul>
<li><tt>upload_max_filesize</tt></li>
<li><tt>post_max_size</tt></li>
</ul>
<p>Ich habe beide Werte auf <tt>16M</tt> gesetzt. In erster Linie möchte ich ownCloud für Kalender- und Kontaktdaten nutzen, aber mit 16MB sind auch mal ein Bild oder ein größeres Dokument drin.</p>
<p>Vor dem Beginn der eigentlichen Installation von ownCloud muß PHP5 noch via FastCGI angebunden werden. Dazu ist auch ein Neustart des Web-Servers notwendig:<br />
<code>$ sudo lighttpd-enable-mod fastcgi-php<br />$ sudo service lighttpd force-reload</code></p>
<h4>ownCloud</h4>
<p>Jetzt kann das ownCloud-Setup-Skript direkt vom Anbieter gezogen werden. Abgelegt wird es im Document-Root des Web-Servers <tt>/var/www/</tt>:<br />
<code>$ sudo wget -O /var/www/setup-owncloud.php \<br />  https://download.owncloud.com/download/community/setup-owncloud.php</code></p>
<p>Außerdem sind noch Berechtigungen anzupassen, damit ownCloud Daten nachladen und installieren kann:<br />
<code>$ sudo chown www-data:www-data /var/www /var/www/setup-owncloud.php</code></p>
<p>Schließlich wird das Skript im Browser aufgerufen, gemäß Beispiel lautet die URL zum Setup https://owncloud.dahlen.org/setup-owncloud.php. </p>
<p>Es erscheint der Begrüßungsbildschirm der Installation. Dieser kann ohne Änderungen per <q>Next</q> bestätigt werden.<br />
<a class="lightbox" rel="oc" href="https://www.dahlen.org/wp-content/uploads/2013/02/oc1.png"></a> Der Startbildschirm der OwnCloud Installation</p>
<p>Im folgenden Dialog kann man das Zielverzeichnis der Installation auswählen, relativ zum Document Root. Auch hier reicht ein Klick auf <q>Next</q>, auch wenn man mit <tt>owncloud</tt> nicht einverstanden ist (dazu später mehr):<br />
<figure id="attachment_934" aria-describedby="caption-attachment-934" style="width: 300px" class="wp-caption aligncenter"><a class="lightbox" rel="oc" href="https://www.dahlen.org/wp-content/uploads/2013/02/oc2.png"><img loading="lazy" decoding="async" src="https://www.dahlen.org/wp-content/uploads/2013/02/oc2-300x271.png" width="300" height="271" class="size-medium wp-image-934" alt="Screenshot ownCloud Web-Interface 2" srcset="https://www.dahlen.org/wp-content/uploads/2013/02/oc2-300x271.png 300w, https://www.dahlen.org/wp-content/uploads/2013/02/oc2.png 626w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><figcaption id="caption-attachment-934" class="wp-caption-text">Auswahl des Zielverzeichnisses der Installation</figcaption></figure></p>
<p>Im Hintergrund lädt ownCloud nun die aktuelle Version vom ownCloud-Server und entpackt sie im vorhin gewählten Zielverzeichnis. Je nach Internet-Anbindung kann dieser Schritt etwas dauern. Sein Abschluß wird durch den dritten Dialog berichtet, den man wieder über <q>Next</q> bestätigt.<br />
<figure id="attachment_935" aria-describedby="caption-attachment-935" style="width: 300px" class="wp-caption aligncenter"><a href="https://www.dahlen.org/wp-content/uploads/2013/02/oc3.png"><img loading="lazy" decoding="async" src="https://www.dahlen.org/wp-content/uploads/2013/02/oc3-300x277.png" width="300" height="277" class="size-medium wp-image-935" alt="Screenshot ownCloud Web-Interface 3" srcset="https://www.dahlen.org/wp-content/uploads/2013/02/oc3-300x277.png 300w, https://www.dahlen.org/wp-content/uploads/2013/02/oc3.png 610w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><figcaption id="caption-attachment-935" class="wp-caption-text">OwnCloud meldet den Vollzug der Installation</figcaption></figure></p>
<p>Schließlich wird nach den Anmeldedaten des ersten Benutzers gefragt. Dieser wird automatisch zum Administrator. Nachdem man Benutzernamen und Passwort eingetragen hat, kann die Installation über die entsprechende Schaltfläche abgeschlossen werden.<br />
<figure id="attachment_936" aria-describedby="caption-attachment-936" style="width: 300px" class="wp-caption aligncenter"><a href="https://www.dahlen.org/wp-content/uploads/2013/02/oc4.png"><img loading="lazy" decoding="async" src="https://www.dahlen.org/wp-content/uploads/2013/02/oc4-240x300.png" width="300" height="370" class=size-medium wp-image-936" alt="Screenshot ownCloud Web-Interface 4" /></a><figcaption id="caption-attachment-936" class="wp-caption-text">OwnCloud verlangt nach den Daten des Administrators</figcaption></figure></p>
<p>Im letzten Dialog war ein roter Textabschnitt zu sehen. Sinngemäß wird dadrin darauf hingewiesen, daß alle Daten, die man ownCloud anvertraut ohne jede Zugangskontrolle abrufbar sind. Darum wird lighttpd (und damit ownCloud) jetzt erstmal runtergefahren:<br />
<code>$ sudo service lighttpd stop</code></p>
<p>Nun zu Ursache und Beseitigung der Warnung: ownCloud speichert die meisten seiner Daten in einem Unterverzeichnis namens <tt>data</tt>. Dieses Verzeichnis wird in der Regel über eine Datei namens <tt>.htaccess</tt> vor direkten Zugriffen aus dem Internet geschützt. Nur indirekt, über die ownCloud-Software und das dort integrierte Rechtemanagement soll der Zugriff erfolgen. </p>
<p>lighttpd bietet aber keine Unterstützung für die Anweisungen in der .htaccess-Datei, darum besteht auch kein Zugriffsschutz. Zwar bietet auch lighttpd ähnliche Mechanismen, aber ich wähle einen anderen Weg.</p>
<p>Als erstes ersetze ich /var/www/owncloud durch /var/www, weil ich keine weitere Anwendung auf dem Raspberry PI laufen lassen werde.<br />
<code>$ sudo mv /var/www /var/www.off<br />
$ sudo mv /var/www.off/owncloud /var/www<br />
$ sudo rm -r /var/www.off</code></p>
<p>Dann verschiebe ich das data-Verzeichnis aus dem Bereich des Webservers.<br />
<code>$ sudo mkdir -p /srv/owncloud<br />
$ sudo chown www-data:www-data /srv/owncloud<br />
$ sudo mv /var/www/data /srv/owncloud</code></p>
<p>Den neuen Ort des data-Verzeichnisses müssen wir ownCloud bekannt machen, dazu wird der alte Wert in der Konfigurationsdatei <tt>/var/www/config/config.php</tt> geändert.</p>
<p>Aus<br />
<code>'datadirectory' => '/var/www/owncloud/data',</code><br />
wird also<br />
<code>'datadirectory' => '/srv/owncloud/data',</code></p>
<p>Zeit lighttpd (und damit owncloud) neu zu starten.<br />
<code>$ sudo service lighttpd start</code></p>
<p>Damit ist die Installation von ownCloud abgeschlossen. Sie steht (nur lt. meinem Beispiel) jetzt direkt unter https://owncloud.dahlen.org/ zur Verfügung. </p>
<p>Im <a href="https://www.dahlen.org/2013/02/die-eigene-cloud-3/" title="Die eigene Cloud auf dem Raspberry PI (Teil 3: Anbindung von Clients)">nächsten</a> Teil gehe ich auf die Anbindung von Kontakten und Kalender via iOS und anderen Clients ein.</p>
<p>Der Beitrag <a href="https://www.dahlen.org/2013/02/23/die-eigene-cloud-2/">Die eigene Cloud auf dem Raspberry PI (Teil 2: ownCloud Installation)</a> erschien zuerst auf <a href="https://www.dahlen.org">dahlen.org</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dahlen.org/2013/02/23/die-eigene-cloud-2/feed/</wfw:commentRss>
			<slash:comments>28</slash:comments>
		
		
			</item>
		<item>
		<title>Die eigene Cloud auf dem Raspberry PI (Teil 1: lighttpd und SSL)</title>
		<link>https://www.dahlen.org/2013/02/23/die-eigene-cloud-1/</link>
					<comments>https://www.dahlen.org/2013/02/23/die-eigene-cloud-1/#comments</comments>
		
		<dc:creator><![CDATA[christoph]]></dc:creator>
		<pubDate>Sat, 23 Feb 2013 15:00:57 +0000</pubDate>
				<category><![CDATA[Hobby]]></category>
		<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Internet of Things]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Raspberry]]></category>
		<guid isPermaLink="false">https://www.dahlen.org/?p=929</guid>

					<description><![CDATA[<p>Bereits vor einiger Zeit habe ich mir einen Raspberry Pi gekauft, einen Ein-Platinen-Computer in der Größe einer Scheckkarte. Es stand nicht wirklich eine Notwendigkeit dahinter, eher technische Neugier gepaart mit einer relativ niedrigen Kaufschwelle von rund 25&#160;USD. Jetzt habe ich auch endlich eine Verwendung für die Himbeere 3,1415 gefunden: Meine eigene, kleine Cloud &#8211; mein [&#8230;]</p>
<p>Der Beitrag <a href="https://www.dahlen.org/2013/02/23/die-eigene-cloud-1/">Die eigene Cloud auf dem Raspberry PI (Teil 1: lighttpd und SSL)</a> erschien zuerst auf <a href="https://www.dahlen.org">dahlen.org</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Bereits vor einiger Zeit habe ich mir einen <a title="Raspberry Pi" href="http://www.raspberrypi.org/">Raspberry Pi</a> gekauft, einen Ein-Platinen-Computer in der Größe einer Scheckkarte. Es stand nicht wirklich eine Notwendigkeit dahinter, eher technische Neugier gepaart mit einer relativ niedrigen Kaufschwelle von rund 25&#160;USD. </p>
<p>Jetzt habe ich auch endlich eine Verwendung für die Himbeere 3,1415 gefunden:  Meine eigene, kleine Cloud &#8211; mein Wölkchen also.<br />
<span id="more-929"></span></p>
<h3>Motivation</h3>
<p>Zunächst möchte ich noch meine Zielsetzung schärfen: Trotz der Auswahl von <a href="https://owncloud.com/" title="ownCloud">ownCloud</a> als Server-Software geht es mir primär nicht um die Einrichtung einer Dateiablage oder ähnlichem. Vielmehr steht der weltweite Zugriff auf Kontakte und Kalenderdaten via Browser oder mobilem Endgerät im Vordergrund. Die dafür notwendigen Protokolle <a href="http://de.wikipedia.org/wiki/CalDAV" title="CalDAV bei Wikipedia nachschlagen">CalDAV</a> und CardDAV sind in ownCloud integriert und die Installation der ownCloud-Software ist um ein Vielfaches einfacher als der dedizierten Varianten (z.B. <a href="http://www.davical.org/" title="DaviCAL">DaviCAL</a>). </p>
<p>Zwar kann man alle Leistungen kostenlos bei Google bekommen, doch liegen die persönlichen Daten dann eben bei Google. Natürlich muß das nicht zwangsläufig zu Mißbrauch führen (<q>Don&#8217;t be evil</q>, sagt Google). Aber ab und an wird Google sicherlich mal einen Blick auf die Daten werden, um <q>die Benutzererfahrung</q> zu verbessern. Anders wären Dienste wie <a href="http://www.google.com/landing/now/" title="Google Now">Google Now</a> gar nicht möglich.</p>
<h3>Hard- und Software-Basis</h3>
<p>Meine Beschreibung orientiert sich dabei an den Möglichkeiten eines Raspberry Pi, Modell&nbsp;B, 256MB Variante. Als Betriebssystem kommt die Debian Wheezy basierte <q><a href="http://www.raspberrypi.org/downloads" title="Raspbian">Raspbian</a></q>-Distribution zum Einsatz.  Wegen der begrenzten Ressourcen wird nicht auf das ownCloud-Paket der Distribution zurückgegriffen, da hier eine Abhängigkeit zum Apache&nbsp;2 http-Server besteht. Stattdessen wird auf <a href="http://www.lighttpd.net/" title="ligHTTPd">LigHTTPd</a> zurückgegriffen:<br />
<code>$ sudo apt-get install lighttpd</code></p>
<p>Damit ist der Webserver bereits installiert und liefert sein Platzhalter-Seite über HTTP aus. Allerdings handelt es sich um eine unverschlüsselte Verbindung. Die später notwendigen Anmelde-, meine Kontakt- und Kalenderdaten sollen so nicht verschickt werden. Vielmehr muß eine Absicherung über <a href="http://de.wikipedia.org/wiki/Transport_Layer_Security" title="Transport Layer Security (TLS)"><abbr title="Transport Layer Security">TLS</abbr></a>, besser bekannt als <abbr title="Secure Socket Layer">SSL</abbr>.</p>
<h3>Absicherung der Kommunikation</h3>
<p>Ich will erreichen, daß die Kommunikation mit den Clients (iPhone, Browser, etc.) verschlüsselt abläuft. Dazu würde theoretisch ein einfaches, selbst-signiertes Zertifikat reichen. Allerdings würden dann unbedarfte Anwender mit Dialogen konfrontiert werden, in denen Begriffe wie <q>Gefahr</q>, <q>Sicherheitshinweis</q> und <q>nicht empfohlen</q> vorkommen.</p>
<p>Der Grund ist, daß ein selbst-signiertes Zertifikat zwar für den Aufbau einer verschlüsselten Verbindung ausreicht, aber die Identität des Servers nicht bestätigt. Dies geht nur über eine Zertifikatskette, welche ausschließlich aus dem Client bekannten <q>Certification Authorities</q> (CA) besteht. Das heißt: Eine dem Client bekannte und als vertrauenswürdig eingestufte CA hat die Validität meines Server-Zertifikats mit ihrer Signatur bestätigt. </p>
<blockquote><p>In meiner Beschreibung verwende ich als Hostnamen <em>owncloud.dahlen.org</em> und einen Benutzer namens <em>cloudmaster</em>. Weder die Domäne, noch der Benutzer existieren in der Realität.</p></blockquote>
<p>Leider verlangen die im Browser vorinstallierten CAs teilweise horrende Gebühren für ihre Signatur. Doch es gibt kostenlose Ausnahmen, welche für meinen Anwendungsfall auch völlig ausreichend sind. Eine davon ist die Firma StartSSL. </p>
<p>Wichtig: Für die Erstellung eines durch StartSSL-signierten Zertifikats wird die eigene Domäne benötigt (wie dahlen.org). Ohne diese Domäne bleibt euch nur die Möglichkeit eines selbst-signierten Zertifikats. Auch muß der ownCloud-Host über einen <em>Fully Qualified Domain Name</em> (FQDN) erreichbar sein, also über einen Namen wie owncloud.dahlen.org.</p>
<p>Das erforderliche Software (OpenSSL) sollte bereits bei der Installation von Raspian mitgekommen sein, ansonsten schadet eine erneuter Versuch auch nicht.<br />
<code>$ sudo apt-get install openssl</code></p>
<h4>Schlüssel und Zertifikate</h4>
<p>Zunächst erstellt man einen privaten Schlüssel, mit welchem das spätere Server-Zertifikat abgesichert ist. Auf die Möglichkeit, diesen private key mit einem weiteren Kennwort abzusichern wird bewußt verzichtet:<br />
<code>$ openssl genrsa -out server.key 2048</code></p>
<p>Dann erstellt man einen <em>Certificate Signing Request</em> (CSR), eigentlich ist das der öffentliche Teil des privaten Schlüssels, welcher zur Signatur bei der CA eingereicht wird (oder eben selbst signiert wird):<br />
<code>$ openssl req -new -key server.key -out server.csr</code></p>
<p>Die gestellten Fragen sind gemäß der eigenen Umgebung anzugeben. Wichtig dabei: Das Feld <em>Common Name</em> (CN) muß den Namen und die Domäne (<em>Fully Qualified Domain Name</em>, FQDN) des eigenen ownCloud-Servers beinhalten. Der vollständige Dialog kann also wie folgt aussehen:</p>
<blockquote><p>
Country Name (2 letter code) [AU]:DE<br />
State or Province Name (full name) [Some-State]:Nordrhein-Westfalen<br />
Locality Name (eg, city) []:Toenisvorst<br />
Organization Name (eg, company) [Internet Widgits Pty Ltd]:dahlen.org<br />
Organizational Unit Name (eg, section) []:<br />
Common Name (e.g. server FQDN or YOUR name) []:owncloud.dahlen.org<br />
Email Address []:cloudmaster@dahlen.org
</p></blockquote>
<p>Der erzeugte CSR wird jetzt bei StartSSL zur Signatur eingereicht. Diesen Prozeß muß ich glücklicherweise nicht beschreiben, denn das haben die Kollegen auf <a href="http://www.heise.de/security/artikel/Die-Praxis-881280.html" title="heise Security">heise Security</a> bereits getan. Im Ergebnis wird das signierte Zertifikat angezeigt, welches man kopiert und eine Datei namens server.crt speichert. Es ist dabei enorm wichtig, daß der Inhalt der Datei nicht durch Umbrüche oder ähnliches verändert wird.</p>
<p>Drei Dateien befinden sich nun im aktuellen Verzeichnis:</p>
<ul>
<li>server.key &#8211; der private Schüssel zum Zertifikat</li>
<li>server.csr &#8211; der öffentliche, unsignierte Schlüssel</li>
<li>server.crt &#8211; das öffentliche, signierte und damit &#8222;zertifizierte&#8220; Schlüssel</li>
</ul>
<p>Der CSR wird nicht mehr benötigt und kann gelöscht werden. Eine weitere Datei muss noch besorgt werden, um die Kette der Zertifikat-Signaturen zu schliessen: Das Intermediate Certificate von StartSSL. Diese lässt sich direkt abrufen:<br />
<code>$ wget -O ca.pem http://www.startssl.com/certs/sub.class1.server.ca.pem</code></p>
<p>Damit ist die Zertifikatskette geschlossen und die Gültigkeit des eigenen Server-Zertifikats kann überprüft werden:<br />
<code>$ openssl verify -CAfile ca.pem server.crt</code><br />
Erwartetes Ergebnis:</p>
<blockquote><p>server.crt: OK</p></blockquote>
<p>Als letzten Schritt der Zertifikat-Vorbereitung müssen jetzt noch der private Schlüssel und das Zertifikat in eine Datei überführt werden.<br />
<code>$ cat server.key server.crt > server.pem</code></p>
<h4>Installation in <a name="lighttpd-ssl">lighttpd</a></h4>
<p>Nun ist es Zeit, die generierten Teile der SSL-Infrastruktur dem Webserver bekannt zu machen:<br />
<code>$ sudo cp server.pem /etc/lighttpd/<br />
$ sudo cp ca.pem /etc/lighttpd/</code> </p>
<p>Außerdem muß die Konfiguration unter <tt>/etc/lighttpd/lighttpd.conf</tt> angepasst werden. Die Änderungen beginnen mit der Änderung der Port-Nummer (ca. ab Zeile 15). Aus<br />
<code>server.port                 = 80</code><br />
wird<br />
<code>server.port                 = 443<br />
ssl.engine                  = "enable"<br />
ssl.pemfile                 = "/etc/lighttpd/server.pem"<br />
ssl.ca-file                 = "/etc/lighttpd/ca.pem"</code></p>
<p>Letztendlich wird damit der Zugriff über einfaches, unverschlüsseltes HTTP abgeschaltet. Durch einen Neustart wird dies aktiviert:<br />
<code>$ sudo service lighttpd restart</code></p>
<p>Danach ist der Dienst nur noch über HTTPS auf Port 443 zu erreichen, also https://owncloud.dahlen.org/.</p>
<p>Im <a href="https://www.dahlen.org/2013/02/die-eigene-cloud-2/" title="Die eigene Cloud auf dem Raspberry PI (Teil 2: ownCloud Installation)">nächsten</a> Teil beschreibe ich, wie jetzt ownCloud ins Spiel kommt.</p>
<p>Der Beitrag <a href="https://www.dahlen.org/2013/02/23/die-eigene-cloud-1/">Die eigene Cloud auf dem Raspberry PI (Teil 1: lighttpd und SSL)</a> erschien zuerst auf <a href="https://www.dahlen.org">dahlen.org</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dahlen.org/2013/02/23/die-eigene-cloud-1/feed/</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
			</item>
	</channel>
</rss>
