# Using Ubuntu Snap Package Node for Ghost Review

**URL:** <https://forum.ghost.org/t/using-ubuntu-snap-package-node-for-ghost-review/47758>\
**Category:** Self-hosting\
**Created:** [May 30, 2024, 12:06am UTC](https://forum.ghost.org/t/using-ubuntu-snap-package-node-for-ghost-review/47758 "2024-05-30T00:06:42Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Paulser](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/paulser/32/30626_2.png) [@Paulser](https://forum.ghost.org/u/Paulser)\
**Post date:** [May 30, 2024, 12:06am UTC](https://forum.ghost.org/t/using-ubuntu-snap-package-node-for-ghost-review/47758/1 "2024-05-30T00:06:42Z")

</div>

Does anyone have experience with Node snap package on Ubuntu with Ghost installation? (It might not be recommended?)

I have done a Ghost upgrade and Node.js needed to be upgraded to a newer version than Ubuntu provided on the current package manager.

I had a look at the snap package option for node. It seemed to be quite a good option (to me) for managing node versions. (Simple install and remove commands etc)

**Examples:**

sudo snap install node --classic  
OR  
sudo snap install node --channel=18/stable --classic

So I decided to give it a go for my ghost installation. (I got backup and snapshot to roll back my changes)

**Installation Information:**  
OS: Ubuntu, v22.04.4 LTS  
Node Version: v20.14.0  
Ghost Version: 5.82.12  
Ghost-CLI Version: 1.26.0  
Environment: production  
Command: ‘ghost doctor’

After I did the upgrade to Node v20.14.0, I ran ghost doctor.

**Ghost Doctor Results:**

✔ Checking system Node.js version - found v20.14.0  
✔ Checking logged in user  
✔ Ensuring user is not logged in as ghost user  
✔ Checking if logged in user is directory owner  
✔ Checking current folder permissions  
✔ Checking system compatibility  
✔ Checking for a MySQL installation

- sudo systemctl is-active ghost\_\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*-co-uk  
✔ Validating config  
✔ Checking folder permissions  
✔ Checking file permissions  
✔ Checking content folder ownership  
✔ Checking memory availability  
✔ Checking binary dependencies  
✔ Checking free space  
✔ Checking systemd unit file  
✖ Checking systemd node version  
One or more errors occurred.

1. SystemError

Message: Unable to determine node version in use by systemd  
Help: Ensure ‘ExecStart’ exists in /lib/systemd/system/ghost\_\*\*\*\*\*\*\*\*\*-co-uk.service and uses a valid Node version

I then changed the file as requested.

**Old Config:**

[Unit]  
Description=Ghost systemd service for blog: \*\*\*\*\*\*\*\*\*\*\*-co-uk  
Documentation=[Ghost: The #1 open source headless Node.js CMS](https://ghost.org/docs/)

[Service]  
Type=simple  
WorkingDirectory=/var/www/ghost  
User=999  
Environment=“NODE\_ENV=production”  
ExecStart=/usr/bin/node /usr/bin/ghost run  
Restart=always

[Install]  
WantedBy=multi-user.target

**New Config:**

[Unit]  
Description=Ghost systemd service for blog: \*\*\*\*\*\*\*\*\*\*\*\*-co-uk  
Documentation=[Ghost: The #1 open source headless Node.js CMS](https://ghost.org/docs/)

[Service]  
Type=simple  
WorkingDirectory=/var/www/ghost  
User=999  
Environment=“NODE\_ENV=production”  
ExecStart=/snap/bin/node /usr/bin/ghost run  
Restart=always

[Install]  
WantedBy=multi-user.target

**Current State**

I then tried to run ghost doctor and got the same issue, which has confused me.

I have rebooted the server just encase it needed services restarted but still the same issue sadly.

If anyone has any advice or additional information, I would be much appreciated. I will do my own research and will try to update this forum post If I find anything.

Thanks for taking the time to read this post.

---

<div class="post-metadata">

**Author:** ![markstos](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/markstos/32/18182_2.png) [@markstos](https://forum.ghost.org/u/markstos)\
**Post date:** [June 1, 2024, 2:00pm UTC](https://forum.ghost.org/t/using-ubuntu-snap-package-node-for-ghost-review/47758/2 "2024-06-01T14:00:12Z")

</div>

I suspect the snap package could work fine, but Ghost Doctor is failing to consider it a valid option.

While there are pros and cons to using containers, if Ghost ran in a container, all issues with node on the host would be solved.

There is a bit of discussion about that now because the new ActivityPub feature, at least for now, may be a separate service. So Docker Compose or something like that is needed to bring up two services.

Personally, I run Ghost in containers now.

> [@Interested in Ansible Role to install Ghost to run with podman containers / systemd / private networking?](https://forum.ghost.org/t/interested-in-ansible-role-to-install-ghost-to-run-with-podman-containers-systemd-private-networking/46226):
>
> I built an Ansible role for myself to automate installing multiple Ghost installs that will be run containerized with Podman and run as systemd services, sharing a private MySQL install. I’m weighing how much effort to put into cleaning it up and publishing it so I thought I’d gauge interest first. The last time I searched for “Podman” on this form, I only found my own posts… Features Ghost instances are run as systemd services, like with the ghost-cli install, but each in their own contai…

---

<div class="post-metadata">

**Author:** ![joe-blocher](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/joe-blocher/32/27872_2.png) [@joe-blocher](https://forum.ghost.org/u/joe-blocher)\
**Post date:** [June 3, 2024, 5:39am UTC](https://forum.ghost.org/t/using-ubuntu-snap-package-node-for-ghost-review/47758/3 "2024-06-03T05:39:08Z")

</div>

AFAIK only Node v18 LTS is supported.  
See [Supported Node Version](https://ghost.org/docs/faq/node-versions/)
