OK, this post is obviously another one of those posts for the more technically minded in the audience - you have been warned :-)

How to migrate a website to Ghost on EC2.

Using Bitnami deployment dashboard helped get the process started. Following are notes that helped get it all sorted.

  1. Follow the instruction on Bitnami to get the Ghost instance started on Amazon EC2.
  2. On Amazon EC2 dashboard allocate an elastic IP address to the new instance.
  3. Rename the instance to something meaningful e.g. www.example.com.
  4. SSH into the EC2 instance. This will require that you download key and connect to the new instance via SSH, use the bitnami console for instructions. Following is the format of the command ssh -i [your-private-key].pem [email protected][replace-with-EC2-ip-address].
  5. Set certificate and DNS for the website following the instructions at https://docs.bitnami.com/aws/apps/ghost/administration/generate-configure-certificate-letsencrypt/
  6. Remove the Bitnami banner following the instructions at https://docs.bitnami.com/aws/how-to/bitnami-remove-banner/
  7. Change ghost url in configuration following the instructions at https://docs.bitnami.com/aws/apps/ghost/administration/configure-domain/
  8. When changing the ghost url also edit the /opt/bitnami/apps/ghost/htdocs/config.production.json and ensure that the url is HTTPS without port :80 - if a change is required then restart ghost using instructions found here https://bitnami.com/stack/ghost/README.txt - hint use sudo /opt/bitnami/ctlscript.sh restart ghost.
  9. If redirect loop to following instructions here https://community.bitnami.com/t/how-to-get-https-working-80-redirect-loop-issues-resolved-ghost-gcp/55867 - in summary stop ghost then add RequestHeader set X-Forwarded-Proto "https" to top of /opt/bitnami/apps/ghost/conf/httpd-app.conf.
  10. Make changes for Ghost email SMTP in configuration using the instructions found here https://docs.bitnami.com/aws/apps/ghost/configuration/configure-smtp/ - once again restart ghost as required.

Comments welcome

Have you got a suggestion for the list?

Let's continue the conversation.