Mai 9, 2026

Ghost Blog self-hosted einrichten

Ghost Blog self-hosted einrichten
Photo by Nick Morrison / Unsplash

In diesem Post erkläre ich, wie ich das CMS Tool "Ghost" unter Docker mit einer Docker-Compose Datei, in ein paar Minuten selbständig erfolgreich einrichten konnte.

Voraussetzung

  • Funktionierende Docker-Umgebung
  • Docker-Kenntnisse

Vorbereitung Docker

  1. Erstellen Sie einen Unterordner in Docker für Ghost und benennen sie diesen z. Bsp. zu Ghost. Sie können die Docker-Compose Datei natürlich auch an einem anderen gewünschten Ort ausführen.

Docker-Compose Datei erstellen

Die Docker-Compose Datei enthält alle notwendigen Angaben um einen funktionsfähigen Ghost Docker-Container in einem Durchgang erstellen zu können.

Ghost und Nginx Images
Datenbank
Notwendige Volumes
Ports
Let's encrypt setup
  1. Erstellen sie eine neue Datei in einem Editor und fügen sie den nachfolgenden Code ein.
  2. Passen sie die Ports ihren Wünschen an.
  3. Geben sie beim Abschnitt "Environment" die Url. ihres Blogs an, über welche ihre Website später erreichbar sein soll.
  4. Geben sie beim Abschnitt Environment ein Datenbank Passwort und einen Datenbanknamen an. Sie können selbstverständlich einen anderen Benutzer als Root verwenden. Das ist sogar empfohlen. Speichern sie diese Angaben in einem Passwort-Manager ab.
  5. Geben sie beim Abschnitt db: -> :environment das Passwort, dass sie zuvor beim Schritt 4 angegeben haben, nochmals ein.
  6. Speichern sie danach die Datei mit Erweiterung .xml in dem vorher erstellten Ordner unter dem Namen "docker-compose" ab. Am Ende lautet die Datei docker-compose.xml.
version: '3'
services:

  ghost:
    image: ghost:latest
    restart: always
    depends_on:
      - db
    environment:
      url: https://<IhrBlog.ch>
      database__client: mysql
      database__connection__host: db
      database__connection__user: root
      database__connection__password: <MyStrongPassword>
      database__connection__database: ghost
    volumes:
        - ./content:/var/lib/ghost/content
        - ./config.production.json:/var/lib/ghost/config.production.json
        
  db:
    image: mysql:8.0
    ports:
      - 3306:3306
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: <MyStrongPassword>
    volumes:
      - ./mysql:/var/lib/mysql

  nginx:
    image: nginx:latest
    restart: always
    depends_on:
      - ghost
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /etc/letsencrypt/:/etc/letsencrypt/
      - /usr/share/nginx/html:/usr/share/nginx/html
      - ./nginx/default.conf:/etc/nginx/conf.d/default.conf

Docker-Compose Datei ausführen

Nun erstellen wir den neuen Docker-Container für Ghost. Sprich, wir werden die Docker-Compose Datei ausführen, welche dann automatisch das aktuelleste Ghost (CMS) und das notwendige Nginx (Webserver) Image herunterladen und installieren wird. Ebenfalls werden die notwendigen Volumes und Datenbanken automatisch erstellt.

  1. Starten sie ein Command Prompt Fenster und wechseln sie in den vorher erstellten Ordner.
  2. Führen sie die Datei "docker-compose.xml" mit folgenden Befehl aus.
sudo docker compose -f docker-compose.xml up

Die Datei führt nun die darin enthaltenen Befehle aus und das ganze dauert nur ein paar Sekunden bis Minuten bis der Docker-Container erstellt wurde.

Einloggen in das Ghost Administrator Backend

Nachdem das erstellen des Docker-Containers erfolgreich durchgelaufen ist, können wir uns nun in das Ghost Administrator Backend einloggen.

Starten sie einen Browser und loggen sie sich über Ihre zunächst über die lokale Ghost Url. ein:

http://localhost:80/ghost oder https://localhost:443/ghost

Sie sollten nun das nachfolgende Seite angezeigt bekommen.

  1. Geben sie ihren gewünschten Namen ihrer Website ein.
  2. Geben sie ihren Namen, Emailadresse und ein sicheres Passwort ein.
  3. Klicken sie danach auf "Create account & start publishing".

Sie haben sich nun erfolgreich in das Ghost Administrator Backend eingeloggt.

Sie haben nun erfolgreich das Ghost CMS unter Docker aufgesetzt.
Das Ghost Frontend erreichen sie unter https://localhost oder http://localhost.
Richten sie nun Ihr Ghost nach Ihren Wünschen ein.