How to setup a blog with DigitalOcean Ghost 1-Click App?

Why not Ghost (Pro)?

Starcraft: We Require More Minerals.

Service Provider Min Charge (Monthly)
Ghost (Pro) USD 29
DigitalOcean Droplet + Weekly backup
= USD 5 + USD 1
= USD 6

DigitalOcean Ghost 1-Click App

Symptom 1

Press enter when you're ready to get started!

...

โœ” Starting Ghost
One or more errors occurred.

1) SystemError

Message: Your domain name is not pointing to the correct IP address of your server, check your DNS has propagated and run `ghost setup ssl` again

Reason 1

Misconfigured or missing DNS A record

Solution 1


And then continue with ghost setup command as ghost user.


Symptom 2

# Run as ghost user
$ ghost setup ssl
? Enter your email (For SSL Certificate) 
+ sudo .../acme.sh ...
โœ– Setting up SSL
One or more errors occurred.

1) ProcessError

Message: Command failed: /bin/sh -c sudo -S -p '...'  .../acme.sh ...
[Fri Aug 21 13:07:18 UTC 2020] alantsui.blog:Verify error:Invalid response from ...
[Fri Aug 21 13:07:18 UTC 2020] Please add '--debug' or '--log' to check more details.
[Fri Aug 21 13:07:18 UTC 2020] See: https://github.com/acmesh-official/acme.sh/wiki/How-to-debug-acme.sh

[Fri Aug 21 13:07:12 UTC 2020] Single domain='alantsui.blog'
[Fri Aug 21 13:07:12 UTC 2020] Getting domain auth token for each domain
[Fri Aug 21 13:07:14 UTC 2020] Getting webroot for domain='alantsui.blog'
[Fri Aug 21 13:07:14 UTC 2020] Verifying: alantsui.blog

Exit code: 1

Reason 2

DigitalOcean Ghost 1-Click App does not automate Let's encrypt configuration thoroughly.

Solution 2

# Run as root
sudo apt-get install python-certbot-nginx -y
sudo certbot --nginx -d alantsui.blog -d www.alantsui.blog

# ... Congratulations! Your certificate and chain have been saved at:
#   /etc/letsencrypt/alantsui.blog/fullchain.pem
# This is the path of ssl_certificate in Nginx SSL conf file

Symptom 3

This page isnโ€™t workingwww.alantsui.blog redirected you too many times.
Try clearing your cookies.
ERR_TOO_MANY_REDIRECTS

Reason 3

Incorrect Nginx configuration.

Solution 3

Fix with https://www.digitalocean.com/community/tools/nginx

CloudFlare

TBA

HTTPS

Let's encrypt

certbot instructions for wildcard SSL certs

Google Analytics

Google Analytics + Ghost

AMP

How to find your Google Analytics Tracking ID

Discourse

Follow [discourse/docs/INSTALL-cloud.md]
(https://github.com/discourse/discourse/blob/master/docs/INSTALL-cloud.md)
and discourse_docker

As default port is used by Ghost, I need to use another port for Discourse.

Alright, it's not trivial...
How To Install Discourse on Ubuntu 18.04
Advanced Setup Only: Allowing SSL / HTTPS for your Discourse Docker setup