15 November 2022
## Overview
[Ghost](https://ghost.org/) is a fast, open-source publishing platform built on Node.js. While there are dozens of content management systems available, Ghost is a popular choice for developers because it is highly customizable, optimized for search engines out of the box, and incredibly fast.
In this guide, we will set up a fresh Ghost blog using [SQLite](https://www.sqlite.org/index.html) as our database, configure automatic streaming backups, and add a commenting system powered by [GitHub issues](https://docs.github.com/en/github/managing-your-work-on-github/about-issues).
## Key points
- Set up a blog using Ghost CMS.
- Use SQLite as the database and configure automatic backups.
- Enable article comments using GitHub issues.
## 1. Set up Ghost CMS
First, choose your cloud host and virtual machine operating system. While Ubuntu Server is officially recommended by Ghost, [Debian](https://www.debian.org/) is an excellent, lightweight alternative that is highly stable and consumes fewer system resources.
For cloud hosting, a few cost-effective options include:
- [AWS Lightsail](https://aws.amazon.com/lightsail/)
- [Google Cloud Platform](https://console.cloud.google.com/marketplace/product/click-to-deploy-images/ghost)
- [Azure](https://docs.microsoft.com/en-us/azure/virtual-machines/windows/quick-create-portal)
- [Digital Ocean](https://marketplace.digitalocean.com/apps/ghost)
AWS Lightsail is often the most economical. A starter instance costs around $3.50 a month, which is perfect for new blogs, and you can easily scale the instance as your traffic grows.
Before starting, open ports `80` (HTTP) and `443` (HTTPS) in your hosting provider's firewall settings.
> If you choose Ubuntu, prepend `sudo` to the commands below. If you choose Debian, run system administration tasks as root.
### Install system updates
```bash
# Run as root or with sudo
apt update
apt upgrade -y
```
### Install Node.js
```bash
# Run as root or with sudo
curl -fsSL https://deb.nodesource.com/setup_16.x | bash -
apt install -y nodejs
```
### Install Nginx
```bash
# Run as root or with sudo
apt install nginx
```
> **Note:** Map your domain name (e.g., `techflak.com`) to the public IP address of your server in your DNS provider settings (like Route53 or GoDaddy). Wait for the DNS records to propagate before configuring your SSL certificate with Let's Encrypt. You can verify it is working by opening your domain in a browser; you should see the default Nginx welcome page.
### Install Ghost CLI and Ghost
```bash
# Run as root or with sudo
npm install ghost-cli@latest -g
# Create a home directory for your website
sudo mkdir -p /var/www/techflak.com
sudo chown