> Source: https://meetrix.io/blogs/strapi-developer-guide/
> Markdown copy of that page. Cite the URL above, not this file.

Development

# Strapi - Developer Guide

[By Hiruna Kumara](https://meetrix.io/blogs/authors/hiruna-kumara/) • July 16, 2024 • 5 min read

Welcome to the Meetrix Strapi Developer Guide! Strapi is a flexible headless CMS ideal for building websites, mobile apps, eCommerce platforms, and APIs. It simplifies API creation by automatically generating them from your content models, eliminating the need for backend or database knowledge. This guide offers thorough, step-by-step instructions to help you integrate Strapi smoothly into your development projects.

## Video Guide

### Related Article

[

How to Install Strapi on AWS with Pre-configured AMI: A Comprehensive Guide

The step-by-step process to deploy Strapi on AWS using a pre-configured AMI. Learn about setup, monitoring, scaling, security best practices, and more to optimize your Strapi installation for efficiency and performance.

Meetrix.IO - Kelum Sampath

![How to Install Strapi on AWS via AMI](https://meetrix.io/blog-images/paas-products-articles/how-to-install-strapi/how-to-install-strapi.png)](https://meetrix.io/blogs/how-to-install-strapi/)

Prerequisites

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

-   Basic knowledge of AWS services, including EC2 instances and CloudFormation.
-   An active AWS account with appropriate permissions.
-   Enough vCPU limit to create instance  
    (Follow [https://meetrix.io/blogs/increase-aws-vcpu-quota/](https://meetrix.io/blogs/increase-aws-vcpu-quota/) blog to ensure this)

## Launching the AMI

### Step 1: Find and Select 'Strapi' AMI

1.  Log in to your AWS Management Console.
2.  Navigate to the '[Strapi](https://aws.amazon.com/marketplace/pp/prodview-orixghaunrwci)' in AWS Marketplace.

### Step 2: Initial Setup & Configuration

1.  Click the **"Continue to Subscribe"** button.
2.  After subscribing, you will need to accept the terms and conditions. Click on **"Accept Terms"** to proceed.
3.  Please wait for a few minutes while the processing takes place. Once it's completed, click on **"Continue to Configuration".**
4.  Select the **"CloudFormation script to deploy Strapi"** as the fulfilment option and choose your preferred region on the "Configure this software" page. Afterward, click the **"Continue to Launch"** button.
5.  From the "Choose Action" dropdown menu in "Launch this software" page, select **"Launch CloudFormation"** and click **"Launch"** button.

## Create CloudFormation Stack

### Step1: Create stack

1.  Ensure the **"Template is ready"** radio button is selected under "Prepare template".

2\. Click "Next".

### Step2: Specify stack options

Provide the necessary parameters for your Strapi deployment. These settings define how your instance will be configured.

| Parameter | Description |
| --- | --- |
| Stack name | A unique name for your CloudFormation stack (e.g., `my-strapi-deployment`). |
| Admin Email | The email address for generating SSL certificates with Let's Encrypt. |
| DeploymentName | A name for your deployment (e.g., `strapi`). |
| DomainName | Your public domain name (e.g., `strapi.yourdomain.com`). Strapi will automatically try to set up SSL if this domain is hosted on Route 53. If unsuccessful, you will need to set up SSL manually. |
| InstanceType | The EC2 instance type. We recommend `t3.small` or larger for optimal performance. |
| KeyName | The name of your preferred EC2 key pair for SSH access. |
| S3Bucket | The name of an S3 bucket used for storing database backups. |
| SSHLocation | The IP address range for SSH access. Defaults to `0.0.0.0/0` (open to all). For better security, restrict this to your IP. |
| SubnetCidrBlock | The CIDR block for the subnet. Defaults to `10.0.0.0/24`. |
| VpcCidrBlock | The CIDR block for the VPC. Defaults to `10.0.0.0/16`. |

Click "Next".

### Step3: 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".

### Step4: Review

1.  Review and verify the details you've entered.
![Reviewing CloudFormation stack parameters for Strapi](https://meetrix.io/blog-images/paas-dev-guides/strapi/strapi-01.png)3.  Tick the box that says, **"I acknowledge that AWS CloudFormation might create IAM resources with custom names"**.
![Acknowledging IAM resource creation in CloudFormation](https://meetrix.io/blog-images/paas-dev-guides/strapi/strapi-02.png)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.

![Strapi CloudFormation stack successfully created](https://meetrix.io/blog-images/paas-dev-guides/strapi/strapi-03.png)

## Update DNS

### Step1: Copy IP Address

Copy the public Ip labeled **"PublicIp"** in the **"Outputs"** tab.

![Copying the PublicIp from CloudFormation Outputs tab](https://meetrix.io/blog-images/paas-dev-guides/strapi/strapi-04.png)

### Step2: Update DNS

1.  Go to AWS Route 53 and navigate to "Hosted Zones".
2.  From there click on **Create record**.
![Creating a DNS record in AWS Route 53 for Strapi](https://meetrix.io/blog-images/paas-dev-guides/strapi/strapi-05.png)4.  Add **record name** and then paste the copied **"PublicIp"** into the **"value"** textbox.
5.  Click "Save".

## Access Strapi

You can setup the Strapi application through the **"DashboardUrl"** or **"DashboardUrlIp"** provided in the "Outputs" tab. This will allow you to create an Admin account and all the future accounts will be created through the Admin panel.

![Strapi DashboardUrl in CloudFormation Outputs](https://meetrix.io/blog-images/paas-dev-guides/strapi/strapi-06.png)

Note

If you encounter a "502 Bad Gateway error", please wait for about 5 minutes before refreshing the page.

![Strapi admin account creation screen](https://meetrix.io/blog-images/paas-dev-guides/strapi/strapi-07.png)

Enter all the details and Click on Let's start button. Make sure to choose a strong password.

![Strapi initial admin setup form](https://meetrix.io/blog-images/paas-dev-guides/strapi/strapi-08.png)

## Generate SSL Manually

Strapi will automatically try to setup SSL based on provided domain name, if that domain hosted on Route53. If its unsuccessful then you have to setup SSL manually.

### Step1: Copy IP Address

1.  Proceed with the instructions outlined in the above **"Update DNS"** section, if you have not already done so.
2.  Copy the Public IP address indicated as **"PublicIp"** in the **"Outputs"** tab.

![Copying the PublicIp from CloudFormation Outputs tab](https://meetrix.io/blog-images/paas-dev-guides/strapi/strapi-09.png)

### Step2: Log in to the server

1.  Open the terminal and go to the directory where your private key is located.
2.  Paste the following command into your terminal and press Enter:

```bash
ssh -i <your key name> ubuntu@<Public IP address>
```

![Logging into Strapi server via SSH](https://meetrix.io/blog-images/paas-dev-guides/strapi/strapi-10.png)

3\. Type "yes" and press Enter. This will log you into the server.

### Step3: Generate SSL

Paste the following command into your terminal and press Enter and follow the instructions:

```bash
sudo /root/certificate_generate_standalone.sh
```

Admin Email is acquiring for generate SSL certificates.

## Shutting Down Strapi

1.  Click the link labeled **"Instance"** in the **"Resources"** tab to access the EC2 instance, you will be directed to the Strapi instance in EC2.
![Navigating to the EC2 instance from CloudFormation](https://meetrix.io/blog-images/paas-dev-guides/strapi/strapi-11.png)3.  Select the Strapi instance by marking the checkbox and click **"Stop instance"** from the **"Instance state"** dropdown. You can restart the instance at your convenience by selecting **"Start instance"**.
![Stopping the Strapi EC2 instance](https://meetrix.io/blog-images/paas-dev-guides/strapi/strapi-12.png)

## Remove Strapi

Delete the stack that has been created in the AWS Management Console under 'CloudFormation Stacks' by clicking the 'Delete' button.

## Conclusion

The Meetrix Strapi Developer Guide is your ultimate resource for flawlessly integrating Strapi into your projects. Whether you're a seasoned developer or just starting out, our guide offers clear, step-by-step instructions to ensure a smooth setup process. Strapi is a powerful and intuitive CMS that simplifies content management and API creation, making it accessible for users of all skill levels. With the Meetrix Strapi Developer Guide, you'll confidently leverage Strapi's capabilities, empowering you to build modern, dynamic web and mobile applications with ease.

## Technical Support

Reach out to Meetrix Support ([aws@meetrix.io](mailto:aws@meetrix.io)) for assistance with Strapi issues.

## Deploy Strapi on AWS Today

Launch your own Strapi instance with Meetrix's pre-configured AMI and take full control of your headless CMS deployment.

[Get Started on AWS Marketplace](https://aws.amazon.com/marketplace/pp/prodview-orixghaunrwci)

Meetrix Store

Strapi

Content APIs, REST and GraphQL, MIT licensed

[Deploy it](https://meetrix.io/store/strapi/)

Meetrix Store New

Deploy what this guide covers, pre-configured.

-    [Strapi Content APIs, REST and GraphQL, MIT licensed](https://meetrix.io/store/strapi/)
-    [Directus REST and GraphQL APIs on your SQL database](https://meetrix.io/store/directus/)
-    [Supabase Postgres, Auth, Storage and Realtime, self-hosted](https://meetrix.io/store/supabase/)
-    [Jitsi Meet Self-hosted video calls for 50 to 500 users](https://meetrix.io/store/jitsi-meet/)
-    [RustDesk Remote desktop AMI, a TeamViewer alternative](https://meetrix.io/store/rustdesk/)
-    [Coturn TURN/STUN for WebRTC, no per-minute relay fees](https://meetrix.io/store/coturn/)

[Browse all products](https://meetrix.io/store/)
