Keeping Ghost installation up-to-date is important not only because of new features added but also because of all the security updates.
Keeping Ghost installation up-to-date is important not only because of new features added but also because of all the security updates.
1. BACKUP /var/www/ghost/content folder
* optional but highly recommended
2. sudo systemctl stop ghost
* or any other service manager
3. cd /var/www
* assuming the blog is located at /var/www/ghost
4. curl -LOk https://ghost.org/zip/ghost-latest.zip
5. sudo rm -rf ghost/core
sudo rm -rf content/themes/
* optional
6. unzip -uo ghost-latest.zip -d ghost
* copy only new and updated files
7. sudo chown -R ghost:ghost ghost/*
* optional
8. cd /var/www/ghost
9. sudo npm install --production
10. sudo systemctl start ghostoptional (before npm install run):
- sudo rm -rf node_modules/
- sudo npm cache clean
unzip -uo only copies files that are newer than the one that exist. This option is important to preserve all the data files.
once in a while installation will with weird errors such as “ERROR: AppField is already defined in the registry.”
in that case it is a good idea to replace /var/www/ghost/core folder or even the entire installation except for content folder and config.js.
it also helps to troubleshoot problematic installs by starting ghost with npm start
for instance: npm start --production
to start ghost as a service:
download init script
$ sudo curl https://raw.githubusercontent.com/TryGhost/Ghost-Config/master/init.d/ghost \ -o /etc/init.d/ghostmake sure /etc/init.d/ghost DAEMON variable is the same as the output of which node
$ sudo useradd -r ghost -U $ sudo chown -R ghost:ghost /var/www/ghost $ sudo chmod 755 /etc/init.d/ghoststart the service on boot
$ sudo update-rc.d ghost defaults $ sudo update-rc.d ghost enableWelcome to The infinite monkey theorem
Somewhere a monkey just typed Shakespeare in TypeScript. Be the first to read the masterpieces (and the hilarious misfires) landing on the blog.

