Welcome to the Ghost Deployment Guide for AWS! Ghost is a powerful open-source publishing platform built for modern online publishing. Whether you're running a blog, newsletter, or membership site, this guide walks you through deploying Ghost on AWS using Meetrix's pre-configured AMI, configuring your domain, enabling SSL, and operating it reliably.

Video Guide

Prerequisites

Before you get started with the Ghost AMI, ensure you have the following prerequisites:

  • Basic knowledge of AWS services, including EC2 instances and CloudFormation.
  • An active AWS account with appropriate permissions.
  • A registered domain name with access to your DNS settings.
  • Enough vCPU limit to create an instance (Follow https://meetrix.io/blogs/increase-aws-vcpu-quota/ to ensure this).

Launching the AMI

Step 1: Find and Select the 'Ghost' AMI

  1. Log in to your AWS Management Console.
  2. Navigate to the 'Ghost' product in AWS Marketplace.

Step 2: Initial Setup & Configuration

  1. Click the "Continue to Subscribe" button.
  2. Accept the terms and click "Continue to Configuration".

Step 3: Launching the Instance

  1. Select the "CloudFormation" fulfillment option and choose your preferred region, then click "Continue to Launch".
  2. From the action menu, select "Launch CloudFormation" and click "Launch".

Create CloudFormation Stack

Step 1: Create Stack

  1. Ensure the "Template is ready" option is selected under "Prepare template".
  2. Click "Next".

Step 2: Specify Stack Details

  1. Provide a unique "Stack name".
  2. Provide the "Admin Email" for SSL generation.
  3. For "DeploymentName", enter a name of your choice.
  4. Provide a public domain name for "DomainName" (SSL will be set up automatically during deployment).
  5. Choose an instance type for "InstanceType" (Recommended: t3.small).
  6. Select your preferred "KeyName".
  7. Set "SSHLocation" as "0.0.0.0/0".
  8. Keep "SubnetCidrBlock" as "10.0.0.0/24".
  9. Keep "VpcCidrBlock" as "10.0.0.0/16".
  10. Click "Next".

Step 3: Configure Stack Options

  1. Choose "Roll back all stack resources" and "Delete all newly created resources" under the "Stack failure options" section.
  2. Click "Next".

Step 4: Review

  1. Review and verify the details you've entered.
  2. AWS CloudFormation Parameters tab for the Ghost stack showing DomainName, MailHost and a t3a.small instance type
  3. Tick the box that says "I acknowledge that AWS CloudFormation might create IAM resources with custom names".
  4. AWS CloudFormation IAM capabilities acknowledgment checkbox ticked before creating the Ghost stack
  5. Click "Submit".

Afterward, you'll be directed to the CloudFormation stacks page. Please wait for 5–10 minutes until the stack has been successfully created.

Ghost CloudFormation stack info tab showing CREATE_COMPLETE status and the stack overview

Update DNS

Step 1: Copy IP Address

Copy the public IP labeled "PublicIp" in the "Outputs" tab of your CloudFormation stack.

Ghost CloudFormation stack Outputs tab listing AdminUrl, DashboardUrl and the PublicIp Elastic IP

Step 2: Update DNS

  1. Go to AWS Route 53 and navigate to "Hosted Zones".
  2. Click Create record.
  3. Add the record name and paste the copied "PublicIp" into the "Value" textbox.
  4. Click "Save".
Route 53 Quick create record adding a ghost A record pointing to the Ghost instance Elastic IP

Access Ghost

Once the DNS propagates, you can access your Ghost site using the "DashboardUrl" provided in the "Outputs" tab. To access the Ghost Admin panel, append /ghost to your domain:

https://your-domain.com/ghost
Ghost CloudFormation stack Outputs tab with the AdminUrl admin panel link selected Default Ghost site homepage after deployment with the Thoughts, stories and ideas header and a subscribe form

Create your administrator account by providing your name, email, and password on the setup screen.

Ghost setup page asking for site title, full name, email address and password to create the admin account

After completing setup, you'll be taken to the Ghost Admin dashboard where you can create posts, manage members, configure your theme, and set up newsletters.

Ghost admin Analytics dashboard showing member count and latest post performance

Important

The account you create during setup is the Administrator Account for your Ghost deployment. The email and password you provide will be used to manage your entire publication, including inviting staff members, configuring integrations, and maintaining overall access.

Generate SSL Manually

Ghost will automatically try to set up SSL when a Route 53-hosted domain is provided. If it fails, follow these steps to generate SSL manually.

Step 1: Copy IP Address

  1. Follow the Update DNS steps above, if not already done.
  2. Copy the Public IP labeled "PublicIp" in the "Outputs" tab of your CloudFormation stack.

Step 2: Log in to the Server

  1. Open the terminal and navigate to the directory where your private key is located.
  2. Run:
ssh -i <your-key-name>.pem ubuntu@<Public IP address>
  1. Type "yes" and press Enter to confirm.

Step 3: Generate SSL

Run the following command and follow the prompts:

bash /root/certificate_generate_standalone.sh

Check Server Logs

Step 1: Log in to the Server

  1. Open the terminal and navigate to the directory where your private key is located.
  2. Connect to your instance using the following command:
ssh -i <your-key-name>.pem ubuntu@<Public IP address>
  1. Type "yes" and press Enter to confirm the host fingerprint and log in.
Terminal SSH connection to the Ghost server with a PEM key, typing yes at the host authenticity prompt

Step 2: Check the Logs

sudo docker ps

sudo docker logs <container_id or container_name>
Terminal sudo docker ps output showing the ghost 6.45.0 container running on port 2368

Shutting Down Ghost

  1. Click the link labeled "Instance" in the "Resources" tab of your CloudFormation stack to navigate to the EC2 instance.
  2. Stop the instance by selecting the checkbox and clicking "Stop instance" from the "Instance state" dropdown. You can restart it at any time by selecting "Start instance".
AWS EC2 instance state menu with Stop, Reboot and Terminate options for the running Ghost instance

Remove Ghost

Delete the CloudFormation stack from the AWS Management Console under "CloudFormation > Stacks" by selecting the stack and clicking the "Delete" button. This will remove all associated AWS resources.

Upgrades

When a new version of Ghost is available, we will update the product in AWS Marketplace. You can check the current product version in the Marketplace listing. If a newer version is available, remove the previous deployment and re-launch using the newer AMI version. Remember to back up your Ghost content and configuration before removing the existing stack.

Troubleshoot

  1. If you encounter a vCPU quota error when launching the stack, follow https://meetrix.io/blogs/increase-aws-vcpu-quota/ to increase your vCPU limit.
  2. CloudFormation events showing a CREATE_FAILED rollback caused by insufficient g4dn.metal instance capacity
  3. If you see a "do not have sufficient capacity" error while creating the stack, try changing the AWS region or retry at a later time.
  4. CloudFormation events showing a CREATE_FAILED rollback caused by insufficient g4dn.metal instance capacity
  5. If the Ghost admin panel is not accessible immediately after deployment, wait 5–10 minutes for the service to fully initialise, then refresh the page.
  6. Nginx 502 Bad Gateway error page shown by the Ghost server
  7. Check disk usage to ensure the instance storage is not full:
  • Log into the server and run:
df -h
Terminal df -h output showing disk space usage on the Ghost server root filesystem
  • If the root volume is between 90–100%, increase the EBS volume size following AWS documentation. Then reboot the instance and restart the Ghost service.

Conclusion

The Meetrix Ghost Deployment Guide helps you set up Ghost on AWS quickly and securely. Whether you're a developer, content creator, or DevOps engineer, this guide provides step-by-step instructions to deploy Ghost in a scalable and reliable way — with SSL, Docker-based management, and AWS best practices built in.

Technical Support

Reach out to Meetrix Support (aws@meetrix.io) for assistance with your Ghost deployment.

Frequently Asked Questions

What is Ghost?

Ghost is a powerful open-source publishing platform built for modern online publishing. It supports blogs, newsletters, and membership sites with a clean editor, built-in SEO, and native membership/subscription features.

What are the prerequisites for deploying Ghost on AWS?

You need basic knowledge of AWS services (EC2, CloudFormation), an active AWS account with appropriate permissions, a registered domain name with DNS access, and a sufficient vCPU limit to launch the required instance type.

Which instance type is recommended for Ghost?

t3.small is recommended as a baseline for running Ghost on AWS. You can scale up to t3.medium or larger depending on your traffic and membership volume.

How do I access the Ghost admin panel?

Once your domain propagates, append /ghost to your domain (e.g. https://your-domain.com/ghost) to reach the Ghost Admin panel and complete the initial setup.

How do I handle upgrades?

When a new version is available in the AWS Marketplace, back up your Ghost content and configuration, remove the previous deployment, then relaunch using the newer AMI version.

How do I get technical support?

Reach out to Meetrix Support at <a href='mailto:aws@meetrix.io'>aws@meetrix.io</a> for assistance with your Ghost deployment.

Ready to Deploy Your Own Ghost Instance?

Get started in minutes with our pre-configured AMI and take full control of your Ghost publishing platform on AWS.

Deploy Ghost from AWS Marketplace