Proxmox – Umgebung bei Hetzner

Allgemein

Beschreibung des Projekts

In diesem und allen damit verbundenen Blog-Einträgen wird Schritt für Schritt die Einrichtung eines leistungsfähigen Servers bei Hetzner beschrieben. Ziel ist es, auf diesem Server eine umfassende, selbstverwaltete Hosting-Infrastruktur zu betreiben. Dabei wird der Fokus auf den Aufbau eines Proxmox-Servers gelegt, der als Virtualisierungsplattform dient und die Grundlage für mehrere spezialisierte Dienste bietet.

Nach der erfolgreichen Bestellung und Grundkonfiguration des dedizierten Servers bei Hetzner wird zunächst Proxmox VE installiert. Diese Open-Source-Virtualisierungslösung ermöglicht die effiziente Verwaltung und den Betrieb mehrerer virtueller Maschinen und Container.

Ein zentrales Element der Einrichtung ist die Integration eines WireGuard-VPNs, das als sichere Verbindung zu den gehosteten Diensten dient – sowohl zur Administration als auch zur Nutzung sensibler Anwendungen.

Innerhalb der Proxmox-Umgebung werden anschließend mehrere virtuelle Maschinen oder Container mit unterschiedlichen Aufgaben eingerichtet:

  • Nextcloud-Server: zur privaten Dateiablage, Synchronisation und Kollaboration.
  • Nginx-Proxy-Server: als Reverse Proxy zur sicheren Erreichbarkeit der Dienste über HTTPS mit automatisierter Let’s Encrypt-Zertifikatsverwaltung.
  • E-Mail-Server: zur Verwaltung eingehender und ausgehender E-Mails für eine oder mehrere Domains.
  • E-Mail-Archiv-Server: für die rechtssichere Archivierung der gesamten E-Mail-Kommunikation.
  • Paperless-Server: zur digitalen Dokumentenverwaltung und -archivierung.
  • Vaultwarden-Server: als selbst gehostete Passwortverwaltungslösung, kompatibel mit Bitwarden-Clients.

Ein weiterer wichtiger Aspekt dieses Setups ist die Datensicherheit. Deshalb wird eine zuverlässige Backup-Lösung auf Basis der Hetzner Storage Box implementiert. Diese dient sowohl der automatisierten Sicherung der virtuellen Maschinen als auch dem Offsite-Backup wichtiger Konfigurations- und Anwendungsdaten.

Diese Blogreihe richtet sich an technisch versierte Nutzer und Administratoren, die einen eigenen Server betreiben möchten, um ihre digitale Infrastruktur unabhängig und datenschutzfreundlich selbst zu verwalten.

Bestellung eines passenden Servers

Für den Aufbau unserer eigenen Infrastruktur setzen wir auf dedizierte Server der Firma Hetzner, einem renommierten Hosting-Anbieter mit Rechenzentren an mehreren Standorten in Deutschland und Finnland.

Eine besonders interessante Option für kostengünstige, aber dennoch leistungsfähige Server ist die sogenannte Hetzner Serverbörse. Dabei handelt es sich um gebrauchte, jedoch technisch geprüfte und sofort verfügbare Server, die aus unterschiedlichen Gründen wieder freigegeben wurden – etwa durch Vertragsende anderer Kunden oder durch interne Upgrades. Diese Server werden zu deutlich reduzierten Preisen angeboten, wobei die Kosten abhängig von der verbauten Hardware und der gewünschten Mindestvertragslaufzeit variieren.

Für unser Projekt ist kein High-End-System notwendig – bereits ein kleinerer Server mit einer Intel Xeon CPU bietet ausreichend Leistung. Alternativ können auch Modelle mit AMD Ryzen oder Intel Core i-Serie-Prozessoren verwendet werden, je nach Anforderungen und Verfügbarkeit.

In unserem Fall greifen wir auf einen Server mit folgenden Spezifikationen zurück:

  • CPU: Intel Xeon E3-1275v5
  • RAM: 64 GB
  • Speicher: 2 × SSD (Solid State Drives) für hohe I/O-Performance + 2 HDD für Datenspeicher

Gerade bei einem virtualisierten Setup mit Proxmox VE ist eine schnelle Festplattenlösung entscheidend. Zwar könnten die VMs grundsätzlich auch auf HDDs betrieben werden, allerdings kommt es dabei schnell zu spürbaren Performance-Einbußen – insbesondere bei datenintensiven Anwendungen wie Datenbanken, Nextcloud oder E-Mail-Servern. Durch den Einsatz von SSDs stellen wir sicher, dass das gesamte System auch unter Last zuverlässig und zügig reagiert.

Diese Hardware bildet die solide Grundlage für eine performante, selbst gehostete Infrastruktur.

Nach der Auswahl des Servers, wird der Bestellprozess begonnen, dafür muss ein Hetzner Konto vorhanden sein oder erstellt werden.

Bestellung abschließen

Nach der erfolgreichen Bestellung des Servers bei Hetzner dauert es in der Regel nur wenige Minuten bis wenige Stunden, bis der Server bereitgestellt wird. Sobald dies geschehen ist, erhalten wir eine Bestätigungs-E-Mail von Hetzner mit den wichtigsten Zugangsdaten.

Diese E-Mail enthält unter anderem:

  • die öffentliche IP-Adresse des Servers
  • das Root-Passwort für den ersten SSH-Zugriff (sofern kein eigener SSH-Schlüssel angegeben wurde)
  • ggf. weitere Informationen zur Netzwerkkonfiguration oder zur Remote-Konsole (z. B. IP-KMI-Zugang)

Falls bei der Bestellung ein eigener SSH-Public-Key hinterlegt wurde, wird kein Passwort versendet, da die Authentifizierung dann ausschließlich über das Public-Key-Verfahren erfolgt – was aus Sicherheitsgründen auch empfohlen wird.
Mit diesen Zugangsdaten können wir uns nun per SSH auf dem Server anmelden und mit der Grundkonfiguration sowie der Installation von Proxmox VE beginnen.

Erste Einrichtung

Wenn ein Server bei Hetzner bestellt wird, befindet sich dieser zunächst im sogenannten Recovery-Modus. Das bedeutet, dass der Server in ein minimales Live-System (meist basierend auf Linux) gestartet wird, über das die eigentliche Installation des gewünschten Betriebssystems durchgeführt werden kann.

Hetzner stellt für diesen Prozess ein eigenes, benutzerfreundliches Installationsscript bereit, das die Einrichtung weitgehend automatisiert. Dieses Script kann über die Konsole im Robot-Webinterface oder direkt per SSH im Recovery-System gestartet werden. Die Schritte zur Installation sind im Wesentlichen wie folgt:

Verbindung zum Server herstellen

In der E-Mail von Hetzner ist die IP-Adresse des Servers, sowie das root Password hinterlegt.

Die Verbindung zum Server erfolgt per SSH über ein Terminal, unter Verwendung der in der E-Mail angegebenen IP-Adresse. Anschließend wird das Root-Passwort eingegeben.

Rescue Mode

Nach dem Verbindungsaufbau per SSH im Recovery-Modus wird der Installationsprozess mit folgendem Befehl gestartet:

installimage


Daraufhin beginnt die interaktive Einrichtung des Servers. Das Tool führt durch ein textbasiertes Menü, in dem Schritt für Schritt alle relevanten Einstellungen für die Installation des gewünschten Betriebssystems festgelegt werden können.

Auswahl des Betriebsystems

An dieser Stelle scheiden sich wie so oft die Geister, welches Betriebssystem das beste ist. Für dieses Projekt wird Debian verwendet, da damit bisher die besten Erfahrungen gemacht wurden.

Hier wird die neueste verfügbare Version ausgewählt. Nach der Installation kann das Betriebssystem bei Bedarf aktualisiert werden.

Die nachfolgende Meldung ist sehr wichtig, denn hier wird beschrieben, dass alle Festplatten zu einem SWRAID0 (Software-RAID) verbunden werden. Das ist jedoch keine gute Wahl. In diesem Projekt wird eine Trennung der SSDs von den HDDs benötigt – das muss im nächsten Schritt entsprechend angepasst werden.

Im nächsten Fenster wird die Konfigurationsdatei für die Einrichtung angezeigt. In diesem Projekt werden ausschließlich die SSD-Festplatten zu einem RAID 1 verbunden. Die beiden HDD-Festplatten werden hierfür auskommentiert und somit im Installationsprozess nicht berücksichtigt. (Nach der Installation werden auch die beiden HDDs in ein RAID eingebunden.)

Außerdem wird der Hostname des Servers direkt hier angepasst. Der Rest der Konfigurationsdatei kann nach eigenem Ermessen geändert werden, wird aber für dieses Projekt nicht benötigt. Nach dem allen Einstellung erfolgt sind, wird die Konfigurationsdatei mit F10 bestätigt und gespeichert.

Nach nochmaligen bestätigen, dass die Daten von der SSD entferntet werden dürfen, beginnt die Installation des Servers.

Damit ist die Installation des Servers abgeschlossen. Nach dem Neustart mit dem Befehl

reboot

ist der Server nach kurzer Zeit wieder erreichbar.

Somit ist die Grundinstallation des Server abgeschlossen.

Sie haben Fragen oder benötigen Hilfe bei der Installation

Gespräch vereinbaren

Ansible