Mein self-hosted Ghost-Blog mit Docker
Hallo zusammen!
Nach langem Überlegen habe ich mich entschieden, meinen persönlichen Blog für How-Tos, Homelab-Tipps und Empfehlungen selbst zu hosten – und zwar mit Ghost, der cleanen, open-source Blog-Plattform. Kein WordPress-Overhead, kein Cloud-Abo: Alles läuft lokal in Docker auf meinem Server.
Warum Ghost? Der Editor ist super flüssig, Markdown wird unterstützt, und es sieht von Haus aus professionell aus. Perfekt für Artikel wie diesen.
So richtest du Ghost mit Docker Compose ein
Als erstes habe ich unter meinem Benutzer das Verzeichnis docker/ghost erstellt.
mkdir ~/docker/ghostErstelle eine docker-compose.yml (z. B. in einem Ordner ~/docker/ghost):
cd ~/docker/ghost
nano docker-compose.ymlservices:
ghost:
image: ghost:5-alpine
container_name: ghost
restart: always
ports:
- 8080:2368
environment:
database__client: mysql
database__connection__host: db
database__connection__user: ghost
database__connection__password: Start123!
database__connection__database: ghost
url: http://192.168.202.5:8080
volumes:
- ghost:/var/lib/ghost/content
depends_on:
db:
condition: service_healthy
db:
image: mysql:8.0
container_name: ghost-db
restart: always
environment:
MYSQL_ROOT_PASSWORD: Start123!
MYSQL_DATABASE: ghost
MYSQL_USER: ghost
MYSQL_PASSWORD: Start123!
volumes:
- db:/var/lib/mysql
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 5s
retries: 10
volumes:
ghost:
db:Container starten und Setup
docker compose up -dÖffne im Browser: http://192.168.202.5:8080/ghost/
Folge dem Setup-Wizard: Admin-Account anlegen, Blog-Titel setzen – fertig!
Falls beim ersten Start die DB nicht ready ist (ECONNREFUSED): Der Healthcheck oben verhindert das meist. Ansonsten einfach neu starten.
Tipps für den Einstieg
- Themes: Im Dashboard unter Settings > Design – habe ich mich für Attila entschieden.
- Reverse Proxy: Für HTTPS und eine echte Domain später Nginx Proxy Manager oder Traefik einrichten. Später wird hier HA-Proxy seinen Dienst verrichten.
- Backups: Die Volumes ghost und db regelmäßig sichern (z. B. mit rsync oder einem Backup-Tool).
Mein Blog läuft jetzt stabil – und ich freue mich auf die ersten richtigen Posts zu Homelab-Themen, Docker-Tricks und mehr.