How to fix "ghost start" (after update)

After updating Ghost it could happen that the Ghost website wont boot anymore.

How to fix "ghost start" (after update)

Recently I wanted to upgrade this website to the new version 4. Lots of new features where add the cms and I was exited to try it out. For a some time i use Ghost as my software for blogging and it works well. It works fast and support AMP out of the box.

First you've to update ghost to the latest minor version of version 3 with the command "ghost update v3". After you have the latest minor of V3 you can update to V4 with the Ghost update command. If you go directly to V4 with "ghost update" you'll run into errors.

I couldn't start ghost arfter the update. Only ghost run worked. After a while I realized that ghost run used a different version of Node than ghost start.

To change the node version of the ghost start command we have to change the service file. Enter the path below in your terminal.

First check your version of node with "node -v". If this version is the correct version. Check the location of the node version with "whereis node". Copy this path, we're gonna use this path for the "ghost start" command.

/etc/systemd/system/

In this folder you can see the ghost_ website service file. Below a example of a ghost service file

[Unit]
Description=Ghost systemd service for blog: sandervoogt-com
Documentation=https://ghost.org/docs/

[Service]
Type=simple
WorkingDirectory= --path to ghost project--
User=999
Environment="NODE_ENV=production"
ExecStart=/usr/bin/node /usr/bin/ghost run
Restart=always

[Install]
WantedBy=multi-user.target
Ghost service file

The ExecStart is the command we need to change. Copy the result of the "whereis node" command. Als check if the location of the ghost installation is correct.

After you changed the service file. Run "systemctl deamon reload".

Now you should be able to use the "ghost start" command without problems.

Don't use NVM in production

Ghost doesn't support nvm. Below the steps to remove nvm from your system.

rm -rf $NVM_DIR ~/.npm ~/.bower
unset NVM_DIR;
which node;
rm -rf {path_to_node_version}