{"id":15511531,"url":"https://github.com/manoranjanads/strapi_prod","last_synced_at":"2025-10-12T08:31:44.995Z","repository":{"id":202372696,"uuid":"344977619","full_name":"manoranjanads/strapi_prod","owner":"manoranjanads","description":"An easy automated deployment for Headless CMS Strapi on to AWS with Ansible.","archived":false,"fork":false,"pushed_at":"2021-03-08T00:58:11.000Z","size":370,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-10-02T09:53:53.725Z","etag":null,"topics":["ansible","aws","strapi","terraform"],"latest_commit_sha":null,"homepage":"https://strapi.manoranjana.me","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/manoranjanads.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2021-03-06T01:28:12.000Z","updated_at":"2021-03-10T08:37:40.000Z","dependencies_parsed_at":null,"dependency_job_id":"4d2e010e-c8e2-4b71-b0e5-77ef564280f9","html_url":"https://github.com/manoranjanads/strapi_prod","commit_stats":null,"previous_names":["manoranjanads/strapi_prod"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manoranjanads%2Fstrapi_prod","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manoranjanads%2Fstrapi_prod/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manoranjanads%2Fstrapi_prod/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manoranjanads%2Fstrapi_prod/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/manoranjanads","download_url":"https://codeload.github.com/manoranjanads/strapi_prod/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":236188322,"owners_count":19109390,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ansible","aws","strapi","terraform"],"created_at":"2024-10-02T09:53:05.798Z","updated_at":"2025-10-12T08:31:39.709Z","avatar_url":"https://github.com/manoranjanads.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":" # Automated Strapi for AWS\n\n![Hello Friend](https://res.cloudinary.com/manoranjana-me/image/upload/v1615094975/Strapi-Gatsby%20Project/main_wvtwe0.jpg?raw=true)\n\n### DEMO - https://strapi.manoranjana.me\n\n\u003ca href=\"https://bit.ly/3boHtcQ\" target=\"_blank\"\u003e\u003cimg src=\"https://res.cloudinary.com/manoranjana-me/image/upload/v1615094785/Strapi-Gatsby%20Project/button_ansible-code_kzngua.png\" alt=\"Download Ansible\" \u003e\u003c/a\u003e\n\n## Features\n\n- Pre-built APIs (home, header, about etc.)\n- User roles and authentications\n- Code Automation with Ansible\n- Postgre DB integration (AWS RDS)\n- AWS S3 integration\n- Webhook support (CI/CD)\n\n## Prerequisite\nYou should have an active [AWS](https://aws.amazon.com/) account. Just enough!\n\n## How to start\n\nFirst you need to setup an EC2 instance in your AWS account with Ubuntu 20.04. Then you have to create RDS Database as you preffer. (Currently, I have setup for PostgreSQL on RDS). Next, create a S3 Bucket.\n\nKeep in mind!\nYou should setup security rules for your setup allowing bellow ports in AWS Security groups.\n\n![AWS Inboud Rules](https://res.cloudinary.com/manoranjana-me/image/upload/v1615099310/Strapi-Gatsby%20Project/inboud_rules_ywmxnk.jpg)\n \nOnce you setup all, create your security credentials on AWS. Now you are ready to launch the app.\n\n### DNS Setup\nOnce you setup, you should point a full qualified domain to your EC2 public repository by it's Public IP address.\nCreate an **A RECORD** pointing your domain as follows:\n\n    A RECORD    -    strapi.manoranjana.me      -     44.125.35.15\n\n## Automatic Deployment\nOnce you ready, you can open up the Ansible code you have downloaded. \nThen navigate to `inventory.yml` and replace your AWS pem file with yours and your EC2 Public IP. Now go to `group_vars/all.yml` and replace with your variables as required. Then, return back to the root  and run as follows in your terminal:\n\n    ansible-playbook -i inventory.yml strapi_main.yml\n\n**Reminder:** You should have installed Ansible on your local machine before proceed. I recommend to use Ansible on Windows WSL2, Ubutu 20.04 or MacOS for all works.\n\n## How it Works\n\nThis is awesome! \nIf you run the Ansible script above, you don't have to do anything else. \nAll most all the setups including, packages, Nginx Server, R3 SSL, Automatic services are properly installed on your EC2 instance. \n\n#### High Level Architecture\n![High Level Archi](https://res.cloudinary.com/manoranjana-me/image/upload/v1615094192/Strapi-Gatsby%20Project/simple-architecure_ooiejd.png)\n\n\n#### Webhook Configuration (CI/CD)\nBy using a Webhook, you can easily trigger the EC2 instance. You should follow up steps bellow:\n\nYou will need to access the  `Settings`  tab for your  `Strapi Project Repository`:\n\n1.  Navigate and click to  `Settings`  for your repository.\n2.  Click on  `Webhooks`, then click  `Add Webhook`.\n3.  The fields are filled out like this:\n    -   Payload URL: Enter  `http://your-ip-address:8080`\n    -   Content type: Select  `application/json`\n    -   Which events would you like to trigger this webhook: Select  `Just the push event`\n    -   Secret: Enter  `YourSecret`\n    -   Active: Select the checkbox\n4.  Review the fields and click  `Add Webhook`.\n\n**Note:** Above instructions are mostly compatible with GitHub. But you also can use GitLab or any other provider as well.\n\nOnce you setup webhook, every time you push anything to your project, it automatically triggers the EC2 instance and rebuild itself.\n### Check API Endpoints\nYou can check whether your API responses are working to the public, simply by making a GET request on one of the API on your project as follows: \n*Ex:*\n\n    GET http://strapi.manoranjana.me/about-page\n(Replace your domain and check.)\n\nIf the status is **200 OK** and show the content body properly, that means you can use these public endpoints to any of your works as required.\n\n## How to Contribute\n\nIf you spot any bugs, please use [Issue Tracker](https://github.com/mrghonline/strapi_prod) or if you want to add a new feature directly please create a new [Pull Request](https://github.com/mrghonline/strapi_prod/pulls).\n\n## Join with Me\n\nIf you like my work and want to contact me just visit my [Official Website](https://manoranjana.me/).\n\n\n## License\n\nCopyright © 2021 Mano. ([@mr](https://manoranjana.me))\n\nThe project is released under the [MIT License](https://opensource.org/licenses/MIT).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanoranjanads%2Fstrapi_prod","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmanoranjanads%2Fstrapi_prod","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanoranjanads%2Fstrapi_prod/lists"}