Radxa Sata Hut für Himbeer Pi 4: Home Server mit uns, Cloud und Torrent-Download über VPN im Docker

Gegen Ende des Kalenderjahres verschärfte die Regierung die Sperrung und verhängte eine Ausgangssperre für die Feiertage. Es standen 10 Tage an den Wochenenden bevor, und ich entschied, dass es an der Zeit war, mich mit der Einrichtung eines Heimservers zu beschäftigen, dessen Idee ich schon seit einiger Zeit entwickelt hatte.



Teil 1. Auswahl von Computern und Komponenten



Die Hauptanforderungen an einen Heimserver waren Kompaktheit und geringer Stromverbrauch. Als Computer habe ich verschiedene Single-Board-Geräte in Betracht gezogen und sogar über Single-Board-Geräte mit x64-Architektur nachgedacht. Die wichtigsten Suchkriterien waren überschüssiger RAM von 8 GB, moderne Ports: USB 3.0 und Gigabit-LAN. Die Idee war, alles in einer Art miniATX-Box unter Verwendung von USB-Sat-Schnittstellen für Festplatten zu verschrauben. Diese Erkenntnis gefiel mir ästhetisch nicht und ich hatte es nicht eilig, sie umzusetzen. Plötzlich stieß ich auf einen US-Wal für die 4. Himbeere der Chinesen aus Radha.



So wie ich es verstehe, wurde der Sata-Hut selbst bereits vor einiger Zeit vorgestellt und war sogar in einer limitierten Auflage sehr schnell ausverkauft. Diesmal boten die Chinesen aber auch eine Box an. Die ganze Struktur sah sehr kompakt und so hübsch aus, wie es meine nicht so gleichmäßigen Hände niemals selbst tun konnten. Ich habe diese Box gegoogelt, eine bezahlte Bewertung auf YouTube gefunden und sie passte im Prinzip zu mir. Ich habe mich entschlossen, nicht lange nachzudenken, da die Charge höchstwahrscheinlich schnell ausverkauft sein wird und das Netzteil für die Aktion kostenlos zur Verfügung gestellt wurde. Eine Schachtel Sata-Hut mit Expressversand aus Shenzhen kostete mich zum Zeitpunkt des Kaufs 125,23 €. Die Wahl der Box hat die Auswahl der Computer automatisch auf die 4. Himbeere eingegrenzt, die ich bei Amazon für 79,97 € für das Modell mit 8 GB RAM gekauft habe. Ebenfalls bei Amazon wurden 2 Festplatten VD 2.5 "2 TB zu je 63,81 € gekauft,und eine Samsung EVO 120 SD-Karte für 15,25 € bei aliexpress. Insgesamt 348,07 €, ich dachte, der Leser würde sich für die finanzielle Frage interessieren.



All dieses Gute ist sehr einfach zusammengesetzt, liebe chinesische Genossen haben sich um alles gekümmert, ein Beispiel ist im Bild unten zu sehen. Ich habe auch ein paar kurze Videos des zusammengebauten Geräts aufgenommen. Von den angenehmen Momenten, die mir zum Zeitpunkt der Bestellung des Geräts nicht bewusst waren:



  • Der Körper besteht aus einem einzigen Stück Metall, das außen mit weißer Farbe bemalt ist.
  • Der Boden mit Belüftungslöchern ist ebenfalls aus Metall.
  • Befestigungsschrauben und -muttern: Metall (nicht Metall, nur die obere durchscheinende Kunststoffabdeckung mit Löchern für einen großen Lüfter);
  • sata hat die nächste Revision und nicht die, die der vlogger auf YouTube hatte, und hat einen Batterieanschluss;
  • Ein kleiner eisiger Bildschirm zeigt Informationen über den Status des Systems an.
  • Der große Lüfter und der Eisbildschirm installieren Radhas Software, bei der es sich um Python-Skripte handelt, und werden durch Eingabe eines Befehls im Terminal installiert.


Bild



Standardmäßig verfügt der obere Lüfter je nach Prozessortemperatur über 4 Betriebsarten, die sich in der Rotationsintensität und dem erzeugten Geräusch unterscheiden: Auf Stufe 1 ist sie fast unhörbar, Stufe 2 ist hörbar, 3-4 sind zu gut hörbar. Dafür sind in der Tat Python-Skripte verantwortlich.







Im Allgemeinen war ich mit diesem Gerät zufrieden, aber ich hatte einen Kommentar. Das Kit verwendet einen laufenden verglasten Bildschirm, der leicht bei Alishechka bestellt werden kann. Der Bildschirm ist jedoch mit der Platine verlötet. Die Chinesen mussten den FPC / FCC-Anschluss auf der Platine nicht verwenden. Dies würde beispielsweise den Austausch des Eisschirms im Falle eines Burnouts erheblich vereinfachen.



2.



Nun, alles ist zusammengebaut. Beginnen wir mit der Einrichtung der Software. Ich werde Copy-Paste nicht überfluten, daher werden allgemeine Punkte durch Links zu Hauta in der Suchzeile dargestellt. Ich werde einige überspringen, aber Sie können sich eingehender mit den Fallstricken befassen.



Ich habe mich für das Betriebssystem Ubuntu Server 20.04.1 entschieden, eine wunderbare Anleitung zur Installation von Kanonikl, die Sie selbst geschrieben haben. Als nächstes installieren wir Software von Radha entsprechend ihrem Mana . Hier gab es eine Fallstricke Nummer 1. Tatsache ist, dass ich für bestimmte Torrent-Anforderungen VPN verwenden musste, mein VPN-Anbieter jedoch IPv6 nicht unterstützt. Als ich openvpn für meinen Provider einrichtete, stellte ich fest, dass meine Anonymität beispielsweise genau über IPv6 fließt. Okay, auf Systemebene kann IPv6 in Ubuntu ganz einfach deaktiviert werden.



Wie genau
sysctl



$ sudo nano /etc/sysctl.conf
      
      









	net.ipv6.conf.all.disable_ipv6=1
	net.ipv6.conf.default.disable_ipv6=1
	net.ipv6.conf.lo.disable_ipv6=1
      
      





:



$ sudo sysctl -p
      
      





, 6 , :



$ sudo nano /etc/rc.local
      
      





:



	#!/bin/bash
	# /etc/rc.local
	/etc/sysctl.d
	/etc/init.d/procps restart
	exit 0
      
      





:



$ sudo chmod 755 /etc/rc.local
      
      







Aber dann passierte das Unerwartete, der große Lüfter aus der Box funktionierte überhaupt nicht mehr.

Nachdem ich die Möglichkeit eines Hardwareausfalls ausgeschlossen hatte, begann ich nach einer Softwareursache zu suchen. Die Statusausgabe des Rockpi-Sata-Dienstes zeigte Fehler im Zusammenhang mit dem Python-Skript fan.py:



ubuntu@ubuntu:~$ sudo service rockpi-sata status
● rockpi-sata.service - Rockpi SATA Hat
Loaded: loaded (/lib/systemd/system/rockpi-sata.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2020-12-25 17:16:07 CET; 11min ago
Main PID: 1879 (python3)
Tasks: 4 (limit: 9252)
CGroup: /system.slice/rockpi-sata.service
├─1879 /usr/bin/python3 /usr/bin/rockpi-sata/main.py on
├─2896 /usr/bin/python3 /usr/bin/rockpi-sata/main.py on
├─2897 /usr/bin/python3 /usr/bin/rockpi-sata/main.py on
└─2898 /usr/bin/python3 /usr/bin/rockpi-sata/main.py on

Dec 25 17:16:57 ubuntu python3[2899]: self._target(*self._args, **self._kwargs)
Dec 25 17:16:57 ubuntu python3[2899]: File “/usr/bin/rockpi-sata/fan.py”, line 81, in running
Dec 25 17:16:57 ubuntu python3[2899]: change_dc(get_dc())
Dec 25 17:16:57 ubuntu python3[2899]: File “/usr/bin/rockpi-sata/fan.py”, line 75, in change_dc
Dec 25 17:16:57 ubuntu python3[2899]: gpio.hardware_PWM(12, 25000, dc * 10000)
Dec 25 17:16:57 ubuntu python3[2899]: File “/usr/local/lib/python3.8/dist-packages/pigpio.py”, line 2044, in hardware_PWM
Dec 25 17:16:57 ubuntu python3[2899]: return _u2i(_pigpio_command_ext(
Dec 25 17:16:57 ubuntu python3[2899]: File “/usr/local/lib/python3.8/dist-packages/pigpio.py”, line 1062, in _pigpio_command_ext
Dec 25 17:16:57 ubuntu python3[2899]: sl.s.sendall(ext)
Dec 25 17:16:57 ubuntu python3[2899]: AttributeError: ‘NoneType’ object has no attribute ‘sendall’
      
      





Was bis auf die GPIO-Initialisierungsmethode nichts Interessantes ist. Dafür steht dort eine ganze Klasse:



class MockPigpio:
    @classmethod
    def pi(cls):
        try:
            host = misc.check_output("netstat -l | grep -o '\S*:8888' | tr -d ':8888'")
            gpio = pigpio.pi(host=host)
        except Exception:
            gpio = cls()
        return gpio

    def __init__(self):
        syslog.syslog('PWM of pigpio is not available. Use on/off to control the fan.')
        syslog.syslog('If you use pre-release kernel, please go back to stable release.')

    def hardware_PWM(self, pin, _, dc):
        misc.set_mode(pin, bool(dc))

gpio = MockPigpio.pi()
      
      





Ich habe mich gefragt, wie dieser Wert zum Initialisieren des Hosts verwendet wird, der vom Befehl netstat -l | angezeigt wird grep -o '\ S *: 8888' | tr-d ': 8888'?



ipv6-localhost
      
      





Wenn IPv6 deaktiviert ist, gibt der Befehl eine leere Zeile aus und das Skript funktioniert nicht. Ehrlich gesagt bin ich zuerst den langen Weg gegangen. Ich habe mir das Python-Modul pigpio.py angesehen, in dem die Initialisierung des Hosts ausführlich beschrieben wurde, und festgestellt, dass die pigpio.pi () -Methode im Prinzip kein Argument benötigt. Nachdem ich die Optionen zum Aufrufen dieser Methode ohne Argument, mit dem lcoalhost-Argument und anderen Optionen, an die ich mich nicht mehr erinnere, im fan.py-Skript erfolglos ausprobiert hatte, stellte ich fest, dass ich nicht schlauer als die Autoren bin, und ging den einfachen Weg. Tatsache ist, dass das PIGPIO-Modul im IPv4-Modus aufgerufen werden kann. Dazu müssen Sie nur eine Datei bearbeiten:



$ sudo nano /lib/systemd/system/pigpiod.service
      
      





Korrigieren Sie den ExecStart-Parameter auf den folgenden Wert



ExecStart=/usr/local/bin/pigpiod -l -m -n 127.0.0.1 -p 8888
      
      





Nun der Befehl netstat -l | grep -o '\ S *: 8888' | tr -d ': 8888' Ausgänge:



localhost
      
      





und der Lüfter läuft!



Teil 3. Verkehr trennen



Außerdem wurden Raid Typ 1, Samba, OpenVPN, Übertragungsdämon und Killswitch für UFV eingerichtet. Die Beschreibung dieser Verfahren, denke ich, kann der durchschnittliche Leser selbst googeln.



Die Leistung des resultierenden Geräts ist grundsätzlich normal. Obwohl ich nicht verstehe, wo die Geschwindigkeit beim Kopieren abfällt. Hier ist ein Beispiel für das Kopieren eines Papas mit 39 Anime-Episoden mit einer Gesamtgröße von ca. 40 GB.



Bild



Und hier ist ein Beispiel für das Herunterladen einer großen Datei.



Bild



Es ist ersichtlich, dass das System jederzeit die gesamte Gigabit-Netzwerkressource nutzen kann. Ich habe mich noch nicht mit Drawdowns bei der Kopiergeschwindigkeit befasst.



Die zweite Gefahr betrifft nicht den Sata-Hut, sondern den Linux-Server als Objekt materieller Kultur. Die Aufgabe bestand darin, dass der Server für verschiedene Aufgaben verwendet wird: Es wird einen Webserver (Cloud) geben, auf den ich von außen klopfen werde, und eine nicht ausgewählte Bitstrompumpe über VPN. Das Problem stellte sich heraus, dass ich den Verkehr irgendwie trennen musste, damit alles parallel funktionierte. Mein erster Gedanke war, eine Firewall einzurichten. Ich habe die folgenden Regeln angewendet:



$ sudo ufw default deny incoming
$ sudo ufw default deny outgoing
$ sudo ufw allow in on eth0 from 192.168.178.1
$ sudo ufw allow out on eth0 to 192.168.178.1
$ sudo ufw allow in on eth0 from 192.168.178.20
$ sudo ufw allow out on eth0 to 192.168.178.20
$ sudo ufw allow in on eth0 from any to any port 22,443 proto tcp
$ sudo ufw allow out on eth0 from any to any port 22,443 proto tcp
$ sudo ufw allow in on eth0 from any to any port 1194 proto udp
$ sudo ufw allow out on eth0 from any to any port 1194 proto udp
$ sudo ufw allow out on tun0 from any to any
$ sudo ufw allow in on tun0 from any to any
      
      





Naiv glauben, dass alles gut funktionieren wird. Die Idee war, dass die Firewall möglicherweise alle Verbindungen über tun0 umleitet, mit Ausnahme einiger Verbindungen über ez0, die ich im lokalen Netzwerk verwende, und einiger Ports, die ich von außen auf den Server klopfen muss. Diese Konfiguration funktioniert problemlos in einem lokalen Netzwerk oder wenn VPN deaktiviert ist: Es werden keine anderen als die zulässigen Verbindungen hergestellt. Wenn vpn aktiviert ist, kann keine Verbindung außerhalb hergestellt werden. Pakete kommen an, aber Antworten werden nicht über ez0 umgeleitet, sondern dennoch über tun0 gesendet. Ich habe 2 Tage verbracht, aber immer noch nicht herausgefunden, wie ich das Problem beheben kann, und dann habe ich beschlossen, Docker auszuprobieren, da der Container, den ich brauchte, bereits vorhanden ist.



Dies war meine erste Erfahrung mit Docker. Es war schwierig für mich, ich habe nicht verstanden, wo ich anfangen soll, was der Unterschied zwischen Docker und Docker-Compose ist, was der Inhalt des Git aus dem Link ist, was das Image ist, was der Container ist. Ich verstehe immer noch nicht, wie ich diesen Container erstellt habe lokal und was der Docker komponiert aus dem Internet heruntergeladen, aber das Ding hat funktioniert.



Nach dem Entpacken des Repositorys müssen Sie die Datei docker-compose.yml bearbeiten. Und ändern Sie den Inhalt in:



version: '2'
services:
 transmission:
  image: haugene/transmission-openvpn
  container_name: vpntrans
  cap_add:
    - NET_ADMIN
  devices:
    - /dev/net/tun
  restart: always
  ports:
    - "9092:9091"
  dns:
    - 8.8.8.8
    - 8.8.4.4
#  sysctls:
    - net.ipv6.conf.all.disable_ipv6=1
  volumes:
    - /etc/localtime:/etc/localtime:ro
    - /mnt/raid0/downloads/:/data
  environment:
    - OPENVPN_PROVIDER=SURFSHARK
    - OPENVPN_CONFIG=mk-skp_udp
    - OPENVPN_USERNAME=*your username*
    - OPENVPN_PASSWORD=*your password*
    - OPENVPN_OPTS=--inactive 3600 --ping 10 --ping-exit 60
    - LOCAL_NETWORK=192.168.178.0/24
# proxy:
    - WEBPROXY_ENABLED=false
    - TRANSMISSION_PORT_FORWARDING_ENABLED=true
    - TRANSMISSION_PEER_PORT=51413
    - PUID=1000
    - PGID=100
      
      





Wenn Sie es in dieser Konfiguration für Ihre Anforderungen verwenden möchten, müssen Sie auf die Werte des externen (für den Container) Ports achten, auf den Pfad zu Ihrem, in dem der Übertragungsdämon Daten speichert, und wo Sie seine Einstellungen bearbeiten können, geben Sie die Parameter von ein lokales Netzwerk. Sie müssen auch Ihren VPN-Anbieter aus der Liste konfigurieren . Ich verwende einen Surfshark. Der Wert des Parameters OPENVPN_CONFIG bestimmt die Auswahl der Konfiguration (tatsächlich ist dieser Wert der Name der erforderlichen Konfigurationsdatei) * .ovpn-Datei des spezifischen Servers, zu dem Sie eine Verbindung herstellen möchten. In diesem Beispiel befindet sich der Server in der Republik Nordmakedonien.



Als nächstes erstellen und führen wir den Container mit unseren Einstellungen aus:



$ sudo docker-compose up
      
      





Wenn alles gut geht, sehen Sie am Ende des openvpn-Client-Protokolls den erfolgreichen Verbindungsaufbau. Ob gut oder nicht, Sie wissen nie, dass Sie einen anderen VPN-Anbieter verwenden, der zusätzliche Arbeitsstunden benötigt. Wenn alles in Ordnung ist, können Sie cntrl-s drücken und den Container als Prozess im Hintergrund starten. Der Container weiß übrigens bereits, wie er sich beim Systemstart selbst startet und im Fehlerfall neu startet.



$ sudo docker start vpntrans
      
      





Um die Paranoia zu beruhigen, können Sie zur Konsole im Container gehen:



$ sudo docker exec -ti vpntrans /bin/bash
      
      





Und überprüfen Sie die öffentliche IP-Adresse:



$ curl ifconfig.co/json
      
      





Wenn alles gut gegangen ist, sollte die Schlussfolgerung folgendermaßen lauten:



Bild



Trotzdem ist ein solcher Test wenig nützlich, um die stark geschwungene Paranoia zu beruhigen. Deshalb habe ich einen Hai verwendet und die Verbindungen beobachtet, während ich einen Torrent mit einer beliebten Linux-Distribution heruntergeladen habe, beispielsweise Ubunta. Nachdem nicht verwandte Verbindungen zu Geräten im lokalen Netzwerk, dem VPN-Server sowie einigen automatischen Broadcasts von der Ausgabe ausgeschlossen wurden, ist beim Herunterladen des Ubuntu-Images nichts Verdächtiges passiert:



sudo tshark -i eth0 | grep -v "192.168.178.1" | grep -v "192.168.178.20" | grep -v "185.225.28.109" | grep -v "AVMAudio" | grep -v "SSDP" | grep -v "MDNS" | grep -v "LLMNR"
      
      





Bild



Aber was passiert, wenn openvpn seine Verbindung verliert oder der Dienst plötzlich beendet wird? Das oberste Dienstprogramm wird im Container ausgeführt. Die Ausgabe sieht



Bild

ungefähr so ​​aus: Beenden Sie den openvpn-Prozess:



$ kill -9 6
      
      





Danach wurde der Container neu gestartet. Ich habe später irgendwo in den Foren gelesen, dass der Container so konfiguriert ist, dass der Container einfach neu gestartet wird, wenn die Verbindung zu openvpn unterbrochen wird oder dieser Prozess endet. So ist der Killswitch. Ich war zufrieden



Teil 4. Cloud



Ich habe die NextCloud-Cloud ausgewählt und jeweils eine Anleitung installiert . Der Hauptunterschied zwischen meinem Setup besteht darin, dass ich andere Apache- und Pkhp-Rüben verwendet habe:



$ sudo add-apt-repository ppa:ondrej/apache2
$ sudo add-apt-repository ppa:ondrej/php
      
      





Nach der Konfiguration der NextCloud empfehle ich, die Warnungen im Admin-Bereich zu überprüfen und zu beheben.



Bild



Korrekturen
. . :



$ cd /var/www/nextcloud/
$ sudo -u www-data php occ db:add-missing-indices
      
      





:



$ sudo apt install php-bcmath php-imagick
      
      





, . - , , . :



$ sudo apt install redis-server php-memcached memcached php-apcu -y
      
      





:



$ sudo systemctl start redis-server
$ sudo systemctl enable redis-server
$ sudo systemctl start memcached
$ sudo systemctl enable memcached
      
      





:



$ sudo nano /etc/redis/redis.conf
      
      





:



	port 0
	unixsocket /var/run/redis/redis.sock
	unixsocketperm 700
      
      





:



$ sudo usermod -aG redis www-data
      
      





, :



$ sudo nano /var/www/nextcloud/config/config.php
      
      





);



'memcache.local' => '\OC\Memcache\APCu',
  'memcache.locking' => '\\OC\\Memcache\\Redis',
  'redis' =>
   array (
    'host' => '/var/run/redis/redis.sock',
    'port' => 0,
    'timeout' => 0,
    'password' => '',
    'dbindex' => 0,
),
      
      





:



$ sudo nano /etc/php/7.4/apache2/php.ini
      
      





	opcache.enable=1
	opcache.enable_cli=1
	opcache.interned_strings_buffer=8
	opcache.max_accelerated_files=10000
	opcache.memory_consumption=128
	opcache.save_comments=1
	opcache.revalidate_freq=1
      
      





:



$ sudo systemctl restart apache2
      
      







Die Cloud kann theoretisch als Netzwerklaufwerk über WebDAV verbunden werden, aus irgendeinem Grund jedoch nicht unter Windows 10. Mit dem Dienstprogramm Cyberduck habe ich den Betrieb der Cloud in einem lokalen Netzwerk getestet. Wie Sie in den folgenden Screenshots sehen können, erreichen die Upload-Geschwindigkeiten in die Cloud akzeptable 12 MB / s und die Downloads aus der Cloud ordentliche 35 MB / s. Die Geschwindigkeitsdaten wurden bei aktivierter Verschlüsselung in der Cloud mit dem Schlüssel pca4096 abgerufen.



Bild



Bild



Teil 5. Stromverbrauch



Anfangs wollte ich diesem Server eine Woche Zeit zum Ausführen geben, um Statistiken mit dem Leistungsmesser zu erstellen. Leider habe ich nicht herausgefunden, wie dieser Leistungsmesser richtig konfiguriert werden kann, daher werde ich ein Bild mit Daten von der Anzeige geben. Wie Sie sehen können, verbraucht das System im Leerlauf 8,5 W Energie und während der aktiven Synchronisation mit der Cloud (einem Ordner mit persönlichen Daten von etwa 200 GB Größe) bis zu 16,88 W. Detaillierte Statistiken würden es uns ermöglichen, den Durchschnittswert des Stromverbrauchs pro Tag zu berechnen. Aufgrund seiner Abwesenheit und der Annahme, dass der Server die meiste Zeit im Leerlauf ist, nehme ich auf einen Blick 10 W für den Durchschnittswert des Stromverbrauchs, was Folgendes ergibt:



Bei aktuellen Preisen von 0,31 € pro 1 kWh betragen die monatlichen Kosten für die Serverwartung ca. 2,23 €, was keinen großen Einfluss haben dürfte auf meinen durchschnittlichen Energieverbrauch. Sobald wir den Verbrauch und die Kosten herausgefunden haben, schlage ich vor, eine kleine Bewertung der Finanzinvestitionen vorzunehmen und mit den Angeboten virtueller Server auf dem Markt zu vergleichen. Leider habe ich keinen vergleichbaren Vergleich erhalten, da der Marktfürvirtuelle Server meines Wissens bietet102430=7,2







Bild



entweder Leistungsserver oder Speicherserver. Angenommen, der resultierende Heimserver ist in seiner Leistung mit Speicherservern vergleichbar, und analysieren Sie die aktuellen Preise. Wie Sie dem Link entnehmen können, kostet das Mieten eines Servers mit 2 TB Festplattenspeicher 100 € pro Jahr. Die jährliche Stromrechnung für meinen Heim-Miniserver auf der 4. Himbeere sollte ca. 27,16 € kosten. Mit 348,07 € stellt sich heraus, dass die Amortisation des Heimservers Folgendes in Anspruch nehmen wird:



so lange, und der Leser wird im Prinzip Recht haben, entschieden, dass es sich nicht gelohnt hat. 348,07/(100/27,16/)=4,78







Betrachten wir eine weitere Option mit einem Upgrade auf 4 TB Festplattenspeicher. Im Falle eines Heimservers würde ich zusätzlich 2 Festplatten mit jeweils 2 TB kaufen, was zu aktuellen Preisen bei Amazon zusätzliche 127,62 € ergibt. Der Serververbrauch muss steigen und wird durchschnittlich 18 Watt betragen. Dies ergibt eine jährliche Stromrechnung von 48,88 €. Vergleichen wir nun die Kosten eines 4-TB-Speicherservers (340 € pro Jahr) und schätzen den Return on Investment:



was für eine kurze Zeit, und sieht nicht mehr als kontroverse Investition aus. 475,69/(340/48,88/)=1,63







Fazit



In diesem Beitrag haben wir etwas über einen wunderbaren Sata-Hut für die 4. Himbeere und über einen darauf basierenden niedlichen Wal für einen Heimserver erfahren. Wir haben die Leistung dieses Systems am Beispiel des Kopierens von Dateien über das Netzwerk sowie die Leistung der auf diesem Server ausgeführten NextCloud-Cloud untersucht. Die Themen Stromverbrauch, Kosten und Kosten für diesen Server werden ebenfalls nicht außer Acht gelassen. Vielen Dank für das Lesen dieses Materials. Kritische Kommentare zu den vorgestellten Lösungen sind willkommen.



Insbesondere möchte ich den Leser bitten, seine Erfahrungen zu folgenden Themen mitzuteilen:



  1. ZFS?
  2. Netzwerkkopiergeschwindigkeit sinkt, was tun?
  3. Apache oder trotzdem?
  4. Welches Ups soll ich wählen?
  5. Warum umgeht Docker die VPN-Regeln?



All Articles