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:
- 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;
}
}
- 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