WordPress-Blog zuhause hosten in 3 Schritten

Wer einen kleinen privaten Blog wie diesen hier betreibt und über einen ausreichend schnellen Internet-Anschluss verfügt (gerade der Upload ist wichtig), kann sich überlegen ob er ihn direkt zuhause hostet. Daraus ergeben sich einige Vorteile, es gibt aber auch neue Herausforderungen. Hier erkläre ich die Schritte, die nötig sind um 100 – 200 Besucher am Tag mit einer eigenen Domain von Zuhause aus zu hosten.

Hier erkläre ich die Schritte, die nötig sind um 100 – 200 Besucher am Tag mit einer eigenen Domain von Zuhause aus zu hosten.

Zeitaufwand: 3 Stunden und 30 Minuten

Einen „Server“ konfigurieren (Nginx, PHP, MySQL auf Raspberry Pi)

htop nginx home

Zuerst muss der Blog (in diesem Fall WordPress) auf einem System innerhalb des eigenen Netzwerkes laufen. Damit der Stromverbrauch eine mögliche Kostenersparnis nicht komplett auffrisst, verwende ich einen Odroid C2, ein Raspberry Pi würde den Job aber genauso gut erledigen.

Bei Debian-basierten Linux-Distributionen kann man einfach den gängigen Anleitungen wie der von Spinupwp.com folgen, um Nginx, PHP (ich verwende das aktuelle PHP 8) und MySQL bzw. MariaDB zu installieren. Nginx selbst kompilieren ist nicht nötig, da auch die aktuelle „mainline“-Version als Paket für ARM verfügbar ist.

Am Ende sollte WordPress unter der IP-Adresse des Servers im lokalen Netzwerk erreichbar sein (in meinem Fall: http://192.168.0.150) – in Bezug auf sichere Passwörter gilt natürlich das selbe wie bei einem Gerät im Internet, wobei man einfach auch Zugriffe auf bestimmte Verzeichnisse nur für IP-Adressen aus dem lokalen Netzwerk freigeben kann.

Ports freigeben und DDNS konfigurieren

ddns

Damit der Server erreichbar wird, muss im Router (ich verwende eine Fritzbox 7590) eine Portfreigabe eingerichtet werden sowie mittels eines DynDNS-Dienstes (z.B. no-ip.com) dafür gesorgt werden, dass die jeweils aktuelle IP-Adresse unter einem Domain-Namen bekannt ist. Freigegeben werden nur der Port 80 für HTTP-Verbindungen (benötigen wir, um ein Let’s Encrypt-Zertifikat zu bekommen) und Port 443 für HTTPS-Verbindungen. Portfreigaben für SSH oder FTP sollten nicht eingerichtet werden, je weniger Ports freigegeben sind, desto besser.

Am Ende dieses Schritts sollte das eingerichtete WordPress unter https://meine-subdomain.no-ip.com erreichbar sein, um mit Cloudflare weiter machen zu können.

Cloudflare als CDN und Caching konfigurieren

cloudflare dns

Cloudflare kann man kostenlos nutzen, um sowohl die eigene IP-Adresse zu verschleiern (in diesem Setup besonders wichtig) als auch Anfragen zu Cachen und Last vom eigentlichen Server zu nehmen (da ein Rasbperry Pi dann doch nicht die Leistung eines richtigen Servers hat). Außerdem fungiert es als CDN und verkürzt die Antwortzeiten für Nutzer aus anderen Regionen der Welt.

In der Cloudflare-Konfiguration wird nun die in Schritt 2 definierte Subdomain des DynDNS-Service als CNAME-Eintrag hinterlegt. Das Ergebnis: über Cloudflare zwischengespeichert wird nun der Blog über einen Raspberry Pi in den eigenen vier Wänden ausgeliefert.

Vor- & Nachteile des „Home-Hostings“:

Natürlich gibt es auch Nachteile: zum einen muss ein weiteres Gerät mit Strom und Internet versorgt werden, zum anderen muss man sich natürlich (allerdings genauso wie bei einem „echten“ Server) um die Software und die Installation selbst kümmern. Dafür kann man den ganzen Prozess nachverfolgen, wie eine Webseite ins Internet kommt und was dafür nötig ist.

Die Vorteile sind, dass man Backups praktisch „lokal“ im eigenen Netzwerk machen kann und sich die ca. 5 Euro im Monat spart, die eine kleine Instanz bei DigitalOcean oder anderen Hostern kostet. Reines Webhosting gibt es zwar billiger, wenn man sich aber selbst auch mit Nginx- und PHP-Konfiguration beschäftigen will, ist das „Home-Hosting“ eine aus meiner Sicht brauchbare Alternative.

Zuletzt aktualisiert am 16. Juli 2024 um 13:06 . Wir weisen darauf hin, dass sich hier angezeigte Preise inzwischen geändert haben können. Alle Angaben ohne Gewähr.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.