I’ve installed Ghost but cannot access the admin page.
-
What URL?
-
Versions:
- Ghost-CLI version: 1.27.0
- Ghost version: 5.115.1 (at /var/www/asmblog)
-
What configuration?
- I followed this guide: https://ghost.org/docs/install/ubuntu/
- I modified it to avoid having a root mysql user, following these tips: https://www.chienlit.com/ghost-blog-adding-a-user-and-database/
-
What browser?
- Firefox/Librewolf
-
What errors or information do you see in the console?
Ghost Doctor returns:
✔ Checking system Node.js version - found v18.20.8
✔ 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_blog-socialmediaalternatives-org
Instance is currently running
ℹ Validating config [skipped]
✔ 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 - found v18.20.8
Here are the contents of my config.production.json file:
{
"url": "https://blog.socialmediaalternatives.org",
"server": {
"port": 2368,
"host": "127.0.0.1"
},
"database": {
"client": "mysql",
"connection": {
"host": "127.0.0.1",
"user": "asmblog",
"password": "XXXXXXXXXXXXXXXXXX",
"database": "asmblog_prod"
}
},
"mail": {
"transport": "Direct"
},
"logging": {
"transports": [
"file",
"stdout"
]
},
"process": "systemd",
"paths": {
"contentPath": "/var/www/asmblog/content"
}
}
Here is my nginx config:
map $status $header_content_type_options {
204 "";
default "nosniff";
}
server {
listen 80;
listen [::]:80;
server_name blog.socialmediaalternatives.org;
root /var/www/asmblog/system/nginx-root; # Used for acme.sh SSL verification (https://acme.sh)
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:2368;
add_header X-Content-Type-Options $header_content_type_options;
}
location ~ /.well-known {
allow all;
}
client_max_body_size 50m;
}
- What steps could someone else take to reproduce the issue you’re having?
- Create a Digital Ocean droplet, Ubuntu 22.04
- follow the official guide
EDITED TO ADD:
I initially ran the SSL portion of the process, and it appeared to work. My site said it had a valid SSL certificate. I’ve since tried with a different browser and it does not. So I ran “ghost setup ssl” and ran into this error:
✖ Setting up SSL
One or more errors occurred.
1) ProcessError
Message: Command failed: /bin/sh -c sudo -S -p '#node-sudo-passwd#' /etc/letsencrypt/acme.sh --issue --home /etc/letsencrypt --server letsencrypt --domain blog.socialmediaalternatives.org --webroot /var/www/asmblog/system/nginx-root --reloadcmd "nginx -s reload" --accountemail XXXXXXXXXX --keylength 2048
[Sat Mar 29 20:58:14 UTC 2025] blog.socialmediaalternatives.org: Invalid status. Verification error details: 173.254.30.205: Invalid response from http://blog.socialmediaalternatives.org/.well-known/acme-challenge/QNcn27kOIW1KV5S4zjXU1DUU7fN9f_xS4zxsjSbSYJw: 404
[Sat Mar 29 20:58:14 UTC 2025] Please add '--debug' or '--log' to see more information.
[Sat Mar 29 20:58:14 UTC 2025] See: https://github.com/acmesh-official/acme.sh/wiki/How-to-debug-acme.sh
[Sat Mar 29 20:58:10 UTC 2025] Using CA: https://acme-v02.api.letsencrypt.org/directory
[Sat Mar 29 20:58:10 UTC 2025] Single domain='blog.socialmediaalternatives.org'
[Sat Mar 29 20:58:11 UTC 2025] Getting webroot for domain='blog.socialmediaalternatives.org'
[Sat Mar 29 20:58:11 UTC 2025] Verifying: blog.socialmediaalternatives.org
[Sat Mar 29 20:58:12 UTC 2025] Pending. The CA is processing your order, please wait. (1/30)
Exit code: 1
Debug Information:
OS: Ubuntu, v22.04.5 LTS
Node Version: v18.20.8
Ghost Version: 5.115.1
Ghost-CLI Version: 1.27.0
Environment: production
Command: 'ghost setup ssl'
Additional log info available in: /home/asmblog/.ghost/logs/ghost-cli-debug-2025-03-29T20_58_14_704Z.log
Try running ghost doctor to check your system for known issues.