How to: Install Ghost in Docker

How to: Install Ghost in Docker

Ghost ist eine moderne, quelloffene Blogging-Plattform, die für ihre minimalistische Gestaltung und leistungsstarke Funktionen bekannt ist. In diesem Tutorial lernst du, wie du Ghost mit Docker installierst und betreibst. Dieses Setup eignet sich sowohl für Entwickler als auch für Produktionsumgebungen.

Voraussetzungen

  • Ein Server oder lokales System mit Docker und Docker Compose installiert.
  • Grundlegende Kenntnisse über die Nutzung von Docker.
  • Mindestens 1 GB RAM und ein moderner Prozessor.

1. Installation von Docker (falls nicht vorhanden)

Falls Docker noch nicht installiert ist, führe folgende Schritte aus:

sudo apt-get remove docker docker-engine docker.io containerd runc

2. Ghost mit Docker Compose installieren

Schritt 1: Arbeitsverzeichnis erstellen

Erstelle ein neues Verzeichnis für dein Ghost-Blog:

mkdir ghost-blog && cd ghost-blog

Schritt 2: docker-compose.yml erstellen

Erstelle eine Datei namens docker-compose.yml im Verzeichnis und füge folgende Konfiguration hinzu:

textversion: '3.3'

services:
  ghost:
    image: ghost:latest
    restart: always
    ports:
      - "2368:2368"
    environment:
      url: http://localhost:2368
    volumes:
      - ./content:/var/lib/ghost/content

  db:
    image: mariadb:latest
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: rootpassword123
      MYSQL_USER: ghost
      MYSQL_PASSWORD: ghostpassword123
      MYSQL_DATABASE: ghostdb
    volumes:
      - ./mysql:/var/lib/mysql

Erklärung der Konfiguration:

  • Ghost-Service:
    • Nutzt das neueste Ghost-Docker-Image.
    • Port 2368 wird für den Zugriff auf das Blog verwendet.
    • Volumes stellen sicher, dass Inhalte persistent gespeichert werden.
  • MariaDB-Datenbank:
    • Wird als Datenbank für Ghost verwendet.
    • Enthält Umgebungsvariablen für Benutzername, Passwort und Datenbankname.

Schritt 3: Container starten

Starte die Container mit folgendem Befehl:

docker-compose up -d

Nach etwa 20–30 Sekunden kannst du dein Blog unter http://localhost:2368 im Browser aufrufen.

3. Ghost für Produktionsumgebungen konfigurieren

Schritt 1: Nginx als Reverse Proxy verwenden (optional)

Für den Zugriff über eine Domain und HTTPS kann Nginx als Reverse Proxy eingesetzt werden:

  1. Erstelle eine Datei namens nginx.conf mit folgendem Inhalt:
textserver {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://localhost:2368;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
  1. Aktiviere die Konfiguration und starte Nginx neu.

Schritt 2: SSL-Zertifikat hinzufügen

Nutze Let's Encrypt, um ein kostenloses SSL-Zertifikat zu erhalten:

sudo apt-get install certbot python3-certbot-nginx
sudo certbot --nginx -d example.com

4. Verwaltung des Blogs

Container stoppen und starten

Logs überprüfen

Falls Probleme auftreten, überprüfe die Logs der Container:

docker-compose down
docker-compose logs ghost

Subscribe to IT-BLOG FehmerTech e.U.

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
jamie@example.com
Subscribe