jeshan / serverless-ghost

Ghost ported to (mostly) serverless on AWS

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

serverless-ghost

The Ghost project ported to AWS Lambda.

serverless-ghost is the easiest way to get a professional blogging platform running (mostly) on serverless technologies on AWS.

Caution: Beta software, here be dragons!

Features

Known to work

Don't expect 100% feature parity yet!

  • Basic CRUD of posts and pages
  • Emails
  • CDN
  • Integration with Sentry (though they don't really advertise it)
  • Upload themes
  • Upload images and assets
  • Api keys

Untested

They may work.

  • Webhooks
  • Newsletters
  • Update new versions of Ghost (but it should work)

Additional features

serverless-ghost provides a few facilities:

AWS integrations

The following are made possible/easier with serverless-ghost:

  • Serve Ghost on your own domain (through Api Gateway).
  • Creates a VPC dedicated to your Ghost installation.
  • Free SSL certificates with Certificate Manager.
  • Send emails with Amazon SES (e.g "forgot password" and welcome emails)
  • Option to use regular Mysql or Aurora serverless
  • Filesystem to host themes and other content with Amazon EFS
  • Upload assets onto Amazon S3
  • Deliver assets via Amazon CloudFront CDN
  • Secure access to your database with VPC and tight security groups
  • Automated IAM setup for Ghost to interact with the various services

Deployment instructions

TLDR

  • Click Launch stack:
  • Declare your desired DomainName stack parameter.
  • Check output for how to validate your SSL certificate.
  • Put the stack output WebsiteDns as CNAME in your dns settings
  • Hit the PingUrl given in the stack output
  • Access the blog at https://${DomainName}

This is what will get deployed:

Image automatically generated with cfnbuddy

The details

I expanded on the above in the deployment.md file. There are explanations, screenshots and documented issues there. Please read through it to make the most out of this project.

Non-goals

Making Ghost cloud-native or any form of re-architecting is out of scope. However, we do want to leverage AWS integrations where sensible as long as maintaining a separate fork is not required.

Licensing

Custom code provided in this repository is released under the Simplified BSD Licence.

This project includes code Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. See LICENCE-SAMPLECODE for details.

Upstream project is Copyright (c) 2013-2020 Ghost Foundation. See LICENCE-Ghost for details.

About

Ghost ported to (mostly) serverless on AWS

License:BSD 2-Clause "Simplified" License


Languages

Language:Python 48.0%Language:Dockerfile 38.4%Language:Shell 13.5%