Der eigene Ghost Blog ist schnell selbst erstellt. Voraussetzung dafür ist ein vorhandener Linux Server. Dabei reicht ein gemieteter virtueller Server vollkommen aus. Ebenfalls muss Docker, die Containervirtualisierung, installiert werden. Zusätzlich wird die Erweiterung Docker-Compose benötigt. Natürlich habe ich eine Anleitung hier. Um das ganze schick per HTTPS-Zertifikat unter der eigenen Domain auffindbar zu machen, ist ein Reverse Proxy notwendig. In meinem Fall nutze ich den guten jwilder nginx Proxy. Eine Anleitung habe ich hier geschrieben. Zuletzt nutze ich den Dienst Sendgrid, damit der Ghost Blog mir E-Mails zusenden kann, da ich keine Lust habe, einen E-Mail Server zu betreiben (zumindest nicht auf dem Docker Server).
Wenn die Docker Basics laufen, muss die Docker-Compose Datei angelegt werden. Dazu erstelle ich je nach Dienst immer einen extra Ordner, meinetwegen im root-Verzeichniss (/root/docker), da Ordnung sein muss:
mkdir /root/docker/ghostblog
cd /root/docker/ghostblog
Hinein kommen zwei Dateien: docker-compose.yml
version: '3.1'
services:
ghost:
image: ghost:alpine
restart: always
volumes:
- ghost_data:/var/lib/ghost/content
environment:
- url=https://houz.de
- mail__transport=SMTP
- mail__host=smtp.sendgrid.net
- mail__options__port=587
- mail__options__auth__user=apikey
- mail__options__auth__pass=SG.XXX
- mail__options__service=Sendgrid
- VIRTUAL_HOST=houz.de
- LETSENCRYPT_HOST=houz.de
- [email protected]
networks:
- proxy-tier
volumes:
ghost_data:
driver: local
networks:
proxy-tier:
external: true
Die Domains/E-Mail (unter “url=”, “VIRTUAL_HOST=“, “LETSENCRYPT_HOST=“, “LETSENCRYPT_EMAIL=“) und das Sendgrid Password (unter “mailoptionsauth__pass”) müsst ihr natürlich anpassen.
Und meine berüchtigte “update.sh” muss noch erstellt werden, um einfach ein Update des Ghost Blogs durchführen zu können. Als Zusatz mache ich diesmal ein Backup der Ghost Blog Daten:
docker-compose down
docker pull ghost:alpine
# Backup Ghost Files
rsync -a /var/lib/docker/volumes/ghostblog_ghost_data/ /BACKUP/ghostblog_ghost_data.bkp.$(date +%Y%m%d-%H.%M.%S)
docker-compose up -d
Achtung: Der Pfad beim “rsync” Befehl muss stimmen und angepasst werden. Wenn ihr eine andere Ordner Struktur habt (also die docker-compose nicht unter /root/docker/ghostblog liegt), muss der Pfad entsprechend angepasst werden. Auch /BACKUP muss vorhanden sein oder angepasst werden.
Insgesamt sieht so die Struktur aus:
ghost-houz/
├── docker-compose.yml
└── update.sh
0 directories, 2 files
Auf gehts: Schmeißt den Ghostblog an mit:
docker-compose up -d
Und öffnet im Browser eure Domain. Tada, der Ghost Blog erscheint. Unter https://meinedomainistcooleralsdeine.xyz/ghost könnt ihr den Adminbereich besuchen und euch Logindaten erstellen.
Updaten: Updaten geht die immer mit:
sh update.sh
Der Blog wird heruntergefahren, es wird ein Backup gemacht, der Blog wird hochgefahren.
db db .d8b. d8888b. d8888b. db db
88 88 d8' `8b 88 `8D 88 `8D `8b d8'
88ooo88 88ooo88 88oodD' 88oodD' `8bd8'
88~~~88 88~~~88 88~~~ 88~~~ 88
88 88 88 88 88 88 88
YP YP YP YP 88 88 YP
d8888b. db .d88b. d888b d888b d888888b d8b db d888b
88 `8D 88 .8P Y8. 88' Y8b 88' Y8b `88' 888o 88 88' Y8b
88oooY' 88 88 88 88 88 88 88V8o 88 88
88~~~b. 88 88 88 88 ooo 88 ooo 88 88 V8o88 88 ooo
88 8D 88booo. `8b d8' 88. ~8~ 88. ~8~ .88. 88 V888 88. ~8~
Y8888P' Y88888P `Y88P' Y888P Y888P Y888888P VP V8P Y888P