Wie du deinen Ghost Blog mit einem sh-Skript automatisch aktualisierst

Wie du deinen Ghost Blog mit einem sh-Skript automatisch aktualisierst

Update: Seit der neuen Version 1.0 von Ghost gibt es einen integrierten Updater in dem Ghost CLI!

Mit diesem kleinen .sh-Skript aktualisierst du deinen Blog automatisch. Du kannst es natürlich noch etwas anpassen. Lege es neben das Verzeichnis in dem dein Ghost-Blog liegt und führe es aus. In diesem Beispiel gehe ich davon aus, dass das Verzeichnis, in dem dein Blog liegt, den Namen "ghostblog" trägt. Bitte ändere diese Variable am Anfang der Datei, wenn das nicht so ist. Auch die Variablen für die Berechtigungen und den Servicenamen solltest du kurz überprüfen. Du solltest außerdem sicherstellen, dass dein restart-Kommando funktioniert: service ghost restart

Sollte irgendetwas nicht funktionieren, kannst du deine ursprüngliche Ghost Version wiederherstellen, indem du das automatisch erzeugte Backup zurückspielst.

GHOSTDIR=ghostblog
GHOSTGROUP=ghost
GHOSTUSER=ghost
GHOSTSERVICE=ghost

echo downloading new version...
curl -LOk https://ghost.org/zip/ghost-latest.zip

echo extracting...
unzip ghost-latest.zip -d ghost-latest

echo removing old backup...
rm -R ghostblog-backup

echo creating backup...
cp -R $GHOSTDIR ghostblog-backup

#Delete old files
#Remember: Do not delete contents folder and config file!
echo deleting old files...
rm -R $GHOSTDIR/core
rm -R $GHOSTDIR/node_modules
rm $GHOSTDIR/config.example.js
rm $GHOSTDIR/Gruntfile.js
rm $GHOSTDIR/index.js
rm $GHOSTDIR/package.json
rm $GHOSTDIR/npm-shrinkwrap.json
rm $GHOSTDIR/LICENSE

echo copying new files...
cp -R ghost-latest/core $GHOSTDIR
cp ghost-latest/* $GHOSTDIR

echo updating theme...
#only remove theme if not modified...
rm -R $GHOSTDIR/content/themes/casper
cp -R ghost-latest/content/themes/casper $GHOSTDIR/content/themes

echo setting permissions...
chown -R $GHOSTUSER:$GHOSTGROUP $GHOSTDIR

echo installing dependencys...
cd $GHOSTDIR
npm cache clean
npm install --production
cd ..

echo restarting ghost...
service $GHOSTSERVICE restart

echo removing temporary files...
rm -R ghost-latest
rm ghost-latest.zip

echo done