> ## Content Index
> Fetch the complete content index at: https://www.herr-meier.de/llms.txt
> Use this file to discover other available public pages before exploring further.

# Ghost selbst hosten: Schritt-für-Schritt-Anleitung für Ubuntu
- URL: https://www.herr-meier.de/ghost-selbst-hosten-installieren-ubuntu/
- Published: 2026-08-26T04:38:11.000Z
- Updated: 2026-08-26T04:38:11.000Z
- Description: Ghost auf dem eigenen Server installieren: Diese Anleitung führt dich Schritt für Schritt durch Ubuntu, MySQL, Node.js, NGINX, SSL und Ghost-CLI – verständlich erklärt und mit allen benötigten Befehlen.
- Author: Herr Meier
- Tags: #ghost-guide, #ghost-hosting, Ghost CMS

Ghost lässt sich vollständig auf einem eigenen Server betreiben. Damit behältst du die Kontrolle über deine Installation, deine Daten und deine laufenden Kosten. Im Gegenzug bist du selbst für Updates, Backups, Sicherheit und die technische Wartung verantwortlich.

In dieser Anleitung installieren wir Ghost auf einem Ubuntu-Server mit dem offiziell empfohlenen Produktions-Setup: NGINX, MySQL, Node.js, Ghost-CLI, SSL und systemd.

> Hinweis: Die Anleitung richtet sich an Einsteiger, setzt aber voraus, dass du dich per SSH mit einem Server verbinden und Befehle im Terminal ausführen kannst.

## Was du für die Installation benötigst

Bevor wir beginnen, brauchst du:

- einen VPS oder Cloud-Server
- mindestens 1 GB Arbeitsspeicher
- Ubuntu 22.04, 24.04 oder 26.04
- eine eigene Domain
- Zugriff auf die DNS-Einstellungen der Domain
- SSH-Zugang zum Server
- eine öffentliche IPv4-Adresse
- etwas Zeit für Einrichtung und Tests

Ghost empfiehlt aktuell MySQL 8.0 oder 8.4, eine unterstützte Node.js-Version, NGINX und systemd. Diese Anleitung orientiert sich am offiziellen Installationsweg von Ghost.

## Schritt 1: Domain mit dem Server verbinden

Bevor Ghost installiert wird, sollte deine Domain bereits auf den Server zeigen. Das ist wichtig, damit während der Installation direkt ein kostenloses SSL-Zertifikat eingerichtet werden kann.

Lege beim Anbieter deiner Domain einen A-Record an:

| Einstellung | Wert                      |
| ----------- | ------------------------- |
| Typ         | A                         |
| Name        | @                         |
| Ziel        | IP-Adresse deines Servers |
| TTL         | Automatisch oder Standard |

Wenn Ghost unter einer Subdomain erreichbar sein soll, kannst du beispielsweise folgenden Eintrag verwenden:

| Einstellung | Wert                      |
| ----------- | ------------------------- |
| Typ         | A                         |
| Name        | blog                      |
| Ziel        | IP-Adresse deines Servers |

Die spätere Adresse wäre dann beispielsweise:

`https://blog.deinedomain.de`

DNS-Änderungen können je nach Anbieter einige Minuten oder mehrere Stunden benötigen.

## Schritt 2: Per SSH mit dem Server verbinden

Öffne unter Windows beispielsweise PowerShell oder Windows Terminal. Unter macOS und Linux kannst du das normale Terminal verwenden.

Verbinde dich zunächst als Root-Benutzer mit deinem Server:

```
ssh root@DEINE-SERVER-IP
```

Ersetze `DEINE-SERVER-IP` durch die tatsächliche IP-Adresse deines Servers.

Beim ersten Verbindungsaufbau musst du möglicherweise bestätigen, dass du dem Server vertraust. Anschließend wird das Root-Passwort abgefragt.

## Schritt 3: Einen eigenen Benutzer anlegen

Ghost sollte nicht dauerhaft über den Root-Benutzer verwaltet werden. Deshalb erstellen wir einen separaten Benutzer.

```
adduser ghostadmin
```

Du wirst nun aufgefordert, ein Passwort festzulegen. Die zusätzlichen Angaben wie Name oder Telefonnummer kannst du mit der Enter-Taste überspringen.

> Verwende nicht einfach den Benutzernamen `ghost`. Dieser Name wird später von Ghost selbst für einen eingeschränkten Systembenutzer verwendet.

Füge den neuen Benutzer anschließend der sudo-Gruppe hinzu:

```
usermod -aG sudo ghostadmin
```

Wechsle danach zum neuen Benutzer:

```
su - ghostadmin
```

Ab diesem Punkt arbeitest du mit `ghostadmin` und nicht mehr direkt als Root.

## Schritt 4: Ubuntu aktualisieren

Aktualisiere zunächst die Paketlisten:

```
sudo apt-get update
```

Installiere anschließend verfügbare Aktualisierungen:

```
sudo apt-get upgrade
```

Je nach Server und Anzahl der Updates kann dieser Vorgang einige Minuten dauern.

Wenn Ubuntu nach einem Neustart verlangt, kannst du diesen mit folgendem Befehl durchführen:

```
sudo reboot
```

Danach musst du die SSH-Verbindung erneut herstellen:

```
ssh ghostadmin@DEINE-SERVER-IP
```

## Schritt 5: NGINX installieren

NGINX übernimmt später die Verbindung zwischen der Domain und Ghost. Außerdem wird NGINX für die HTTPS-Verschlüsselung benötigt.

Installiere NGINX:

```
sudo apt-get install nginx
```

Falls auf dem Server die UFW-Firewall aktiviert ist, erlaube HTTP- und HTTPS-Verbindungen:

```
sudo ufw allow 'Nginx Full'
```

Den Status von NGINX kannst du überprüfen:

```
sudo systemctl status nginx
```

Mit der Taste `Q` verlässt du die Statusanzeige wieder.

Wenn du jetzt die IP-Adresse deines Servers im Browser aufrufst, sollte die Standardseite von NGINX erscheinen.

## Schritt 6: MySQL installieren

Ghost verwendet bei einer produktiven Installation MySQL als Datenbank.

Installiere MySQL:

```
sudo apt-get install mysql-server
```

Öffne anschließend die MySQL-Konsole:

```
sudo mysql
```

Auf aktuellen Ubuntu-Systemen verwendet der MySQL-Root-Benutzer häufig eine socketbasierte Anmeldung. Da Ghost damit nicht arbeiten kann, erhält der MySQL-Root-Benutzer ein eigenes Passwort.

Führe innerhalb der MySQL-Konsole folgenden Befehl aus:

```
ALTER USER 'root'@'localhost' IDENTIFIED WITH 'caching_sha2_password' BY 'DEIN-SICHERES-PASSWORT';
```

Ersetze `DEIN-SICHERES-PASSWORT` durch ein starkes, individuelles Passwort.

Aktualisiere anschließend die Berechtigungen:

```
FLUSH PRIVILEGES;
```

Verlasse die MySQL-Konsole:

```
exit
```

Bewahre das Passwort sicher auf. Es wird während der Ghost-Installation noch einmal benötigt.

## Schritt 7: Node.js installieren

Ghost benötigt Node.js. Zum Zeitpunkt dieser Anleitung verwendet die offizielle Ghost-Dokumentation Node.js 22 als unterstützte Version.

Installiere zunächst die benötigten Pakete:

```
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg
```

Erstelle das Verzeichnis für den Signaturschlüssel:

```
sudo mkdir -p /etc/apt/keyrings
```

Importiere den Schlüssel des NodeSource-Repositories:

```
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
```

Füge das Repository für Node.js 22 hinzu:

```
NODE_MAJOR=22
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list
```

Aktualisiere erneut die Paketlisten:

```
sudo apt-get update
```

Installiere Node.js:

```
sudo apt-get install nodejs -y
```

Überprüfe die installierten Versionen:

```
node --version
npm --version
```

Beide Befehle sollten jeweils eine Versionsnummer ausgeben.

> Unterstützte Node.js-Versionen können sich ändern. Kontrolliere deshalb bei einer späteren Installation zusätzlich die [aktuellen Systemvoraussetzungen von Ghost](https://docs.ghost.org/install/ubuntu?ref=herr-meier.de).

## Schritt 8: Ghost-CLI installieren

Ghost-CLI ist das offizielle Kommandozeilenwerkzeug für die Installation und Verwaltung von Ghost.

Installiere die aktuelle Version:

```
sudo npm install ghost-cli@latest -g
```

Überprüfe anschließend, ob die Installation erfolgreich war:

```
ghost version
```

Alternativ kannst du dir die verfügbaren Befehle anzeigen lassen:

```
ghost help
```

## Schritt 9: Installationsverzeichnis erstellen

Ghost benötigt ein eigenes Verzeichnis mit passenden Berechtigungen.

Erstelle zunächst den Ordner:

```
sudo mkdir -p /var/www/meine-ghost-seite
```

Übertrage den Besitz an deinen Benutzer:

```
sudo chown ghostadmin:ghostadmin /var/www/meine-ghost-seite
```

Setze die benötigten Berechtigungen:

```
sudo chmod 775 /var/www/meine-ghost-seite
```

Wechsle anschließend in das Verzeichnis:

```
cd /var/www/meine-ghost-seite
```

Wenn du einen anderen Benutzernamen gewählt hast, musst du `ghostadmin` entsprechend ersetzen.

## Schritt 10: Ghost installieren

Die eigentliche Installation wird mit nur einem Befehl gestartet:

```
ghost install
```

Ghost-CLI prüft zunächst, ob der Server die Voraussetzungen erfüllt. Danach werden Ghost und die erforderlichen Konfigurationen eingerichtet.

Während der Installation beantwortest du mehrere Fragen.

### Blog URL

Gib die vollständige Adresse deiner Website einschließlich `https://` ein:

```
https://deinedomain.de
```

Verwende keine reine IP-Adresse.

### MySQL hostname

Wenn MySQL auf demselben Server installiert wurde, lautet die Antwort:

```
localhost
```

### MySQL username

Gib als Benutzer ein:

```
root
```

### MySQL password

Gib das zuvor festgelegte MySQL-Root-Passwort ein.

Das Passwort wird bei der Eingabe im Terminal nicht angezeigt. Das ist normal.

### Ghost database name

Du kannst den vorgeschlagenen Datenbanknamen übernehmen oder einen eigenen Namen vergeben, beispielsweise:

```
ghost_production
```

### Eigenen MySQL-Benutzer erstellen

Ghost fragt, ob ein eigener MySQL-Benutzer eingerichtet werden soll:

```
Set up a ghost MySQL user?
```

Bestätige diese Frage mit `Yes`. Dadurch arbeitet Ghost später nicht dauerhaft mit dem MySQL-Root-Benutzer.

### NGINX einrichten

Bestätige auch diese Frage mit `Yes`:

```
Set up NGINX?
```

Ghost-CLI erstellt dadurch automatisch die passende NGINX-Konfiguration für deine Domain.

### SSL einrichten

Wenn deine Domain bereits korrekt auf den Server zeigt, bestätige:

```
Set up SSL?
```

mit `Yes`.

Ghost richtet anschließend ein kostenloses SSL-Zertifikat ein. Außerdem wird die automatische Verlängerung des Zertifikats konfiguriert.

### systemd einrichten

Bestätige:

```
Set up systemd?
```

mit `Yes`.

systemd sorgt dafür, dass Ghost als Hintergrunddienst läuft und nach einem Serverneustart automatisch wieder gestartet wird.

### Ghost starten

Am Ende fragt Ghost-CLI:

```
Do you wish to start Ghost?
```

Bestätige auch diese Frage mit `Yes`.

Wenn keine Fehler auftreten, ist deine Ghost-Installation jetzt erreichbar.

## Schritt 11: Administrator-Konto einrichten

Öffne im Browser die folgende Adresse:

```
https://deinedomain.de/ghost/
```

Dort richtest du dein erstes Administrator-Konto ein.

Du benötigst:

- einen Namen für die Publikation
- deinen Namen
- eine E-Mail-Adresse
- ein sicheres Passwort

Nach Abschluss der Einrichtung gelangst du direkt in den Ghost-Adminbereich.

## Schritt 12: Installation überprüfen

Prüfe zuerst, ob Ghost korrekt läuft:

```
cd /var/www/meine-ghost-seite
ghost ls
```

Die Installation sollte mit dem Status `running` angezeigt werden.

Zusätzlich solltest du folgende Punkte testen:

- Ist die Website über HTTPS erreichbar?
- Wird im Browser ein gültiges Zertifikat angezeigt?
- Ist der Adminbereich unter `/ghost/` erreichbar?
- Kann ein Testbeitrag veröffentlicht werden?
- Lassen sich Bilder hochladen?
- Funktioniert das aktive Theme?
- Wird die Website nach einem Serverneustart automatisch gestartet?

## Die wichtigsten Ghost-Befehle

Für die spätere Verwaltung solltest du dir einige Befehle merken.

Status der Installation anzeigen:

```
ghost ls
```

Ghost starten:

```
ghost start
```

Ghost stoppen:

```
ghost stop
```

Ghost neu starten:

```
ghost restart
```

Protokolle anzeigen:

```
ghost log
```

Nur Fehlermeldungen anzeigen:

```
ghost log --error
```

Installation überprüfen:

```
ghost doctor
```

Ghost aktualisieren:

```
ghost update
```

Ein vollständiges Ghost-Backup erstellen:

```
ghost backup
```

Diese Befehle solltest du immer im Installationsverzeichnis ausführen:

```
cd /var/www/meine-ghost-seite
```

## Ghost sicher aktualisieren

Ghost veröffentlicht regelmäßig neue Versionen. Vor jedem Update solltest du ein Backup erstellen:

```
cd /var/www/meine-ghost-seite
ghost backup
```

Danach kannst du Ghost aktualisieren:

```
ghost update
```

Bei einem größeren Versionssprung solltest du vorher zusätzlich prüfen, ob dein Theme mit der neuen Ghost-Version kompatibel ist.

Tritt während eines Updates ein Problem auf, kann unter bestimmten Voraussetzungen ein Rollback durchgeführt werden:

```
ghost update --rollback
```

Ein Rollback ersetzt jedoch kein vollständiges und extern gespeichertes Backup.

## Backups nicht nur auf dem Ghost-Server speichern

Der Befehl `ghost backup` erstellt eine Sicherung der wichtigsten Ghost-Daten. Dazu gehören unter anderem:

- veröffentlichte Inhalte
- Mitglieder
- installierte Themes
- Bilder und Mediendateien
- Weiterleitungen
- die Datei `routes.yaml`

Das Backup sollte anschließend auf ein anderes System übertragen werden. Liegt es ausschließlich auf dem Ghost-Server, geht es bei einem vollständigen Serverausfall möglicherweise zusammen mit der Installation verloren.

Sinnvoll sind beispielsweise:

- ein separater Backup-Speicher
- ein anderer Server
- ein S3-kompatibler Objektspeicher
- ein verschlüsselter Cloudspeicher
- eine lokale, regelmäßig aktualisierte Sicherung

Automatisierte externe Backups gehören deshalb zu den wichtigsten Aufgaben beim Self-Hosting.

## E-Mail-Versand und Newsletter konfigurieren

Die reine Ghost-Installation bedeutet noch nicht, dass alle E-Mail-Funktionen automatisch einsatzbereit sind.

Ghost unterscheidet grundsätzlich zwischen:

- Transaktions-E-Mails, beispielsweise für Anmeldung und Kontoverwaltung
- Newslettern, die an viele Mitglieder versendet werden

Für den zuverlässigen Versand benötigst du einen geeigneten E-Mail-Dienst. Je nach gewünschter Funktion können zusätzliche Konfigurationen und laufende Kosten entstehen.

Teste deshalb nach der Einrichtung unbedingt:

- Anmeldung eines neuen Mitglieds
- Zustellung des Anmeldelinks
- Passwortlose Anmeldung
- Newsletterversand
- Absenderadresse
- SPF-, DKIM- und DMARC-Einstellungen deiner Domain

Gerade beim Self-Hosting wird dieser Aufwand häufig unterschätzt.

## Was beim Self-Hosting dauerhaft zu erledigen ist

Nach der erfolgreichen Installation beginnt der laufende Betrieb. Dazu gehören:

- Ghost regelmäßig aktualisieren
- Ubuntu und Systempakete aktualisieren
- Sicherheitsmeldungen beobachten
- externe Backups kontrollieren
- Wiederherstellung von Backups testen
- Serverauslastung überwachen
- Speicherplatz kontrollieren
- SSL-Zertifikate überprüfen
- E-Mail-Zustellung überwachen
- Theme-Kompatibilität testen
- Fehlerprotokolle kontrollieren
- den Server gegen unberechtigte Zugriffe absichern

Ghost selbst lässt sich relativ schnell installieren. Die eigentliche Verantwortung beim Self-Hosting entsteht durch Wartung, Sicherheit und Überwachung.

## Wichtige Einschränkung des klassischen Installationswegs

Die Installation mit Ghost-CLI ist weiterhin der offiziell dokumentierte Produktionsweg für Ubuntu. Laut aktueller Ghost-Dokumentation unterstützt diese Variante jedoch nicht alle neuen Self-Hosting-Funktionen vollständig.

Insbesondere selbst gehostete Web Analytics und eine vollständig selbst gehostete ActivityPub- beziehungsweise Social-Web-Infrastruktur benötigen derzeit den neueren Docker-Compose-Installationsweg. Bei einer klassischen Ghost-CLI-Installation können Social-Web-Funktionen teilweise auf von Ghost bereitgestellte Dienste angewiesen sein.

Für einen klassischen Blog, ein Magazin, eine Mitgliederseite oder einen Newsletter bleibt Ghost-CLI dennoch der verständlichere Einstieg. Wer die komplette moderne Ghost-Infrastruktur selbst betreiben möchte, sollte sich zusätzlich mit Docker Compose beschäftigen.

## Häufige Probleme bei der Installation

### Die Domain ist nicht erreichbar

Überprüfe, ob der A-Record wirklich auf die richtige Server-IP zeigt. DNS-Änderungen benötigen manchmal etwas Zeit.

### Das SSL-Zertifikat kann nicht erstellt werden

Häufige Ursachen sind:

- die Domain zeigt noch nicht auf den Server
- Port 80 oder 443 ist blockiert
- NGINX läuft nicht
- ein Proxy oder CDN ist falsch konfiguriert
- die eingegebene Domain stimmt nicht mit dem DNS-Eintrag überein

Prüfe NGINX mit:

```
sudo nginx -t
```

Starte NGINX bei Bedarf neu:

```
sudo systemctl restart nginx
```

### Ghost meldet falsche Berechtigungen

Überprüfe, ob das Installationsverzeichnis deinem normalen Benutzer gehört:

```
ls -la /var/www/meine-ghost-seite
```

Ghost selbst darf nicht als Root installiert werden. Verwende für `ghost install` immer den zuvor angelegten Benutzer.

### Ghost startet nicht

Wechsle in das Installationsverzeichnis und prüfe die Installation:

```
cd /var/www/meine-ghost-seite
ghost doctor
```

Zeige anschließend die Fehlermeldungen an:

```
ghost log --error
```

Für eine direkte Diagnose kann Ghost im Vordergrund gestartet werden:

```
ghost run
```

Die dabei ausgegebenen Meldungen helfen häufig dabei, die eigentliche Ursache zu finden.

### MySQL lehnt die Anmeldung ab

Überprüfe:

- den verwendeten Benutzernamen
- das MySQL-Passwort
- den Hostnamen `localhost`
- ob MySQL läuft
- ob der Ghost-Datenbankbenutzer angelegt wurde

Den Status von MySQL prüfst du mit:

```
sudo systemctl status mysql
```

## Ist Self-Hosting für Einsteiger geeignet?

Grundsätzlich ja – sofern du bereit bist, dich mit Linux, DNS, Backups und Serverwartung auseinanderzusetzen.

Die Erstinstallation ist dank Ghost-CLI vergleichsweise komfortabel. Schwieriger ist der zuverlässige Betrieb über Monate und Jahre.

Self-Hosting passt gut zu dir, wenn du:

- gern technisch arbeitest
- volle Kontrolle über den Server möchtest
- Backups und Updates selbst organisieren kannst
- individuelle Serverkonfigurationen benötigst
- die laufenden Infrastrukturkosten kontrollieren möchtest

Ghost(Pro) ist meist angenehmer, wenn du:

- dich hauptsächlich auf Inhalte konzentrieren möchtest
- keine Serverwartung übernehmen willst
- eine betreute Infrastruktur bevorzugst
- möglichst wenig technische Verantwortung möchtest
- Support und integrierte Betriebsprozesse schätzt

## Fazit

Ghost auf einem eigenen Ubuntu-Server zu installieren ist kein Hexenwerk. Mit Ghost-CLI werden Datenbank, NGINX, SSL und systemd weitgehend automatisch eingerichtet.

Die größere Herausforderung beginnt nach der Installation: Ein eigener Ghost-Server muss aktualisiert, abgesichert, überwacht und regelmäßig gesichert werden. Wer diese Verantwortung bewusst übernimmt, erhält dafür eine flexible und kontrollierbare Publishing-Plattform.

Wenn du dagegen einfach schreiben, Mitglieder verwalten und Newsletter verschicken möchtest, ohne dich um den Serverbetrieb zu kümmern, bleibt Ghost(Pro) die bequemere Lösung.

Der beste Hosting-Weg ist deshalb nicht zwangsläufig der günstigste, sondern derjenige, der zu deinen technischen Kenntnissen, deiner verfügbaren Zeit und deinem Projekt passt.