{"id":20794653,"url":"https://github.com/danieladetiba-dev/altschool-assignment--2","last_synced_at":"2026-02-09T23:04:04.633Z","repository":{"id":253262199,"uuid":"823766226","full_name":"DanielADETIBA-dev/Altschool-Assignment--2","owner":"DanielADETIBA-dev","description":null,"archived":false,"fork":false,"pushed_at":"2024-07-03T17:54:50.000Z","size":2041,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-12T05:03:32.712Z","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/DanielADETIBA-dev.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":"2024-07-03T17:06:43.000Z","updated_at":"2024-08-14T13:41:40.000Z","dependencies_parsed_at":"2024-08-15T16:02:34.679Z","dependency_job_id":null,"html_url":"https://github.com/DanielADETIBA-dev/Altschool-Assignment--2","commit_stats":null,"previous_names":["danieladetiba-dev/altschool-assignment--2"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/DanielADETIBA-dev/Altschool-Assignment--2","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanielADETIBA-dev%2FAltschool-Assignment--2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanielADETIBA-dev%2FAltschool-Assignment--2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanielADETIBA-dev%2FAltschool-Assignment--2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanielADETIBA-dev%2FAltschool-Assignment--2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DanielADETIBA-dev","download_url":"https://codeload.github.com/DanielADETIBA-dev/Altschool-Assignment--2/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanielADETIBA-dev%2FAltschool-Assignment--2/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29284763,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-09T21:57:15.303Z","status":"ssl_error","status_checked_at":"2026-02-09T21:57:11.537Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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-11-17T16:16:13.715Z","updated_at":"2026-02-09T23:04:04.619Z","avatar_url":"https://github.com/DanielADETIBA-dev.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n-------------------------------------\nProject: Deploy a Static Website on AWS using Terraform\n\n\nObjective:\nCreate an AWS infrastructure to host a static website using Terraform. The infrastructure will include AWS S3 for storing the website files, CloudFront for content delivery, and Route 53 for domain name management. Additional configurations will involve setting up IAM roles and policies, API Gateway, and SSL certificates.\n\n\nPrerequisites:\nAWS Account\nDomain name registered in Route 53\n\n\nFile Structure\n├── api_gateway_config.tf\n├── api_gateway_resources.tf\n├── certificate.tf\n├── data.tf\n├── init.tf\n├── main.tf\n├── outputs.tf\n├── permissions.tf\n├── README.md\n├── route53.tf\n├── variables.tf\n└── s3-static-website.png\n\nFiles Description:\napi_gateway_config.tf: Configuration for API Gateway.\napi_gateway_resources.tf: API Gateway resources definition.\ncertificate.tf: SSL certificate configuration.\ndata.tf: Data sources for Terraform.\ninit.tf: Initialization configuration for Terraform.\nmain.tf: Main infrastructure setup.\noutputs.tf: Outputs for Terraform.\npermissions.tf: IAM roles and policies.\nREADME.md: Project documentation.\nroute53.tf: Route 53 DNS configuration.\nvariables.tf: Variables used in the Terraform project.\ns3-static-website.png: Diagram of the infrastructure.\n\n\nTasks:\n1. Initialize the Terraform Project\nRun terraform init to initialize the Terraform project.\nEnsure all necessary providers and modules are installed.\n\n2. Configure AWS S3 Bucket\nCreate an S3 bucket to host the static website.\nConfigure the bucket policy to make it publicly accessible.\nDefine the index.html and error.html as the default documents.\n\n3. Set Up CloudFront Distribution\nCreate a CloudFront distribution to serve the content from the S3 bucket.\nConfigure the default_root_object to point to index.html.\nIntegrate the SSL certificate for HTTPS.\n\n4. Manage Domain with Route 53\nConfigure Route 53 to manage the custom domain.\nCreate DNS records to point to the CloudFront distribution.\n\n5. Security and Access Management\nDefine IAM roles and policies to secure the S3 bucket and CloudFront distribution.\nImplement least privilege access for IAM roles.\n\n6. API Gateway Configuration\nConfigure API Gateway for handling HTTP requests.\nDefine necessary resources and methods in api_gateway_resources.tf.\n\n7. SSL Certificate Configuration\nRequest and validate an SSL certificate using ACM.\nAttach the SSL certificate to the CloudFront distribution.\n\n8. Deployment and Testing\nDeploy the infrastructure using terraform apply.\nVerify the deployment by accessing the website via the custom domain.\nDocumentation\nEnsure the README.md file contains detailed instructions on setting up and deploying the infrastructure, including prerequisites, steps to run Terraform commands, and verification steps.\n\n\nYou have to deploy the resources as a module\n\n\nmodule \"s3_bucket\" {\nname: name_of_bucket\nother config\n}\n\n\nmodule \"cloudfront\" {\nconfig ...\n}\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanieladetiba-dev%2Faltschool-assignment--2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdanieladetiba-dev%2Faltschool-assignment--2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanieladetiba-dev%2Faltschool-assignment--2/lists"}