Christopher Böhnisch
How-To | Eigenen Blog mit kostenlosem SSL Zertifikat installieren
Aktualisiert: 9. Sept. 2020
Ghost ist eine Blog-Software, mit der du deine eigenen Beiträge schreiben und im Internet verbreiten kannst. Wie du Ghost auf einem Ubuntu System installierst und damit deine eigene Plattform aufbaust, erfährst du im nachfolgenden Beitrag.
Überblick
Mit diesem Guide installierst du eine selbst gehostete Ghost Umgebung auf Ubuntu 16.04/18.04 und MySQL Datenbank mit den empfohlenen Voraussetzungen des Herstellers selbst. Die Installation ist nicht für eine lokale Umgebung auf deinem PC gedacht, sondern als Produktiv Umgebung auf einem öffentlich per DNS erreichbaren Server inklusive Letsencrypt Zertifikat. Ich nutze hierfür die CX-11 Serie von Hetzner: https://www.hetzner.de/cloud
Voraussetzungen
Ubuntu 16.04 oder Ubuntu 18.04
NGINX (mindestens 1.9.5 für SSL)
MySQL 5.5, 5.6, oder 5.7 (keine Version >= 8.0)
1 GB RAM
Ein vorhandener Domainname (Am besten setzt du den A-Record für den Domainnamen bereits, sobald du die IP des Servers kennst. Diese muss für die spätere SSL Konfiguration richtig aufgelöst werden können.)
Sobald dein Server bereit ist, können wir mit dem Setup beginnen!
Server Setup
Erstelle einen neuen Benutzer
Starte dein Terminal und verbinde dich als root Benutzer mit deinem Server:
# Login mit SSH
ssh root@"SERVER-IP"
# Erstelle einen neuen Benutzer und folge den Anweisungen
adduser "Benutzername"
Hinweis: Nimm einen anderen Benutzer als "ghost" , da es sonst später zu Problemen kommt.
# Erteile deinem User Adminrechte
usermod -aG sudo "Benutzername"
# Logge dich als neuerstellter Benutzer ein
su - "Benutzername"
Update Pakete
Stelle sicher, dass die Pakete und Paketlisten aktuell sind.
# Update Paketlisten
sudo apt-get update
# Update installierte Pakete
sudo apt-get upgrade
Installation NGINX
Ghost nutzt einen NGINX server und die SSL Konfiguration benötigt NGINX 1.9.5 oder höher.
# Installation NGINX
sudo apt-get install nginx
Falls die ufw aktiviert wurde, müssen noch HTTP und HTTPS Verbindungen erlaubt werden. Öffne dazu die Firewall:
sudo ufw allow 'Nginx Full'
Installation MySQL
Als nächstes Installieren wir MySQL, um sie als produktive Datenbank zu nutzen.
# Installation MySQL
sudo apt-get install mysql-server
MySQL auf Ubuntu 18.04
Falls du Ubuntu 18.04 nutzt, wird ein Passwort benötigt, um sicherzustellen, dass MySQL eine Verbindung mit der Ghost-CLI herstellen kann. Dafür sind ein paar extra Schritte notwendig.
# Um ein Passwort zu setzen, führe folgende Kommandos aus
sudo mysql
# Nun aktualisiere deinen User mit dem Passwort
# Tausche 'password' mit deinem Passwort, aber behalte die Quotes!
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
# Schließe MySQL
quit
# Und logge dich wieder als Ubuntu Benutzer ein
su - "Benutzername"
Installation Node.js
Du benötigst eine unterstützte Node.js Version. Überprüfe hier die passende Version, falls du ein anderes Betriebssystem und / oder eine andere Version benutzt.
# Füge das Repository hinzu
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash
# Installation Node.js
sudo apt-get install -y nodejs
Installation Ghost-CLI
Ghost-CLI ist ein Kommandozeilentool, mit dem du Ghost installieren und konfigurieren kannst.
# Installation ghost-cli
sudo npm install ghost-cli@latest -g
Sobald es installiert ist, kannst du ghost help ausführen, um eine Übersicht der verfügbaren Optionen zu sehen.
Installation Ghost
Hinweis: Wenn du Ghost im /root oder home/<user> Verzeichnis installierst, wird das in einer fehlerhaften Installation enden.
Installationsverzeichnis
Erstelle ein Verzeichnis für deine Installation und setze den Owner, sowie die Berechtigungen.
# In unserem Beispiel nutzen wir `ghost`als Verzeichnisname
sudo mkdir -p /var/www/ghost
# Tausche "Benutzername" mit deinem Benutzer
sudo chown "Benutzername":"Benutzername" /var/www/ghost
# Setze die richtigen Berechtigungen
sudo chmod 775 /var/www/ghost
# Und wechsel in den Ordner
cd /var/www/ghost
Starte den Installationsprozess
Nun kannst du Ghost mit nur einem einzigen Kommando installieren.
# Installation Ghost
ghost install
Installationsfragen
Während der Installation werden dir einige Fragen gestellt, damit Ghost konfiguriert wird.
Blog URL
Gib deine genaue URL ein, einschließlich dem Protokoll (http/https). Zum Beispiel https://blog.b-sol.de
MySQL Hostname
Hier wird festgelegt, von wo aus auf die Datenbank zugegriffen wird. Verwende in unserem Fall localhost , da die Datenbank auf dem gleichen Server läuft. Falls dies ein anderer ist, musst du ihn dementsprechend ändern.
MySQL Benutzer / Passwort
Wenn du bereits eine bestehende MySQL-Datenbank hast, gib den Benutzernamen ein. Andernfalls gebe root ein und im Anschluss daran das Passwort für den Benutzer, welches wir im Schritt Installation MySQL festgelegt haben.
Ghost Datenbankname
Gib den Namen deiner Datenbank ein, welche du verwenden möchtest. Sie wird automatisch für dich angelegt, es sei denn, du verwendest einen Nicht-Root-MySQL-Benutzer. In diesem Fall muss die Datenbank bereits existieren und die richtigen Berechtigungen haben.
Einrichtung eines Ghost MySQL Benutzers? (Empfohlen)
Wenn du deinen MySQL-Root-Benutzer angegeben hast, kann Ghost-CLI einen benutzerdefinierten MySQL-Benutzer erstellen, der nur auf deine neue Ghost-Datenbank zugreifen/editieren kann.
Einrichtung von NGINX? (Empfohlen)
Automatische Einrichtung von NGINX, um den Blog von extern erreichbar zu machen.
Einrichtung von SSL? (Empfohlen)
Wenn du eine https-Blog-URL verwendest und deine Domain bereits auf die richtige Stelle verwiesen hast, kann Ghost-CLI mit Let's Encrypt automatisch SSL für dich einrichten. Alternativ kannst du das später tun, indem du jederzeit ghost setup ssl ausführen kannst.
Gib deine E-Mail ein
Die Einrichtung der SSL-Zertifizierung erfordert eine E-Mail-Adresse, damit du bei Problemen mit deinem Zertifikat, beispielsweise bei der Erneuerung, auf dem Laufenden gehalten werden kannst.
Einrichtung von systemd? (Empfohlen)
systemd ist das empfohlene Prozessmanager-Tool, um Ghost reibungslos laufen zu lassen.
Starten von Ghost?
Wenn du yes auswählst, wird Ghost gestartet und du kannst deinen eigenen privaten Blog nun unter https://deine-domain.TLD/ghost erreichen.
Die Installation ist erfolgt. Wichtig ist nun aber auch die Wartung des Systems, ansonsten entwickelt sich der Server zu einem leichten Angriffsziel. Wie wir dich hierbei unterstützen können, findest du im Abschnitt unserer Managed Services: https://www.b-sol.de/managed-services
P.S. Wie du nun die SSL Konfiguration überprüfst, erfährst du im nächsten Beitrag!