/ghost-on-github-pages

💻⏰ Ghost on Github Pages. Build and deploy Ghost for free in a few minutes.

Primary LanguageShellApache License 2.0Apache-2.0

Ghost Blog Platform on Github Pages

Visit blog!

https://abhijithvijayan.github.io/ghost-blog-demo/

🙋‍♂️ Made by @abhijithvijayan

Donate: PayPal, Patreon

Buy Me a Coffee


Table of Contents


Requirements

1) Install Major Dependencies

Install NodeJS

Install a version that is officially supported by Ghost, preferably latest LTS

curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt-get install -y nodejs

2) Install Other Packages

Install Homebrew

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

Install Node.js runtime

Ghost is written in Node.js, so you will need the Node.js runtime.

brew install node
brew install wget
sudo apt-get install build-essential

Initialize npm

npm init

Enter the credentials when asked

  • github username in the name field*
  • repository name(eg: username.github.io)
  • a description*

Leave the other less important fields empty.

Install yarn

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt update && sudo apt install yarn

Setup

1) Download and Install Ghost

npm install ghost-cli@latest -g

Change the present working directory

mkdir ghost && cd ghost

Install Ghost

ghost install local --no-start --enable --port 2368

Start Ghost

ghost start

Open browser and navigate to

http://localhost:2368/

image

Login to Ghost

http://localhost:2368/ghost/

Go to the above link in your browser ans if it doesn't show anything, check the status of the blog with

ghost status

Create an account, read the intial blog post how to edit with Markdown etc.

2) Create your GitHub Pages repo

Create a repo with create-remote-repo CLI

You must use the username/username.github.io naming scheme. The repo name must be lower case even if your username has upper case letters.

npx create-remote-repo username.github.io

# Replace with your username

3) Deploy to GitHub Pages

Create a file named deploy.sh with contents from deploy.sh

Give execute permission

chmod u+x deploy.sh

Deploy with

./deploy.sh

For the initial push, please wait up to 10 minutes until GitHub deploys your subdomain.

All upcoming pushes are much faster and you can see your static ghost blog posts at https://username.github.io


Write new Blog posts

To write new Blog posts or update the existing ones, just start Ghost, edit, then generate and deploy the static pages.

cd ghost
ghost start

Visit

http://localhost:2368/ghost/

Login and write new posts

Deploy with wget

After writing new posts, deploy with wget. Run the deploy.sh script/.

./deploy.sh

Enter the credentials when asked!


Voila! You got yourself a ghost blog on github pages