https://github.com/awslabs/cloudfront-hosting-toolkit
CloudFront Hosting Toolkit offers the convenience of a managed frontend hosting service while retaining full control over the hosting and deployment infrastructure to make it your own.
Science Score: 13.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.7%) to scientific vocabulary
Keywords
Repository
CloudFront Hosting Toolkit offers the convenience of a managed frontend hosting service while retaining full control over the hosting and deployment infrastructure to make it your own.
Basic Info
Statistics
- Stars: 108
- Watchers: 5
- Forks: 4
- Open Issues: 4
- Releases: 0
Topics
Metadata Files
README.md
CloudFront Hosting Toolkit
CloudFront Hosting Toolkit is an open-source command-line tool designed to simplify the deployment and management of fast, secure frontend applications on AWS. It offers the convenience of a managed frontend hosting service while giving developers full control over their hosting and deployment infrastructure.
What is CloudFront Hosting Toolkit?
CloudFront Hosting Toolkit is a comprehensive solution that automates the process of setting up and managing a robust, scalable frontend hosting infrastructure on AWS. It leverages several AWS services, including CloudFront, S3, CodePipeline, and Lambda, to create a powerful hosting environment tailored for modern web applications.
Key features include: - 🚀 Automated setup of AWS resources for frontend hosting - 🔄 Continuous deployment pipeline for GitHub and S3-based workflows - 🌐 Optimized content delivery through CloudFront - 🔒 Built-in security features including HTTPS and security headers - 🔗 Custom domain support with automatic SSL/TLS certificate management - 🛠️ Flexible configuration options for various frontend frameworks
How It Works
CloudFront Hosting Toolkit streamlines the deployment process through a simple CLI interface. It automatically provisions and configures necessary AWS resources, handles the deployment pipeline, and manages content delivery through CloudFront.
For a detailed explanation of the architecture and workflow, please refer to our Architecture documentation.
Why Use CloudFront Hosting Toolkit?
- Simplicity: Deploy complex frontend hosting setups with just a few commands.
- Speed: Leverage CloudFront's global CDN for fast content delivery.
- Security: Automatic HTTPS configuration and security headers.
- Flexibility: Support for various frontend frameworks and deployment sources.
- Cost-Effective: Utilize AWS services efficiently without unnecessary overhead.
- Full Control: Retain the ability to customize and extend your infrastructure.
Re:Invent 2024 lightning talk
Learn how to leverage CloudFront Hosting Toolkit for deploying secure and fast frontends using Git-based workflows while maintaining full control over your AWS resources.
Getting Started
Check out our documentation for comprehensive guides on setting up and using the Cloudfront Hosting Toolkit!
Requirements
- Node.js 18+
- AWS CLI 2+ configured with your AWS account
- (Optional) A GitHub account for GitHub-based deployments
Installation
bash
npm install -g @aws/cloudfront-hosting-toolkit
Quick Start
Initialize your project:
bash cloudfront-hosting-toolkit initThe animated GIF below demonstrates the initialization process
Deploy your website:
bash cloudfront-hosting-toolkit deployThe animated GIF below demonstrates the deployment process
For more detailed instructions and advanced usage, please refer to our CLI Guide.
Example Commands
```bash
Show domain name
cloudfront-hosting-toolkit show
Check deployment status
cloudfront-hosting-toolkit status
Remove hosting infrastructure
cloudfront-hosting-toolkit delete ```
Architecture

CloudFront Hosting Toolkit sets up a comprehensive AWS architecture for your frontend hosting:
- Source Control: GitHub repository or S3 bucket
- CI/CD: AWS CodePipeline for automated builds and deployments
- Build Process: AWS CodeBuild for compiling and creating deployment artifacts
- Storage: S3 buckets for hosting website files
- Content Delivery: CloudFront for global content distribution
- Routing: CloudFront Functions for request handling and routing
- Orchestration: Step Functions for managing deployment processes
- State Management: KVS for storing deployment state information
This architecture ensures a scalable, performant, and maintainable hosting solution for your frontend applications.
Advanced Usage
CloudFront Hosting Toolkit offers flexibility in how it can be used:
- CLI: Use the Command-Line Interface for a straightforward, step-by-step deployment process.
- CDK Construct: Leverage the CloudFront Hosting Toolkit as a ready-made L3 CDK construct for seamless integration into your AWS CDK projects.
- CDK Source Code: Customize the CDK source code to tailor the infrastructure to your specific requirements.
For more information on how to use CloudFront Hosting Toolkit, including advanced usage scenarios and in-depth customization options, please refer to our extensive documentation in the Advanced section.
Documentation
Roadmap
For information about upcoming features and improvements, please see our Roadmap.
🤝 Contributing
We welcome contributions! Please see our Contributing Guide for more details.
Author
Contributors
License
This library is licensed under the Apache-2.0 License.
Owner
- Name: Amazon Web Services - Labs
- Login: awslabs
- Kind: organization
- Location: Seattle, WA
- Website: http://amazon.com/aws/
- Repositories: 914
- Profile: https://github.com/awslabs
AWS Labs
GitHub Events
Total
- Issues event: 11
- Watch event: 11
- Delete event: 10
- Issue comment event: 25
- Push event: 24
- Pull request review event: 1
- Pull request event: 30
- Fork event: 2
- Create event: 11
Last Year
- Issues event: 11
- Watch event: 11
- Delete event: 10
- Issue comment event: 25
- Push event: 24
- Pull request review event: 1
- Pull request event: 30
- Fork event: 2
- Create event: 11
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 14
- Total pull requests: 31
- Average time to close issues: about 2 months
- Average time to close pull requests: 17 days
- Total issue authors: 11
- Total pull request authors: 5
- Average comments per issue: 2.07
- Average comments per pull request: 0.71
- Merged pull requests: 13
- Bot issues: 0
- Bot pull requests: 25
Past Year
- Issues: 3
- Pull requests: 24
- Average time to close issues: 23 days
- Average time to close pull requests: 23 days
- Issue authors: 3
- Pull request authors: 3
- Average comments per issue: 1.0
- Average comments per pull request: 0.79
- Merged pull requests: 7
- Bot issues: 0
- Bot pull requests: 20
Top Authors
Issue Authors
- sholtomaud (5)
- 58bits (1)
- GerardKetuma (1)
- lmammino (1)
- niklas-palm (1)
- AlessandroVol23 (1)
- michaellisitsa (1)
- jay-aye-see-kay (1)
- dependabot[bot] (1)
- dleber (1)
- zoeyim (1)
- matthewskahn (1)
- sazuma-0612 (1)
Pull Request Authors
- dependabot[bot] (43)
- cornelcroi (6)
- lmammino (3)
- damianzm-aws (2)
- niklas-palm (2)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- npm 687 last-month
- Total dependent packages: 1
- Total dependent repositories: 0
- Total versions: 25
- Total maintainers: 1
npmjs.org: @aws/cloudfront-hosting-toolkit
CloudFront Hosting Toolkit offers the convenience of a managed frontend hosting service while retaining full control over the hosting and deployment infrastructure to make it your own.
- Homepage: https://github.com/awslabs/cloudfront-hosting-toolkit
- License: Apache-2.0
-
Latest release: 1.1.22
published over 1 year ago
Rankings
Maintainers (1)
Dependencies
- @types/archiver 5.3.2 development
- @types/glob 8.1.0 development
- @types/jest ^29.5.5 development
- @types/node 20.5.9 development
- @types/prompts 2.4.4 development
- aws-cdk 2.94.0 development
- aws-sdk-client-mock ^3.0.0 development
- jest ^29.7.0 development
- ts-jest ^29.1.1 development
- ts-node 10.9.1 development
- typescript ^5.2.2 development
- @aws-sdk/client-acm ^3.410.0
- @aws-sdk/client-cloudfront ^3.410.0
- @aws-sdk/client-codepipeline ^3.410.0
- @aws-sdk/client-codepipeline-node ^0.1.0-preview.2
- @aws-sdk/client-codestar-connections ^3.410.0
- @aws-sdk/client-route-53 ^3.410.0
- @aws-sdk/client-route-53-domains ^3.410.0
- @aws-sdk/client-s3 ^3.410.1
- @aws-sdk/client-ssm ^3.410.0
- @aws-sdk/client-sts ^3.410.0
- @aws-sdk/types ^3.410.0
- adm-zip ^0.5.10
- aws-cdk ^2.94.0
- aws-cdk-lib ^2.94.0
- cdk-nag ^2.27.129
- cli-progress ^3.12.0
- constructs ^10.2.70
- glob ^10.3.4
- joi ^17.10.1
- prompts ^2.4.2
- source-map-support ^0.5.21
- ts-node ^10.9.1
- yaml ^2.3.2
- yargs ^17.7.2
- @angular-devkit/build-angular ^15.1.4 development
- @angular/cli ~15.1.4 development
- @angular/compiler-cli ^15.1.0 development
- @types/jasmine ~4.3.0 development
- jasmine-core ~4.5.0 development
- karma ~6.4.0 development
- karma-chrome-launcher ~3.1.0 development
- karma-coverage ~2.2.0 development
- karma-jasmine ~5.1.0 development
- karma-jasmine-html-reporter ~2.0.0 development
- typescript ~4.9.4 development
- @angular/animations ^15.1.0
- @angular/common ^15.1.0
- @angular/compiler ^15.1.0
- @angular/core ^15.1.0
- @angular/forms ^15.1.0
- @angular/platform-browser ^15.1.0
- @angular/platform-browser-dynamic ^15.1.0
- @angular/router ^15.1.0
- rxjs ~7.8.0
- tslib ^2.3.0
- zone.js ~0.12.0
- @types/jquery ^3.5.16 development
- sass ^1.68.0 development
- typescript ^5.2.2 development
- @astrojs/react ^3.0.2
- @astrojs/tailwind ^5.0.0
- @astrojs/ts-plugin ^1.1.3
- @types/react ^18.0.21
- @types/react-dom ^18.0.6
- amazon-cognito-passwordless-auth ^0.7.1
- astro ^3.2.0
- forward-ref ^1.0.0
- react ^18.2.0
- react-bootstrap ^2.6.0
- react-dom ^18.2.0
- @tailwindcss/typography ^0.5.0 development
- autoprefixer ^10.4.2 development
- eslint 8.7.0 development
- eslint-config-next 12.0.8 development
- postcss ^8.4.5 development
- tailwindcss ^3.0.15 development
- cloudfront-pages file:../aws-solution-for-hosting-frontend/cloudfront-pages-0.0.1.tgz
- gray-matter ^4.0.3
- markdown-it ^12.3.2
- next ^12.2.4
- react ^17.0.2
- react-dom ^17.0.2
- @testing-library/jest-dom ^5.16.5
- @testing-library/react ^13.4.0
- @testing-library/user-event ^13.5.0
- react ^18.2.0
- react-dom ^18.2.0
- react-scripts 5.0.1
- web-vitals ^2.1.4
- autoprefixer ^7.1.2 development
- babel-core ^6.22.1 development
- babel-eslint ^8.2.1 development
- babel-helper-vue-jsx-merge-props ^2.0.3 development
- babel-loader ^7.1.1 development
- babel-plugin-syntax-jsx ^6.18.0 development
- babel-plugin-transform-runtime ^6.22.0 development
- babel-plugin-transform-vue-jsx ^3.5.0 development
- babel-preset-env ^1.3.2 development
- babel-preset-stage-2 ^6.22.0 development
- chalk ^2.0.1 development
- copy-webpack-plugin ^4.0.1 development
- css-loader ^0.28.0 development
- eslint ^4.15.0 development
- eslint-config-standard ^10.2.1 development
- eslint-friendly-formatter ^3.0.0 development
- eslint-loader ^1.7.1 development
- eslint-plugin-import ^2.7.0 development
- eslint-plugin-node ^5.2.0 development
- eslint-plugin-promise ^3.4.0 development
- eslint-plugin-standard ^3.0.1 development
- eslint-plugin-vue ^4.0.0 development
- extract-text-webpack-plugin ^3.0.0 development
- file-loader ^1.1.4 development
- friendly-errors-webpack-plugin ^1.6.1 development
- html-webpack-plugin ^2.30.1 development
- node-notifier ^5.1.2 development
- optimize-css-assets-webpack-plugin ^3.2.0 development
- ora ^1.2.0 development
- portfinder ^1.0.13 development
- postcss-import ^11.0.0 development
- postcss-loader ^2.0.8 development
- postcss-url ^7.2.1 development
- rimraf ^2.6.0 development
- semver ^5.3.0 development
- shelljs ^0.7.6 development
- uglifyjs-webpack-plugin ^1.1.1 development
- url-loader ^0.5.8 development
- vue-loader ^13.3.0 development
- vue-style-loader ^3.0.1 development
- vue-template-compiler ^2.5.2 development
- webpack ^3.6.0 development
- webpack-bundle-analyzer ^2.9.0 development
- webpack-dev-server ^2.9.1 development
- webpack-merge ^4.1.0 development
- vue ^2.5.2
- vue-router ^3.0.1