Hi everyone,
I’m at my wit’s end, but I’m not at all experienced and I’m attempting a Ghost update for the very first time and so far it’s not going well.
My hosting provider installed Ghost for me in a docker container but refuses to do the update like have done in the past because Ghost is not among the software they typically support. So I’m on my own.
It was installed as the root user and I had to create a new account and give ownership and rights to the new user. I have done this but I still get some error messages about lacking permissions and the ownership of my node_modules folder keeps reverting back to a different user every time I log in.
This is the docker container’s setup:
OS: Debian GNU/Linux, v11
Node Version: v22.22.2
Ghost Version: 5.38.0
Ghost-CLI Version: 1.29.2
Environment: production
Command: 'ghost backup'
These are the error messages I’m getting when I attempt “ghost run”:
[2026-06-14 03:23:00] ERROR (EADDRINUSE) Cannot start Ghost.
(EADDRINUSE) Cannot start Ghost.
"Port 2368 is already in use by another program."
"Is another Ghost instance already running?"
Error ID:
58a6c9f0-67a0-11f1-9c64-7dd94b4200e3
InternalServerError: (EADDRINUSE) Cannot start Ghost.
at Server. (/var/lib/ghost/versions/5.38.0/core/server/ghost-server.js:89:34)
at Server.emit (node:events:519:28)
at emitErrorNT (node:net:1976:8)
at process.processTicksAndRejections (node:internal/process/task_queues:89:21)
[2026-06-14 03:23:00] WARN Ghost is shutting down
[2026-06-14 03:23:00] WARN Ghost has shut down
[2026-06-14 03:23:00] WARN Your site is now offline
[2026-06-14 03:23:00] WARN Ghost was running for a few seconds
Process manager 'systemd' will not run on this system, defaulting to 'local'
“Ghost doctor” returns this:
Process manager 'systemd' will not run on this system, defaulting to 'local'
✔ Checking system Node.js version - found v22.22.2
✔ 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
System checks failed with message: 'Linux version is not Ubuntu 16, 18, 20, 22, or 24'
Some features of Ghost-CLI may not work without additional configuration.
For local installs we recommend using ghost install local instead.
✔ Continue anyway? Yes
System stack check skipped
ℹ Checking system compatibility [skipped]
✖ Validating config
✖ Checking folder permissions
✖ Checking file permissions
✔ Checking memory availability
✔ Checking binary dependencies
✔ Checking free space
✖ Checking systemd unit file
✖ Checking systemd node version
One or more errors occurred.
Validating config
Error detected in the production configuration.
Message: Port '2368' is in use.
Configuration Key(s): server.port
Current Value(s): 2368
Help: Run ghost config <key> <new value> for each key to fix the issue.
Checking folder permissions
Message: Ghost can't access some files or directories to check for correct permissions.
Help: Run sudo find ./ -type d -exec chmod 00775 {} ; and try again.
Checking file permissions
Message: Ghost can't access some files or directories to check for correct permissions.
Help: Run sudo find ./ -type d -exec chmod 00775 {} ; and try again.
SystemError
Message: Unable to load or parse systemd unit file
SystemError
Message: Unable to determine node version in use by systemd
Help: Ensure 'ExecStart' exists in /lib/systemd/system/ghost_undefined.service and uses a valid Node version
Debug Information:
OS: Debian GNU/Linux, v11
Node Version: v22.22.2
Ghost Version: 5.38.0
Ghost-CLI Version: 1.29.2
Environment: production
Command: 'ghost doctor'
The systemd file ghost.service didn’t seem to be there, but attempts to set it up with ghost setup systemd returned this, even though Ghost-CLI is the latest version according to the debug information above:
You are running an outdated version of Ghost-CLI.
It is recommended that you upgrade before continuing.
Run npm install -g ghost-cli@latest to upgrade.
The "ghost" user has not been created, try running ghost setup linux-user first
ℹ Setting up Systemd [skipped]
I just don’t know what to do or even where I’m going wrong. I’d create a fresh install but that seems equally daunting for someone who has never done it before.
I don’t know if it was my tinkering or an upgrade to Hestia control panel done by my hosting provider, but right now my website looks like this
[EDIT: removed for security]
Any help is deeply appreciated!