I’ve been trying to deploy a production Ghost blog on a clean Ubuntu 22.04 server, but I keep running into issues where the blog won’t start via ghost start. I’ve reinstalled Ghost four times from scratch but keep facing the same error.
What I’ve Done:
- Installed Node.js v20.19.2 via NodeSource
- Installed MySQL and created a new database
- Installed Ghost-CLI (v1.27.0)
- Ran
ghost installand everything seemed fine - Selected to set up a custom MySQL user
- Skipped SSL and Nginx config (already had existing config)
- On
ghost start, I get:
✖ Starting Ghost
One or more errors occurred.
1) GhostError
Message: Could not communicate with Ghost
Suggestion: journalctl -u ghost_tobevee-shop -n 50
When I run journalctl -u ghost_tobevee-shop -n 50, it shows:
-- No entries --
Running ghost run gives this:
[INFO] Ghost is running in production...
[INFO] Your site is now available on https://tobevee.shop/
[WARN] Can't connect to the bootstrap socket (localhost 8000) ECONNREFUSED.
It repeats the warning with Tries: 0, Tries: 1, etc., but still continues booting.
Here’s a part of the config.production.json:
"server": {
"port": 2368,
"host": "127.0.0.1"
},
"bootstrap-socket": {
"port": 8000,
"host": "localhost"
},
"database": {
"client": "mysql",
"connection": {
"host": "127.0.0.1",
"user": "ghost-244",
"password": "[hidden]",
"database": "shayan_prod"
}
}
Running ghost doctor shows no issues.
What I Need Help With:
- Why is
ghost startfailing with “Could not communicate with Ghost” even thoughghost runworks? - What is the purpose of the bootstrap socket and why is it failing with
ECONNREFUSED? - How can I fix this issue so
ghost startproperly starts the systemd service?
Other Info:
- Server specs:
- OS: Ubuntu 22.04.5 LTS
- vCPU: 1 core
- RAM: 2 GB
- Disk: 20 GB
- Region:
eu-north1
- Ghost Version: 5.120.0
- MySQL: Installed and running on localhost, DB is accessible
- Systemd service exists:
/etc/systemd/system/ghost_tobevee-shop.serviceis present
Domain & Deployment Info:
- Website URL: https://tobevee.shop
- Deployed via
ghost installwith default settings - Nginx config already existed for this domain (so skipped during setup)
- No SSL setup via Ghost (already had it externally)
Any ideas or suggestions would be greatly appreciated. I’m stuck and can’t get the blog to run under systemd (ghost start) even though it boots manually with ghost run. Thanks in advance!