All Projects → zupzup → static-aws-deploy

zupzup / static-aws-deploy

Licence: Apache-2.0 license
A tool for deploying files to an AWS S3 bucket with configurable headers and invalidating AWS Cloudfront Objects.

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to static-aws-deploy

Confetti
🎉 A tool to help creating and deploying static sites with AWS
Stars: ✭ 96 (+255.56%)
Mutual labels:  deployment, static-site, cloudfront
simply-static-deploy
WordPress plugin to deploy static sites easily to an AWS S3 bucket.
Stars: ✭ 48 (+77.78%)
Mutual labels:  aws-s3, static-site, cloudfront
Scottyjs
Deploy static websites and single page apps to AWS S3 and CloudFront with a single command
Stars: ✭ 712 (+2537.04%)
Mutual labels:  deployment, aws-s3, static-site
Discharge
⚡️ A simple, easy way to deploy static websites to Amazon S3.
Stars: ✭ 483 (+1688.89%)
Mutual labels:  deployment, aws-s3, static-site
S3 Deploy Website
Deploy website to S3/CloudFront from Python
Stars: ✭ 26 (-3.7%)
Mutual labels:  static-site, cloudfront
Scar
Deploy static websites in seconds - with HTTPS, a global CDN, and custom domains.
Stars: ✭ 1,715 (+6251.85%)
Mutual labels:  static-site, cloudfront
ml api covid
This is the API Code for my tutorial article. It paints a picture for developing a machine learning Python API from start to finish and provides help in more difficult areas like the setup with AWS Lambda.
Stars: ✭ 21 (-22.22%)
Mutual labels:  deployment, aws-s3
Dive-Into-AWS
Links to the Repos and Sections in our Dive into AWS Course.
Stars: ✭ 27 (+0%)
Mutual labels:  aws-s3, cloudfront
websync
Like `aws s3 sync` with automatic CloudFront invalidations and more.
Stars: ✭ 45 (+66.67%)
Mutual labels:  deployment, static-site
S3 Sync Action
🔄 GitHub Action to sync a directory with a remote S3 bucket 🧺
Stars: ✭ 497 (+1740.74%)
Mutual labels:  deployment, aws-s3
Touchdown
Cloud service orchestration framework for python
Stars: ✭ 10 (-62.96%)
Mutual labels:  deployment, aws-s3
Actions Netlify
🚀 Netlify deploy from GitHub Actions
Stars: ✭ 138 (+411.11%)
Mutual labels:  deployment, static-site
Ghpages
Deploy arbitrary static assets through GitHub Actions
Stars: ✭ 169 (+525.93%)
Mutual labels:  deployment, static-site
haxeflixel.com
haxeflixel.com docpad source
Stars: ✭ 57 (+111.11%)
Mutual labels:  static-site
you-draw-it
Datenjournalismus: Nutzer können schätzen, wie sich Statistiken verändert haben und ihre Einschätzung danach überprüfen.
Stars: ✭ 24 (-11.11%)
Mutual labels:  static-site
emacs-easy-jekyll
Emacs major mode for managing jekyll
Stars: ✭ 53 (+96.3%)
Mutual labels:  aws-s3
wp-trigger-netlify-build
A WordPress plugin to automatically rebuild a Netlify site when content is updated.
Stars: ✭ 80 (+196.3%)
Mutual labels:  static-site
dinobuildr
A macOS deployment utility developed by Mozilla IT
Stars: ✭ 26 (-3.7%)
Mutual labels:  deployment
dropship
Super simple deployment tool
Stars: ✭ 62 (+129.63%)
Mutual labels:  deployment
backmeup
BackMeUp: An automated MySQL / MariaDB databases and files backup solution on *nix Machines using Amazon S3, WebDAV (ownCloud / NextCloud etc.), Google Drive and Dropbox.
Stars: ✭ 80 (+196.3%)
Mutual labels:  aws-s3

static-aws-deploy

A tool for deploying files to an AWS S3 bucket with configurable headers and invalidating AWS Cloudfront Objects.

Installation

go get github.com/zupzup/static-aws-deploy

Usage

./static-aws-deploy

./static-aws-deploy --silent --config=./data --dry-run --delta

You can use the dry-run option to see which files would be uploaded and which URLs would be invalidated in a real run.

Commandline Options:

  • --config, -c: path to the configuration file (config.yml), default: ./config.yml
  • --dry-run, -dr: run the script without actually uploading or invalidating anything, default: false
  • --silent, -s: omit all log output, default: false
  • --delta, -d: only upload changed files, default: false

Configuration

By default, static-aws-deploy expects a configuration file at ./config.yml which looks like this example (config.dist.yml):

auth:
    accesskey: 'myAccessKey' // AWS Access Key
    key: 'myKey' // AWS Secret Key
s3:
    bucket:
        name: 'myBucket' // unique identifier of the bucket
    parallel: 4 // How many files are uploaded at once
    source: './data' // folder holding the data
    ignore: '\.DS_Store' // regex for files to ignore
    metadata: // list of regex-to-headers mappings, stating which files are uploaded with which headers
        - regex: '\.html?$'
          headers:
              - 'Content-Type': 'text/html'
        - regex: '\.xml$'
          headers:
              - 'Content-Type': 'text/xml'
        - regex: '\.txt$'
          headers:
              - 'Content-Type': 'text/plain'
        - regex: '\.ico$'
          headers:
              - 'Cache-Control': 'public, max-age=31536000'
              - 'Content-Type': 'image/x-icon'
        - regex: '\.jpeg?$'
          headers:
              - 'Cache-Control': 'public, max-age=31536000'
              - 'Content-Type': 'image/jpeg'
        - regex: '\.png$'
          headers:
              - 'Cache-Control': 'public, max-age=31536000'
              - 'Content-Type': 'image/png'
        - regex: '\.gif$'
          headers:
              - 'Cache-Control': 'public, max-age=31536000'
              - 'Content-Type': 'image/gif'
cloudfront:
    distribution: 
        id: 'myDistribution' // id of your cloudfront web distribution
    invalidation: // urls to invalidate
        - '/'
        - '/archive/*'

If you don't provide any invalidation URLs, the invalidation won't be triggered.

The AWS credentials can also be provided via environment variables named AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY.

Warning

Keep in mind, that using this tool to upload files to AWS S3 and/or to invalidate AWS Cloudfront Objects might result in higher costs.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].