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.

https://github.com/awslabs/cloudfront-hosting-toolkit

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

aws-acm aws-acm-certificate aws-code-build aws-codepipeline aws-lambda aws-route53 aws-step-functions cloudfront cloudfront-distribution cloudfront-functions hosting hosting-aws s3 s3-bucket
Last synced: 5 months ago · JSON representation

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
  • Host: GitHub
  • Owner: awslabs
  • License: apache-2.0
  • Language: TypeScript
  • Default Branch: main
  • Homepage:
  • Size: 19 MB
Statistics
  • Stars: 108
  • Watchers: 5
  • Forks: 4
  • Open Issues: 4
  • Releases: 0
Topics
aws-acm aws-acm-certificate aws-code-build aws-codepipeline aws-lambda aws-route53 aws-step-functions cloudfront cloudfront-distribution cloudfront-functions hosting hosting-aws s3 s3-bucket
Created about 2 years ago · Last pushed 11 months ago
Metadata Files
Readme Changelog Contributing License Code of conduct Security Roadmap

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.

GitHub Repo npm Documentation

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

AWS re:Invent 2024 - CloudFront Hosting Toolkit 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

  1. Initialize your project: bash cloudfront-hosting-toolkit init The animated GIF below demonstrates the initialization process sample

  2. Deploy your website: bash cloudfront-hosting-toolkit deploy The animated GIF below demonstrates the deployment process sample

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

Technical diagram

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

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

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
bug (10) triage (5) dependencies (1) enhancement (1)
Pull Request Labels
dependencies (43) javascript (4)

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.

  • Versions: 25
  • Dependent Packages: 1
  • Dependent Repositories: 0
  • Downloads: 687 Last month
Rankings
Dependent repos count: 36.2%
Average: 44.0%
Dependent packages count: 51.9%
Maintainers (1)
Last synced: 6 months ago

Dependencies

package.json npm
  • @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
test/cloudfront-hosting-toolkit/angularjs/package.json npm
  • @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
test/cloudfront-hosting-toolkit/astro/package.json npm
  • @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
test/cloudfront-hosting-toolkit/nextjs/package.json npm
  • @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
test/cloudfront-hosting-toolkit/reactjs/package.json npm
  • @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
test/cloudfront-hosting-toolkit/vuejs/package.json npm
  • 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