Projekt HomeLab – Datensouveranität an erster Stelle

(thx @ Thilo)

Was mache ich hier eigentlich? Mein Ziel ist es, sämtliche Daten selbst zu verwalten. Hierzu zählen meine Kontakte, Kalendereinträge, Passwörter, Lesezeichen, Dokumente u. v. m.


Was wird benötigt?

Ein Server (Rechner im 24/7-Betrieb) – Zuhause oder im Rechenzentrum (wenn zuhause, dann mit stabiler, brauchbarer Internetverbindung und mit externer IPv4-Adresse.

Eine Domain um das HomeLab anzusteuern (wenn zuhause, dann mit DynDNS-Funktionalität)


Ich habe das Projekt mit verschiedenen Domain-Anbietern getestet:

CloudflaredeSEC (kostenlos)
IONOSRegfish
Strato

Hier meine verwendete Software:

Ubuntu Server LTS *Link*Tandoor *Link*
Traefik *Link*Vaultwarden *Link*
WordPress *Link*Paperless NGX *Link*
Nextcloud *Link*PrivateBin *Link*
Collabora Office *Link*Portainer *Link*
Vaultwarden *Link*Rustdesk *Link*
FireFoxSync *Link*

Erreichbarkeit mittels DynDNS:

Solltet Ihr einen Router besitzen, der euch DynDNS anbietet, wäre es möglich, diesen dafür zu benutzen. Die Subdomains können dann mittels CNAME-Einträgen beim Anbieter auf die Domain zeigen.


Installation des Server-Systems:

Ich installiere Ubuntu 22.04 LTS lediglich mit einem OpenSSH-Server.
Eine GUI wird nicht benötigt – frisst nur Ressourcen…


Installation Docker:

sudo apt update
sudo apt install ca-certificates curl gnupg lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker

Einrichtung von Traefik

Zuerst legen wir uns ein neues Netzwerk an

docker network create traefik_proxy

Damit ein Passwort für Traefik definiert werden kann, benötigen wir eine Kleinigkeit vom Apache-Webserver

sudo apt install apache2-utils -y