MariaDB

Sobald Docker läuft, starten wir als erstes einen Datenbank-Server, da dieser von anderen Containern genutzt wird. Als erstes müssen wir einen Benutzernamen (üblicherweise root) und ein Passwort für die Datenbank in unserer Secrets-Datei eintragen:

sudo nano /docker/docker-compose/secrets/.env

Die folgenden Zeilen einfügen und speichern:

# Maria-DB
DB_USER=root
DB_PASSWORD=<db_root_password>

Jetzt können wir den Ordner und die Datei für Docker Compose erzeugen:

mkdir/docker/docker-compose/mariadb
nano /docker/docker-compose/mariadb/docker-compose.yml

Die folgenden Zeilen in docker-compose.yml kopieren und speichern:

services:
  mariadb:
    container_name: "mariadb"
    environment:
      - "MYSQL_ROOT_PASSWORD=$DB_PASSWORD"
      - "TZ=$TZ"
    image: "mariadb:latest"
    networks:
      - "mysql"
    restart: "always"

networks:
  mysql:
    external: true
    name: "mysql"

So wird ein Container namens „mariadb“ erzeugt und ein internes Netzwerk „mysql„, um aus anderen Containern darauf zuzugreifen. Jetzt starten wir ihn, indem wir unser Skript docker-compose aufrufen:

cd /docker/docker-compose/mariadb
docker-compose

phpMyAdmin

Um die Datenbanken einfach verwalten zu können, empfehle ich die Installation von phpMyAdmin:

mkdir/docker/docker-compose/phpmyadmin
nano /docker/docker-compose/phpmyadmin/docker-compose.yml

Dann denn folgenden Text einfügen:

services:
  phpmyadmin:
    container_name: "phpmyadmin"
    image: "phpmyadmin"
    ports:
      - "8088:80"
    restart: "unless-stopped"
    environment:
      PMA_HOST: mariadb
    networks:
      - mysql

networks:
  mysql:
    external: true

Auch diesen Container starten wir mit Hilfe unseres Skripts docker-compose:

cd /docker/docker-compose/phpmyadmin
docker-compose

Jetzt kann man einen Browser öffnen und sich über die folgende URL am Datenbank-Server anmelden:

http://<server-ip>:8088/

Anmeldedaten sind der Benutzer (root) und das Passwort (<db_root_password>), das wir vorher konfiguriert haben.

Jetzt müssen noch die Konfigurationstabellen für phpMyAdmin angelegt werden. Dazu muss zunächst ein Benutzer pma angelegt werden (im Menü „Benutzerkonten“). Dann muss das Skript von GitHub heruntergeladen werden. Ganz oben die folgenden Zeilen aktivieren und dabei das @localhost entfernen:

GRANT SELECT, INSERT, DELETE, UPDATE, ALTER ON `phpmyadmin`.* TO
   'pma';

Das so modifizierte Skript jetzt unter „SQL“ einfügen und ausführen.

Anmerkung

Zum Installieren zusätzlicher Themes, das entsprechende ZIP-File herunterladen und entpacken (z.B. mit unzip darkwolf-5.2.zip). Das entpackte Verzeichnis dann in den Container kopieren mit

sudo docker cp darkwolf phpmyadmin:/var/www/html/themes/darkwolf

Docker     


Wenn Sie diese Felder durch einen Klick aktivieren, werden Informationen an Facebook, Twitter, Flattr, Xing, t3n, LinkedIn, Pinterest oder Google eventuell ins Ausland übertragen und unter Umständen auch dort gespeichert. Näheres erfahren Sie durch einen Klick auf das i.

Veröffentlicht unter Database, Deutsch, Home Server | Verschlagwortet mit | Schreib einen Kommentar

Docker-Installation

Nachdem die Grundlagen eingerichtet sind, können wir Docker installieren, um unsere Anwendungen auszuführen.

Installation

Wir folgen den Schritten aus dem original „Installation Guide„. Dabei verwenden wir die neueste Version von Docker aus dem apt-Verzeichnis.

Anmerkung:
Da mich irgendwann der „overcommit error“ erwischt hat, schlage ich vor, die notwendigen Änderungen sofort durchzuführen. Der nötige Aufruf lautet:

echo "vm.overcommit_memory = 1" | sudo tee /etc/sysctl.d/nextcloud-aio-memory-overcommit.conf

Und jetzt müssen wir den Rechner neu starten.

sudo reboot

Verzeichnisstruktur

Als nächstes erzeugen wir die Verzeichnisstruktur, die wir für unser Setup brauchen. Dies ist ein Vorschlag und man kann das komplett anders machen, aber alle zukünftigen Beiträge werden mit diesem Setup arbeiten.

Zuerst erzeugen wir zwei Verzeichnisse für die Docker-Compose-Dateien und die Laufzeitdaten:

cd /
sudo mkdir docker
chown <username>:<groupname> docker
cd docker
mkdir docker-compose
mkdir docker-data

Jetzt erzeugen wir im Docker-Compose-Verzeichnis ein Unterverzeichnis für die „Secrets“, also Passwörter etc., die nicht jeder lesen soll. Wir packen diese deshalb in ein Verzeichnis, auf das nur der Superuser zugreifen kann:

cd docker-compose
mkdir secrets
sudo chown root:root secrets
sudo chmod 600 secrets

Als nächstes erzeugen wir die ersten beiden Secrets, nämlich Benutzername und Kennwort für die Anmeldung am SMTP-Server (da einige Container später E-Mails verschicken wollen).

sudo nano secrets/.env

In dieser Datei speichern wir die Secrets. Für’s erste kopieren wir die folgenden beiden Zeilen in die Datei, passen sie für den SMTP server an, und speichern die Datei:

SMTP_USERNAME=<username for your SMTP server>
SMTP_PASSWORD=<password>

Schließlich definieren wir noch globale Einstellungen, die wir später in den Docker-Compose-Dateien verwenden:

nano .env

Es gibt eine Reihe von Einstellungen, die wir ständig nutzen werden, daher kopieren wir die folgenden Zeilen in die leere Datei und passen sie an:

# general server settings
SERVER_IP=<server-ip>
PUID=<your UID>
PGID=<your GID>
TZ="Europe/Berlin"

# general path settings
DOCKER_ROOT="/docker"
DOCKER_COMPOSE_DIR="$DOCKER_ROOT/docker-compose"
DOCKER_DATA_DIR="$DOCKER_ROOT/docker-data"
SECRETS_DIR="$DOCKER_COMPOSE_DIR/secrets"

# email settings
SMTP_SERVER=<your SMTP server, e.g. smtp.gmail.com:587>
DEFAULT_EMAIL=<email used for sending>

Man kann UID und GID bestimmen, indem man id aus der Shell aufruft. Das Ergebnis sieht dann so aus:

uid=<your UID>(<username>) gid=<your GID>(<username>) groups=1000(<username>), …

Als letzten Schritt brauchen wir noch ein Skript, das die globalen Einstellungen nutzt, wenn wir docker compose aufrufen:

cd ~
mkdir -p .local/bin
echo > .local/bin/docker-compose
chmod a+x .local/bin/docker-compose
nano .local/bin/docker-compose

Dies erzeugt eine leere, ausführbare Datei und öffnet sie im Editor. Dorthin kopieren wir jetzt das folgende Skript und speichern es ab:

#!/bin/bash

# Script for calling docker compose

sudo docker compose --env-file /docker/docker-compose/.env --env-file /docker/docker-compose/secrets/.env up -d

Und fertig! Anstatt Docker Compose direkt aufzurufen, um einen Container zu starten, rufen wir ab sofort docker-compose auf.

Warum ein Skript, anstatt einfach docker compose aufzurufen? Nun, damit die Secrets und globalen Einstellungen funktionieren, müssen wir sie als „Environment Files“ angeben. Und weil ich faul bin und vermutlich den korrekten Aufruf sowieso vergessen werde, ist es einfacher, das in ein Skript zu packen.

LVM-Partition     MariaDB


Wenn Sie diese Felder durch einen Klick aktivieren, werden Informationen an Facebook, Twitter, Flattr, Xing, t3n, LinkedIn, Pinterest oder Google eventuell ins Ausland übertragen und unter Umständen auch dort gespeichert. Näheres erfahren Sie durch einen Klick auf das i.

Veröffentlicht unter Home Server | Verschlagwortet mit | Schreib einen Kommentar

Standard Ubuntu LVM-Partition erweitern

An diesem Punkt gibt es wieder einen Einschub, weil ich einige Zeit gebraucht habe, das Problem zu lösen.

Nachdem ich Ubuntu, wie vorher beschrieben, installiert hatte, schien alles sauber zu laufen, bis ich feststellen musste, dass das Hauptlaufwerk (das in Ubunut ‚/‘ zugeordnet ist) kaum noch Platz hatte. Da ich dafür ein Laufwerk mit 512GB nutze, war ich etwas schockiert.

Zunächst habe ich auf dem Laufwerk nach den größten Ordnern gesucht, um den Schuldigen zu finden. Am einfachsten geht das mit dem nCurses Disk Usage Werkzeug. Man kann es folgendermaßen installieren:

sudo apt-get install ncdu

Anschließend kann man es für den root-Ordner wie folgt ausführen:

sudo ncdu /

Man bekommt eine Anzeige ähnlich der folgenden, wobei die Ordner nach Größe sortiert sind:

Auch wenn das Tool sehr nützlich ist, habe ich keinen übermäßig großen Ordner gefunden. Was jetzt? Nachdem ich noch einmal df -h ausgeführt hatte, um die Größe der Laufwerke erneut zu überprüfen, stellte ich fest, dass die Zeile für den root-Ordner ungefähr so aussah:

/dev/mapper/ubuntu--vg-ubuntu--lv  4,0G   3,6G  0,4G  90% /

Mein root-Ordner hatte also nur 4GB Platz, wovon 90% schon benutzt waren. Aber warum? Wie gesagt, ich hatte eine 512GB SSD eingebaut. Eine weitere Suche, besonders die Suche nach dem Namen des Dateisystems (ubuntu--vg-ubuntu--lv), führte zur Lösung. Die LVM-Partition (Logical Volume) nutzte nicht den ganzen Platz der Laufwerksgruppe. Ubuntu benutzt Laufwerksgruppen und darin logische Laufwerke, denen dann der root-Ordner zugeordnet wird. Weitere Details sind hier zu finden.

Als erstes habe ich dann sudo vgdisplay ausgeführt, um nachzusehen, ob noch freier Platz in der Laufwerksgruppe verfügbar war. Und natürlich waren noch mehr als 470GB frei (siehe „Free PE / Size“).

  --- Volume group ---
  VG Name               ubuntu-vg
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <473,89 GiB
  PE Size               4,00 MiB
  Total PE              121315
  Alloc PE / Size       922 / <3,61 GiB
  Free  PE / Size       121315 / <473,89 GiB
  VG UUID               bTkwD5-jadm-RbQB-1Hh1-2P4M-FiYW-EfPLfm

Ein Aufruf von sudo lvdisplay bestätigte dann, dass das logische Laufwerk viel kleiner war:

  --- Logical volume ---
  LV Path                /dev/ubuntu-vg/ubuntu-lv
  LV Name                ubuntu-lv
  VG Name                ubuntu-vg
  LV UUID                W8dT1K-3aK9-rbjS-kO03-R6Os-8c52-jlwS5K
  LV Write Access        read/write
  LV Creation host, time ubuntu-server, 2023-12-04 11:43:11 +0100
  LV Status              available
  # open                 1
  LV Size                <4,0 GiB
  Current LE             922
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:0

Jetzt einfach  lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv ausgeführt, um den kompletten freien Platz in der Laufwerksgruppe zu nutzen, und dann mit sudo lvdisplay überprüft:

  --- Logical volume ---
  LV Path                /dev/ubuntu-vg/ubuntu-lv
  LV Name                ubuntu-lv
  VG Name                ubuntu-vg
  LV UUID                W8dT1K-3aK9-rbjS-kO03-R6Os-8c52-jlwS5K
  LV Write Access        read/write
  LV Creation host, time ubuntu-server, 2023-12-04 11:43:11 +0100
  LV Status              available
  # open                 1
  LV Size                <473,89 GiB
  Current LE             121315
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:0

Voilá, mein root-Ordner hatte jetzt allen Platz, den er braucht, wie ein erneuter Aufruf von df -h bestätigte:

/dev/mapper/ubuntu--vg-ubuntu--lv  466G   94G  353G  21% /

Eigene Domäne     Docker


Wenn Sie diese Felder durch einen Klick aktivieren, werden Informationen an Facebook, Twitter, Flattr, Xing, t3n, LinkedIn, Pinterest oder Google eventuell ins Ausland übertragen und unter Umständen auch dort gespeichert. Näheres erfahren Sie durch einen Klick auf das i.

Veröffentlicht unter Home Server | Verschlagwortet mit | Schreib einen Kommentar

Einrichtung der eigenen Domäne

Um den Heimserver aus dem Internet erreichen zu können, braucht man zunächst eine eigene Domäne, über die man auf den eigenen Server zugreift. Ich zeige die Einrichtung am Beispiel von dynv6 und Ionos, aber es kann auf ähnliche Art auch mit anderen Anbietern umgesetzt werden.

Falls man eine feste IP-Adresse hat, ist es einfach. Man muss diese nur mit einer Domäne verknüpfen, indem man sich einen Anbieter für Domänennamen aussucht, und dort die eigene IP-Adresse im A- (für IPv4) bzw. AAAA-Record (für IPv6) hinterlegt. Dann kann man den folgenden Teil überpringen und mit der Port-Weiterleitung weitermachen.

Statischer Name für Dynamische IP-Adresse

In den meisten Fällen bekommt man vom Anbieter aber eine dynamische IP-Adresse zugewiesen. In diesem Fall muss man einen DynDNS-Anbieter (steht für Dynamic Domain Name System) wie dynv6 nutzen. Richtet man dort eine Domäne ein und informiert den Dienst in regelmäßigen Abständen über die eigene IP-Adresse, werden die A- und AAAA-Records regelmäßig auf die dann jeweils gültige IP-Adresse aktualisiert.

Bei dynv6 legt man sich hierfür zunächst eine Domäne an. Das kann ein Domänenname bei dynv6 selbst sein (dann wäre der Domänenname z.B. ich.dynv6.net), oder aber ein Domänenname, den man bereits besitzt.

Existierende Domäne

Letzteres war bei mir der Fall. Ich habe schon eine Domäne bei Ionos und habe entschieden, meinen Heimserver über „home.<meinedomaene>“ erreichbar zu machen. Dazu muss man bei Ionos die Verwendungsart der Subdomäne so konfigurieren, dass ein eigener Nameserver genutzt wird.

Dann konfiguriert man die Nameserver, indem man alle existierenden Einträge für die Subdomäne löscht und dafür drei NS-Records für die Nameserver von dynv6 anlegt (ns1.dynv6,com, ns2.dynv6,com und ns3.dynv6,com). Am Schluss soll das dann so aussehen:

Ruft man anschließend diese Subdomäne auf, wird der Aufruf an den dynv6-Nameserver geschickt, der dann über die konfigurierte IP-Adresse auf den Heimserver zugreift.

Grundsätzliche Einrichtung

Als Typ für die Domäne wählt man bei dynv6 „Single Zone“ aus. Es wird dann neben der Domäne selbst unter „Zones“ eine zugehörige Zone erstellt. Diese sollte man jetzt anpassen, sonst kann man nicht alle Subdomänen an den Heimserver weiterleiten (und das wollen wir später machen). Dazu die Zone auswählen und unter „Records“ wie folgt anpassen:

  • Erstmal alles löschen, was schon dort steht.
  • Einen Eintrag vom Typ „A“ einfügen. Unter „Name“ *.<domain> eintragen und „Data“ leer lassen.
  • Einen Eintrag vom Typ „AAAA“ einfügen. Unter „Name“ <domain> eintragen und bei „Data“ den Host-Teil der IPv6-Adresse einfügen, also die IPv6-ID des Heimservers. In einer Fritzbox findet man diese wenn man unter „Heimnetz–Netzwerk“ die Daten des Heimservers öffnet. Sie steht dort unter „IPv6 Interface-ID“. Nach der Eingabe wird dann übrigens die gesamte IPv6-Adresse angezeigt (also acht Blöcke mit je vier Stellen, nicht nur vier Blöcke). Nicht wundern. Klickt man „Edit“, um sie zu ändern, ist auch weiterhin nur die Interface-ID eingetragen.

Das Ergebnis sieht dann in der Tabelle etwa so aus:

TypeName Data 
A*.<domain>not set <IPv4 address> edit  delete
AAAA<domain><IPv6 address> edit  delete

Jetzt fehlt nur noch der letzte Schritt. In den Einstellungen der Zone steht unter „Instructions“ wie man die IP-Adresse regelmäßig aktualisiert. In der Fritzbox ist das ziemlich einfach, weil es dort einen entsprechenden Eintrag gibt. Leider passen die Anweisungen zumindest bei der Fritzbox nicht für IPv6, da dann die IPv6-Adresse der Fritzbox, aber nicht des Heimservers eingetragen wird. Stattdessen muss die Konfiguration folgendermaßen geändert werden:

http://dynv6.com/api/update?hostname=<domain>&token=<username>&ipv4=<ipaddr> http://dynv6.com/api/update?hostname=<domain>&token=<username>&ipv6=::homeserver-id&ipv6prefix=<ip6lanprefix>

Dabei ist homeserver-id zu ersetzen durch die im AAAA-Eintrag konfigurierte IPv6-ID des Heimservers. Also z.B. ::1234:567:890:abcd.

Hat man keine Fritzbox oder einen anderen Router, der die DynDNS-Benachrichtigung erledigt, muss man die Aktualisierung der IP-Adresse im „schlimmsten“ Fall über ein Skript machen, das man z.B. hier finden kann.

Wenn alles korrekt eingerichtet ist, sollte die Eingabe von http://<domain> die Seite des Routers öffnen, wobei Änderungen an A- und AAAA-Records gerne mal ein paar Minuten dauern können.

Port-Weiterleitung

Um den Zugriff aus dem Intranet über HTTP und HTTPS an den Heimserver zu ermöglichen, muss man im Router jetzt noch Port-Weiterleitungen hierfür einrichten. HTTP wird dabei in der Regel über Port 80 und HTTPS über Port 443 abgewickelt. Theoretisch kann man auch andere Ports nutzen und dann am Heimserver auch entsprechend konfigurieren, aber dann muss man im Browser immer Ports mit angeben. Und sicherer ist es auch nicht wirklich, weil ein einfacher Port-Scan letztlich offenlegt, welche Ports man stattdessen nutzt. Es ist also nur unnötiger Aufwand.

Während der Einrichtung empfiehlt es sich, auch noch die Ports 21 (FTP) und 22 (SSH) durchzureichen, falls man etwas von unterwegs konfigurieren möchte. Später kann man diese Ports dann wieder entfernen, um mögliche Angriffe von außen zu erschweren.

Hier ein Screenshot von der Fritzbox für die Weiterleitungen für IPv4 (links) und IPv6 (rechts):

Theoretisch kann man auch auf Port 80 verzichten, um alles über das sicherere HTTPS abzuwickeln. Da ich aber ein fauler Mensch bin, und lieber app.home.meinedomaene im Browser eingebe als https://app.home.meinedomaene, habe ich das anders gelöst. Der Reverse Proxy (dazu kommen wir später noch) lenkt alle HTTP-Anfragen im Browser um auf HTTPS. Damit erreiche ich das selbe, erleichtere mir aber die Eingabe im Browser.

Laufwerke     LVM-Partition


Wenn Sie diese Felder durch einen Klick aktivieren, werden Informationen an Facebook, Twitter, Flattr, Xing, t3n, LinkedIn, Pinterest oder Google eventuell ins Ausland übertragen und unter Umständen auch dort gespeichert. Näheres erfahren Sie durch einen Klick auf das i.

Veröffentlicht unter Home Server | Verschlagwortet mit | Schreib einen Kommentar

Inaktive Laufwerke zum Schlafen bringen

An diesem Punkt würde ich gerne kurz einen Punkt anreißen, der wirklich genervt hat, und mich etwas Zeit gekostet hat. Es geht darum, ein Laufwerk abzuschalten, wenn es inaktiv ist. Wie zuvor beschrieben, habe ich mir ein 5TB USB-3.0-Laufwerk von Western Digital als externe Festplatte für zusätzlichen Speicher gekauft. Sobald ich sie an den PC angeschlossen hatte, ist sie nie in den Ruhezustand gegangen, sondern hat sich ständig weitergedreht. Abgesehen von der Abnutzung des Laufwerks, erzeugt das natürlich ein ständiges Hintergrundgeräusch, das ich loswerden wollte.

Einige Nachforschungen haben dann gezeigt, dass unter Ubuntu Laufwerke nicht automatisch in den Ruhezustand gehen. Es gibt aber einen Weg, dies zu erreichen, und es funktioniert bei mir jetzt perfekt. Zunächst musst Du ermitteln, ob der Controller Deiner Festplatte hdparm unterstützt. Dazu startest Du

sudo hdparm -C /dev/sdc

Wenn der Zustand des Laufwerks z.B. als active/idle angegeben wird, wird es unterstützt, ansonsten nicht. In meinem Fall war die Meldung: drive state is: unknown.

Egal, ob hdparam unterstützt wird, oder nicht, musst Du jetzt die UUID des Laufwerks ermitteln, indem Du eingibst:

sudo blkid

Suche die UUID für das entsprechende Laufwerk, z.B.

/dev/sdc1: LABEL="Elements" BLOCK_SIZE="512" UUID="FCD216FAD216B8BA" TYPE="ntfs" PARTLABEL="Elements" PARTUUID="7902be53-dd2a-4613-b580-c89f0525e4fc"

Wenn hdparam von Deinem Laufwerk unterstützt wird, passe /etc/hdparm.conf an, indem Du die folgenden Zeilen am Ende einfügst, um die Verzögerung zu setzen, nach der das Laufwerk in den Ruhezustand gehen soll (die Zeit wird in 5-Sekunden-Schritten angegeben, hier also 60 * 5 Sekunden, bzw. 5 Minuten):

/dev/disk/by-uuid/FCD216FAD216B8BA {
        spindown_time = 60
}

Es gibt Laufwerke, die zwar den Zustand beim Aufruf von hdparam korrekt wiedergeben, das Setzen des Ruhezustands aber trotzdem nicht unterstützen. In diesem Fall, oder wenn hdparam gar nicht unterstützt wird, und das Laufwerk den Zustand unknown liefert, versuche es mit hd-idle. Du musst es zunächst installieren:

sudo apt install hd-idle

Falls das nicht funktioniert, installiere es manuell:

wget https://www.foxplex.com/components/uploads/gDzcGMoX-hd-idle_1.05_amd64.deb

Das Paket bekommst Du dabei von hier (siehe Abschnitt „Einstellung per hd-idle / für harte Fälle“) und installierst es dann so:

sudo dpkg -i gDzcGMoX-hd-idle_1.05_amd64.deb

Passe die Konfiguration an über

sudo nano /etc/default/hd-idle

Ändere die folgenden Zeilen, bzw. füge sie ein (die Zeit für -i wird dabei in Sekunden angegeben, hier also 5 Minuten):

START_HD_IDLE=true

HD_IDLE_OPTS="-i 0 -a /dev/disk/by-uuid/FCD216FAD216B8BA -i 300 -l /var/log/hd-idle.log"

Starte den Dienst und aktiviere ihn, so dass er ab jetzt bei jedem Neustart des PC automatisch gestartet wird:

sudo systemctl start hd-idle
sudo systemctl enable hd-idle

Ab sofort wird das Laufwerk immer nach der konfigurierten Zeit in den Ruhezustand gehen, wenn es inaktiv ist.

Um es sofort manuell in den Ruhezustand zu versetzen, starte

sudo hdparm -y /dev/sdc

wenn hdparam unterstützt wird. Andernfalls starte

sudo hd-idle -t sdc

Anmerkung:
Diese Seite enthält „Affiliate Links“ zu Amazon. Natürlich kannst Du Deine Hardware irgendwo bestellen, aber es wäre schön, wenn Du es über die Links machen könntest, so dass ich eine kleine Anerkennung für die Arbeit bekäme, das alles hier aufzuschreiben. 😉

Ubuntu     Eigene Domäne


Wenn Sie diese Felder durch einen Klick aktivieren, werden Informationen an Facebook, Twitter, Flattr, Xing, t3n, LinkedIn, Pinterest oder Google eventuell ins Ausland übertragen und unter Umständen auch dort gespeichert. Näheres erfahren Sie durch einen Klick auf das i.

Veröffentlicht unter Home Server | Schreib einen Kommentar

Ubuntu-Installation

Da www.libe.net eine sehr gute Installationsanleitung anbietet, und zwar hier (in den Schritten unten verlinke ich auch auf deren Screenshots), und auch ein Video hier, werde ich nur schnell die Schritte aufführen, denen ich gefolgt bin, und die ich für wichtig halte. Im Prinzip folgen sie der offiziellen Ubuntu-Anleitung, um Ubuntu von einem USB-Stick zu installieren, die hier gefunden werden kann.

Wenn das Installationsmedium (DVD oder USB-Stick) eingelegt oder angeschlossen ist, und der PC neu gestartet wird, erscheint der GRUB-Bootloader. Falls nicht, folge bitte diesen Schritten.

Als erstes wählen wir die Option, Ubuntu zu installieren.

GRUB Menu

Installationsart ist ein Standard Ubuntu-Server:

Installation Type

Der Assistent leitet uns durch die Netzwerkeinstellungen und die Einrichtung des Benutzerprofils::

Network Selection

Basic Setup

Ich habe mini-pc als Hostname eingetragen, aber Du kannst hier angeben, was Du willst (solange Ubuntu den Namen unterstützt). Hier, legt man auch Benutzername und Kennwort fest.

Um den Server „headless“ über das Netzwerk verwalten zu können, musst Du noch den OpenSSH-Server installieren:

OpenSSH OptionWährend der Installation könnte Docker leicht als „featured server snap“ aktiviert werden, aber mach das bitte nicht! Wir werden Docker später über apt installieren.

Vergiß nicht, nach dem Neustart die Zeitzone am Server korrekt zu setzen! Dazu prüfst Du zunächste die eingestellte Zeitzone, indem Du timedatectl aufrufst. Falls die Zeitzone nicht stimmt, ermittele zunächst den korrekten Namen (hier am Beispiel von Berlin), indem Du folgendes eingibst:

timedatectl list-timezones | grep Berlin

Die Ausgabe sieht dann so aus:

Europe/Berlin

Jetzt kannst Du die Zeitzone entsprechend ändern:

sudo timedatectl set-timezone Europe/Berlin

Fertig! Du solltest jetzt einen funktionsfähigen Ubuntu-Server haben, und wir können mit den nächsten Schritten weitermachen.

Hardware     Laufwerke


Wenn Sie diese Felder durch einen Klick aktivieren, werden Informationen an Facebook, Twitter, Flattr, Xing, t3n, LinkedIn, Pinterest oder Google eventuell ins Ausland übertragen und unter Umständen auch dort gespeichert. Näheres erfahren Sie durch einen Klick auf das i.

Veröffentlicht unter Home Server | Schreib einen Kommentar

Einen eigenen Server zuhause einrichten

Ich werde jetzt eine neue Serie von Posts beginnen, die beschreiben, wie ich mir zuhause meinen eigenen Server eingerichtet habe. Auf ihm laufen einige Anwendungen, die über das Internet (allerdings nur über HTTPS) erreichbar sind, und die einige Aufgaben für mich übernehmen.

Zuerst musste ich mich für eine bestimmte Hardware entscheiden. Wenn Du daheim noch einen brauchbaren PC herumliegen hast, gut. Falls nicht, gibt es einige Optionen. Meine Hauptanforderungen waren Stabilität (zu einem gewissen Grad auch Leistung) und, dass er nicht zu viel Strom verbrauchen soll.

Ich habe mit einem Raspberry Pi 3+ angefangen, den ich sowieso noch hatte, aber schnell festgestellt, dass er meine erste Anforderung nicht erfüllt. Ich habe, glaube ich, drei SD-Karten verheizt, bis ich aufgegeben habe. Vermutlich gab es einfach zu viele Schreib-Lese-Zugriffe.

Daraufhin habe ich ein bisschen gesucht und festgestellt, dass für meine Anforderungen ein Mini-PC am besten geeignet wäre. Es gibt eine ganze Reihe solcher Mini-PCs und welchen man wählt, hängt davon ab, was man damit machen will. Ich habe mich für den NiPoGi AK2 Plus entschieden. Er ist günstig und liefert genügend Leistung für das, was ich vorhabe. Ich habe ihn noch mit einer zweiten 512GB SSD aufgerüstet, die ich schon hatte.

Später habe ich dann noch eine externe HDD am USB-Anschluss als Medium für Backup und die Daten der größeren Anwendungen angeschlossen. Es handelt sich dabei um ein 5TB USB-3.0-Laufwerk von Western Digital. Nachdem ich herausgefunden hatte, wie man sie schlafen legt, wenn sie gerade nicht genutzt wird, war ich mit diesem Aufbau sehr zufrieden.

Üblicherweise nutze ich den PC „headless“, also nur per Fernzugriff, aber ich kann ihn, wenn nötig, auch per HDMI-Kabel an einen meiner Monitore anschließen. Vermutlich würde für diese seltenen Fälle auch ein Fernseher ausreichen.

Nachdem die Hardware angeschafft war, konnte ich damit anfangen, alles einzurichten. Ich werde die Schritte in der Reihenfolge beschreiben, die ich mittlerweile für sinnvoll halte. Aber natürlich habe ich einige Experimente durchgeführt, und es war nicht immer alles so geradlinig, wie jetzt beschrieben. 😀

Anmerkung:
Diese Seite enthält „Affiliate Links“ zu Amazon. Natürlich kannst Du Deine Hardware irgendwo bestellen, aber es wäre schön, wenn Du es über die Links machen könntest, so dass ich eine kleine Anerkennung für die Arbeit bekäme, das alles hier aufzuschreiben. 😉

     Ubuntu


Wenn Sie diese Felder durch einen Klick aktivieren, werden Informationen an Facebook, Twitter, Flattr, Xing, t3n, LinkedIn, Pinterest oder Google eventuell ins Ausland übertragen und unter Umständen auch dort gespeichert. Näheres erfahren Sie durch einen Klick auf das i.

Veröffentlicht unter Home Server | Schreib einen Kommentar