I'm trying to run ghost on my raspberry pi but i already have another site running on it too, how do i set it up?

If you’re looking for some help, it’s important to provide as much context as possible so that people are able to assist you. Try to always mention:

  • What’s your URL? This is the easiest way for others to debug your issue: https://blog.boxersteavee.dev
  • What version of Ghost are you using?: 4.35.0
  • What configuration? uhhh, don’t understand this question. Config of what? It’s a rPi 2b
  • What browser? OperaGX
  • What errors or information do you see in the console? nothing, ghost ls shows it’s running fine (port 2369? Normal? I thought it was 80???
  • What steps could someone else take to reproduce the issue you’re having? Absolutely no clue. Maybe make a website on a pi then try setting up ghost? I have no clue where i’ve gone wrong

I have installed the ghost cli using npm if that changes anything.

Are you trying to install a second Ghost instance or another?

If the latter, create a new folder in /var/www, and install from there in exactly the same way as your first site. Each Ghost site runs on a different port. This is proxied to port 80 or 443.

If the other site doesn’t use Ghost, are you looking to run ghost instead or alongside this? What web server are you currently using?

I’m trying to install a 1 ghost instance, the other nginx thing is for my other website which in the end i think i might transfer to ghost (test.boxersteavee.dev and blog.boxersteavee.dev both go to the same nginx instance)

So, you have yet to attempt to install Ghost? I can’t reach your site, so it’s unclear.

On Raspbian, you’ll need to do something like this.

sudo apt update
sudo apt install nginx mariadb-server certbot python3-certbot-nginx -y
sudo mysql_secure_installation
sudo systemctl status mariadb

Then set up your Ghost database. Substitute <dbname>, <dbuser>, <password>, <user>, and <websitename> with your credentials.

sudo mysql -u root -p

create database <dbname>;
create user '<dbuser>'@'localhost' identified by '<password>';
grant all on <dbname>.* to '<dbuser>'@'localhost' identified by '<password>' with grant option;
flush privileges;

Now install node and ghost.

curl -fsSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add -
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash
sudo apt install -y nodejs
sudo npm install ghost-cli@latest -g

Next, create the website.

sudo mkdir -p /var/www/<websitename>
sudo chown <user>:<user> /var/www/<websitename>
sudo chmod 775 /var/www/<websitename>
cd /var/www/<websitename>
ghost install

You’ll be presented with options; the defaults should be fine. This will set up nginx and SSL for you. You’ll need to make sure your DNS is set up for the domain, i.e., you have an A-record or CNAME pointing to your web server’s public IP address. I assume you’re using dynamic DNS for this.

This is covered in more detailed in the official guide.

I have installed ghost, everything on the pi LOOKS successful, i’m used ghost setup --db sqlite3 since i tried mariadb and it didn’t work. I just reinstalled ghost after temporarily moving my old site away and there’s no errors. Just a time out when i go to https://blog.boxersteavee.dev
I installed ghost to /var/www/blogsite
and i also made a seperate user for the blogsite named “blogsite”

also i’m using cloudflare. not DDNS and all IPs in my house are static. Public and local

Have you setup port forwarding on your router, and updated your firewall? It’s not a DNS issue; I can’t reach the site with IP address either.

yes i have. I forwarded 80. That good?

No, you specified https earlier, so it’s port 443.

oh, i haven’t forwarded that. Silly me.

It worked!! Thanks so much whoo

1 Like