{"id":15874315,"url":"https://github.com/genaker/terraformwordpress","last_synced_at":"2026-03-18T17:06:00.627Z","repository":{"id":99663344,"uuid":"413569906","full_name":"Genaker/TerraformWordPress","owner":"Genaker","description":"Auto-Scalable AWS infrastructure using Terraform for WooCommerce and WordPress","archived":false,"fork":false,"pushed_at":"2021-10-05T03:31:14.000Z","size":14,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-29T00:31:25.416Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HCL","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/Genaker.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-10-04T20:14:31.000Z","updated_at":"2022-11-10T21:14:33.000Z","dependencies_parsed_at":null,"dependency_job_id":"b270dea7-be30-49f6-9625-49d53604abc5","html_url":"https://github.com/Genaker/TerraformWordPress","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Genaker%2FTerraformWordPress","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Genaker%2FTerraformWordPress/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Genaker%2FTerraformWordPress/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Genaker%2FTerraformWordPress/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Genaker","download_url":"https://codeload.github.com/Genaker/TerraformWordPress/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246724802,"owners_count":20823543,"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":[],"created_at":"2024-10-06T01:21:46.052Z","updated_at":"2026-01-11T01:16:30.127Z","avatar_url":"https://github.com/Genaker.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WordPress and WooCommerce Terraform AWS Cloud Infrastructure \n\n![WordPress and WooCommerce Cloud Terraform infrastructure](https://user-images.githubusercontent.com/9213670/135955569-13d897c2-42f9-4369-9f34-d95904e523a8.png)\n\n**WordPress** and **WooCommerce** AWS Cloud has the next components:\n - Web Node with Auto Scaling and support of ARM Graviton 2 instances,\n - ElasticSearch, plugin like this required https://wordpress.org/plugins/elasticpress/\n - Relational database MySQL/MariaDB or Aurora RDS\n - Redis ElastiCahe for Sessions and Caches, plugin like this requred https://wordpress.org/plugins/redis-cache/\n - CloudWatch for monitoring and allerting \n - AWS SES(Simple Email Service)/SMTP to send email \n - NFS/EFS shared network file system \n\n## Quick start\n\n1. [Install Terraform 0.15 or newer](https://learn.hashicorp.com/tutorials/terraform/install-cli)\n1. [Install Terragrunt 0.29 or newer](https://terragrunt.gruntwork.io/docs/getting-started/install/)\n1. Optionally, [install pre-commit hooks](https://pre-commit.com/#install) to keep Terraform formatting and documentation up-to-date.\n\nIf you are using macOS you can install all dependencies using [Homebrew](https://brew.sh/):\n```\n    $ brew install terraform terragrunt pre-commit\n```\n## Configure access to AWS account\n\nThe recommended way to configure access credentials to AWS account is using environment variables:\n\n```\n$ export AWS_DEFAULT_REGION=ap-southeast-1\n$ export AWS_ACCESS_KEY_ID=...\n$ export AWS_SECRET_ACCESS_KEY=...\n```\n\nAlternatively, you can edit `terragrunt.hcl` and use another authentication mechanism as described in [AWS provider documentation](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#authentication).\n\n## Create and manage your infrastructure\n\nInfrastructure consists of multiple layers (wp_auto_scaling, mysql, load_balancer, ...) where each layer is described using one [Terraform module](https://www.terraform.io/docs/configuration/modules.html) with `inputs` arguments specified in `terragrunt.hcl` in respective layer's directory.\n\nNavigate through layers to review and customize values inside `inputs` block.\n\nThere are two ways to manage infrastructure (slower\u0026complete, or faster\u0026granular):\n- **Region as a whole (slower\u0026complete).** Run this command to create infrastructure in all layers in a single region:\n\n```\n$ cd region\n$ terragrunt run-all apply\n```\n\n- **As a single layer (faster\u0026granular).** Run this command to create infrastructure in a single layer (eg, `wp_auto_scaling`):\n\n```\n$ cd ap-southeast-1/wp_auto_scaling\n$ terragrunt apply\n```\n\nAfter the confirmation your infrastructure should be created.\n\n## Destroy/Delete infrastructure\n\n**destroy-all** (DEPRECATED: use run-all)\nDEPRECATED: Use **run-all destroy** instead.\n\n```\n terragrunt run-all destroy\n```\n\nDestroy a ‘stack’ by running ‘terragrunt destroy’ in each subfolder.\n\n## Provisioned infrastructure configuration values\nAfter **apply** command run:\n```\nterragrunt run-all output\n#or\nterragrunt output-all\n```\nor by modules:\n```\ncd load_balancer\nterragrunt run-all output\n#or\nterragrunt output-all --terragrunt-non-interactive\n```\n\nThe terraform/trragrunt **output** command is used to extract the value of an output variable from the state file.\n\nWith no additional arguments, output will display all the outputs for the root module. If an output NAME is specified, only the value of that output is printed.\n\nThe command-line flags are all optional. The list of available flags are:\n\n**-json** - If specified, the outputs are formatted as a JSON object, with a key per output. If NAME is specified, only the output specified will be returned. This can be piped into tools such as jq for further processing.\n**-raw** - If specified, Terraform will convert the specified output value to a string and print that string directly to the output, without any special formatting. This can be convenient when working with shell scripts, but it only supports string, number, and boolean values. Use -json instead for processing complex data types.\n**-no-color** - If specified, output won't contain any color.\n**-state=path** - Path to the state file. Defaults to \"terraform.tfstate\". Ignored when remote state is used.\n\n## References\n\n* [Terraform documentation](https://www.terraform.io/docs/) and [Terragrunt documentation](https://terragrunt.gruntwork.io/docs/) for all available commands and features\n* [Terraform AWS modules](https://github.com/terraform-aws-modules/)\n* [Terraform modules registry](https://registry.terraform.io/)\n* [Terraform best practices](https://www.terraform-best-practices.com/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgenaker%2Fterraformwordpress","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgenaker%2Fterraformwordpress","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgenaker%2Fterraformwordpress/lists"}