Ghost currently supports Node versions 0.12.x, 4.2+ and 6.9+ only.
The recommended version of Node to use with Ghost is currently Node v4 LTS.
|>=4.2 <5.* (Node v4 argon LTS)||Recommended|
|>=6.9 <7.* (Node v6 boron LTS)||Supported|
- Recommended: this is the version of Node that we use with Ghost in production on Ghost(Pro) – meaning it is the most heavily tested and issues are actively fixed by the core team.
- Supported: these versions of Node are known to work with Ghost. There is a Travis build for these versions meaning they are checked against our test suite and we will always try to resolve any issues promptly.
- Unsupported: there is no build, no testing and no guarantee that Ghost will install or run. We will not prioritise fixing issues with these versions, but any patches for future versions are very welcome.
If you attempt to install Ghost with an unsupported version of Node.js, you may encounter the error ERROR: Unsupported version of Node and/or Exit status 231. To resolve this, you must install a compatible version of Node.js.
Compatible versions of Node.js can be downloaded from the Node.js releases page. It is also possible to install multiple node versions using nave or nvm. Alternatively you can choose to disable the version check as documented below.
Support for future versions of Node
As Ghost will be following & supporting Node’s LTS versions, this means that Ghost will not be officially supporting the Node 5.x line. The next LTS version will be v6 released in October 2016, building on the work done to support Node 4.2+ LTS, we intend to track and add support for the new LTS soon after it is released.
Disable the version check
Disabling the version check allows users to install & run Ghost with a version of Node that is not officially supported. This means the version of node is untested, and we are not able to provide support for any issues encountered.
To disable the startup check in Ghost, set the environment variable
GHOST_NODE_VERSION_CHECK to be
GHOST_NODE_VERSION_CHECK=false npm install --production.
GHOST_NODE_VERSION_CHECK=false npm start --production.
You can also add the
GHOST_NODE_VERSION_CHECK environment variable in the same way you would any other environment variable – by adding it to your bash config on mac, etc.
Dropping support for older versions of node.
Following Node’s LTS timelines means that support for 0.10.x was dropped completely on 1st November 2016 and support for the v6 LTS was added.
Support for 0.12.x will also be dropped on 31st December 2016.
Why follow LTS?
Following LTS means two things: 1) no support for the latest node version, e.g. v5.0 and 2) not being able to use the latest and greatest ES2016 features – so why are we doing it?
Node has picked up the pace on their development and so have npm. Between these two things, the surface area for issues whilst installing or upgrading Ghost has grown significantly. All the time spent supporting people trying to upgrade/install on various platforms detracts from the time we have available to build new features.
Equally, spending time tracking changes in node, and testing out each change doesn’t impact us or our extensive dependency tree is all time we can’t spend on building new features. Further still, dropping support for older node versions and using ES2016, or even adding babel, would significantly increase the amount of support we’d need to do to help our self-install users get and keep Ghost running. We try to encourage the community to support each other, but more often than not it falls to us to ensure our users have a good experience.
Ghost is a tiny project in terms of the number of people actively working on it. We have ambitious plans for what we’re trying to do and we need to focus on delivering a useful product. By following LTS we can focus our efforts on meaningful work and keep our time spent on node versioning to a minimum. It also allows us to delay the support impact until later and give us a chance to grow our team to cope with the support in the meantime.
If you want to run Ghost on the latest version of node you can, however we are unable to offer support for any issues.