You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* feat: Adds CloudFront and HTTPS support [WIP]
* feat: Implements CloudFront in example, allows customization of Load Balancer Security Group, improves documentation, finishes HTTP support
* chore: removes unnecessary setting in pre-commit-config
* chore: removes unnecessary files and pre-commit hooks
* chore: Sets oldest supported TF version to v1.1
* chore: Tries to fix pre-commit for minVersion
* chore: Are you gonna work yet?
* chore: restore pre-commit...
* chore: updates versions
* docs: Updates TF version requirement to 1.5
Copy file name to clipboardExpand all lines: README.md
+40-33Lines changed: 40 additions & 33 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,8 +1,18 @@
1
-
# Terraform AWS Directus Module
1
+
# Terraform AWS Directus Module 🚀
2
2
3
-
This Terraform module deploys Directus on an AWS Fargate ECS cluster.
3
+
This Terraform module simplifies the deployment of [Directus](https://directus.io/) on an AWS Fargate ECS cluster.
4
4
5
-
## Usage
5
+
## 🌟 Features
6
+
7
+
-**Seamless Deployment** of Directus on AWS Fargate ECS
8
+
-**Automatic Scaling** and Load Balancing
9
+
-**High Availability** and Fault Tolerance
10
+
-**Customizable Configuration** Options
11
+
-**S3 Integration** for Static Assets
12
+
13
+
## 🚀 Quick Start
14
+
15
+
Deploy Directus quickly and easily by including this module in your Terraform configuration:
6
16
7
17
```hcl
8
18
module "directus" {
@@ -55,55 +65,47 @@ module "directus" {
55
65
tags = {
56
66
Application = "Directus"
57
67
Environment = "Test"
58
-
} # Change these tags to your prefered tags
59
-
68
+
} # Change these tags to your preferred tags
69
+
}
60
70
```
61
71
62
-
For further information on a complete example (including all dependencies, such as database inputs) check [here](https://github.com/GiamPy5/terraform-aws-directus/tree/main/examples).
63
-
64
-
## Features
72
+
For a complete example, including all dependencies like database inputs, check out the [examples](https://github.com/GiamPy5/terraform-aws-directus/tree/main/examples) section.
65
73
66
-
- Easy deployment of Directus on AWS Fargate ECS
67
-
- Automatic scaling and load balancing
68
-
- Highly available and fault-tolerant architecture
69
-
- Customizable configuration options
70
-
- S3 integration for static assets
74
+
## 📋 Prerequisites
71
75
72
-
## To-Be-Done
76
+
Before using this module, ensure you have the following:
73
77
74
-
-Implement Redis to allow multi-container deployment (currently only one is supported) (https://docs.directus.io/self-hosted/config-options.html#redis)
75
-
-Implement Amazon Cognito authentication
76
-
-HTTPS support
78
+
-An **AWS account** 🛠️
79
+
-**Terraform installed** on your machine 🌐
80
+
-Basic knowledge of **AWS services** and **Terraform** 📚
77
81
78
-
## Prerequisites
82
+
## 📅 Roadmap
79
83
80
-
Before using this module, make sure you have the following prerequisites:
@@ -155,11 +157,14 @@ Before using this module, make sure you have the following prerequisites:
155
157
| <aname="input_create_cloudwatch_logs_group"></a> [create\_cloudwatch\_logs\_group](#input\_create\_cloudwatch\_logs\_group)| Whether to create a CloudWatch Logs group |`bool`|`false`| no |
156
158
| <aname="input_create_s3_bucket"></a> [create\_s3\_bucket](#input\_create\_s3\_bucket)| Whether to create an S3 bucket |`bool`|`false`| no |
157
159
| <aname="input_ecs_service_enable_execute_command"></a> [ecs\_service\_enable\_execute\_command](#input\_ecs\_service\_enable\_execute\_command)| Whether to enable ECS service execute command |`bool`|`false`| no |
160
+
| <aname="input_enable_alb_access_logs"></a> [enable\_alb\_access\_logs](#input\_enable\_alb\_access\_logs)| Whether to enable access logs of the Load Balancer |`bool`|`false`| no |
158
161
| <aname="input_enable_ses_emails_sending"></a> [enable\_ses\_emails\_sending](#input\_enable\_ses\_emails\_sending)| Whether to enable sending emails using SES |`bool`|`false`| no |
159
162
| <aname="input_force_new_ecs_deployment_on_apply"></a> [force\_new\_ecs\_deployment\_on\_apply](#input\_force\_new\_ecs\_deployment\_on\_apply)| Whether to force a new deployment of the ECS service on apply |`bool`|`false`| no |
160
-
| <aname="input_healthcheck_path"></a> [healthcheck\_path](#input\_healthcheck\_path)| The path of the healthcheck endpoint |`string`|`"/server/ping"`| no |
161
163
| <aname="input_image_tag"></a> [image\_tag](#input\_image\_tag)| The tag of the Docker image |`string`|`"latest"`| no |
164
+
| <aname="input_load_balancer_allowed_cidr_blocks"></a> [load\_balancer\_allowed\_cidr\_blocks](#input\_load\_balancer\_allowed\_cidr\_blocks)| The CIDR blocks allowed to access the Load Balancer |`list(string)`| <pre>[<br> "0.0.0.0/0"<br>]</pre> | no |
165
+
| <aname="input_load_balancer_prefix_list_ids"></a> [load\_balancer\_prefix\_list\_ids](#input\_load\_balancer\_prefix\_list\_ids)| The prefix list IDs allowed to access the Load Balancer |`list(string)`|`[]`| no |
162
166
| <aname="input_memory"></a> [memory](#input\_memory)| The amount of memory to reserve for the Directus service |`number`|`4096`| no |
167
+
| <aname="input_public_url"></a> [public\_url](#input\_public\_url)| The public URL of the Directus service |`string`|`""`| no |
163
168
| <aname="input_rds_database_engine"></a> [rds\_database\_engine](#input\_rds\_database\_engine)| The engine of the RDS database |`string`| n/a | yes |
164
169
| <aname="input_rds_database_host"></a> [rds\_database\_host](#input\_rds\_database\_host)| The host of the RDS database |`string`| n/a | yes |
165
170
| <aname="input_rds_database_name"></a> [rds\_database\_name](#input\_rds\_database\_name)| The Name of the RDS database |`string`| n/a | yes |
@@ -170,6 +175,7 @@ Before using this module, make sure you have the following prerequisites:
170
175
| <aname="input_redis_port"></a> [redis\_port](#input\_redis\_port)| The port of the Redis server |`number`|`6379`| no |
171
176
| <aname="input_redis_username"></a> [redis\_username](#input\_redis\_username)| The username of the Redis server |`string`|`"default"`| no |
172
177
| <aname="input_s3_bucket_name"></a> [s3\_bucket\_name](#input\_s3\_bucket\_name)| The name of the S3 bucket |`string`|`""`| no |
178
+
| <aname="input_ssl_certificate_arn"></a> [ssl\_certificate\_arn](#input\_ssl\_certificate\_arn)| The ARN of the SSL certificate |`string`|`""`| no |
173
179
| <aname="input_subnet_ids"></a> [subnet\_ids](#input\_subnet\_ids)| The IDs of the subnets |`list(string)`| n/a | yes |
174
180
| <aname="input_tags"></a> [tags](#input\_tags)| The tags to apply to the resources |`map(string)`|`{}`| no |
175
181
| <aname="input_vpc_id"></a> [vpc\_id](#input\_vpc\_id)| The ID of the VPC |`string`| n/a | yes |
@@ -179,14 +185,15 @@ Before using this module, make sure you have the following prerequisites:
179
185
| Name | Description |
180
186
|------|-------------|
181
187
| <aname="output_load_balancer_dns_name"></a> [load\_balancer\_dns\_name](#output\_load\_balancer\_dns\_name)| The DNS name of the load balancer |
188
+
| <aname="output_load_balancer_listener_arn"></a> [load\_balancer\_listener\_arn](#output\_load\_balancer\_listener\_arn)| The ARN of the load balancer listener |
189
+
| <aname="output_load_balancer_target_group_arn"></a> [load\_balancer\_target\_group\_arn](#output\_load\_balancer\_target\_group\_arn)| The ARN of the load balancer target group |
182
190
| <aname="output_s3_bucket_arn"></a> [s3\_bucket\_arn](#output\_s3\_bucket\_arn)| The ARN of the S3 bucket |
183
191
| <aname="output_s3_bucket_name"></a> [s3\_bucket\_name](#output\_s3\_bucket\_name)| The name of the S3 bucket |
184
-
<!-- END_TF_DOCS -->
185
192
186
-
## Contributing
193
+
## 🤝 Contributing
187
194
188
-
Contributions to this module are welcome! If you encounter any issues or have suggestions for improvements, please open an issue or submit a pull request on the GitHub repository.
195
+
Contributions are welcome! If you encounter any issues or have suggestions for improvements, please open an issue or submit a pull request on the [GitHub repository](https://github.com/GiamPy5/terraform-aws-directus).
189
196
190
-
## License
197
+
## 📄 License
191
198
192
199
This module is open source and available under the [MIT License](https://opensource.org/licenses/MIT).
0 commit comments