All Projects → stojanovic → Scottyjs

stojanovic / Scottyjs

Licence: mit
Deploy static websites and single page apps to AWS S3 and CloudFront with a single command

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Scottyjs

Discharge
⚡️ A simple, easy way to deploy static websites to Amazon S3.
Stars: ✭ 483 (-32.16%)
Mutual labels:  aws-s3, static-site, deployment
static-aws-deploy
A tool for deploying files to an AWS S3 bucket with configurable headers and invalidating AWS Cloudfront Objects.
Stars: ✭ 27 (-96.21%)
Mutual labels:  deployment, aws-s3, static-site
Touchdown
Cloud service orchestration framework for python
Stars: ✭ 10 (-98.6%)
Mutual labels:  aws-s3, deployment
Confetti
🎉 A tool to help creating and deploying static sites with AWS
Stars: ✭ 96 (-86.52%)
Mutual labels:  static-site, deployment
Ghpages
Deploy arbitrary static assets through GitHub Actions
Stars: ✭ 169 (-76.26%)
Mutual labels:  static-site, deployment
websync
Like `aws s3 sync` with automatic CloudFront invalidations and more.
Stars: ✭ 45 (-93.68%)
Mutual labels:  deployment, static-site
Actions Netlify
🚀 Netlify deploy from GitHub Actions
Stars: ✭ 138 (-80.62%)
Mutual labels:  static-site, deployment
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 (-97.05%)
Mutual labels:  deployment, aws-s3
simply-static-deploy
WordPress plugin to deploy static sites easily to an AWS S3 bucket.
Stars: ✭ 48 (-93.26%)
Mutual labels:  aws-s3, static-site
S3 Sync Action
🔄 GitHub Action to sync a directory with a remote S3 bucket 🧺
Stars: ✭ 497 (-30.2%)
Mutual labels:  aws-s3, deployment
Athena
an open-source implementation of sequence-to-sequence based speech processing engine
Stars: ✭ 542 (-23.88%)
Mutual labels:  deployment
Oneupflysystembundle
A Flysystem integration for your Symfony projects.
Stars: ✭ 541 (-24.02%)
Mutual labels:  aws-s3
Staticgen
Static website generator that lets you use HTTP servers and frameworks you already know
Stars: ✭ 628 (-11.8%)
Mutual labels:  static-site
Microsite
Do more with less JavaScript. Microsite is a smarter, performance-obsessed static site generator powered by Preact and Snowpack.
Stars: ✭ 632 (-11.24%)
Mutual labels:  static-site
Ecs Deploy
Powerful CLI tool to simplify Amazon ECS deployments, rollbacks & scaling
Stars: ✭ 541 (-24.02%)
Mutual labels:  deployment
Jasper2
Full-featured Jekyll port of Ghost's default theme Casper v2 👻
Stars: ✭ 626 (-12.08%)
Mutual labels:  static-site
Git Directory Deploy
deploy a directory as a git branch
Stars: ✭ 526 (-26.12%)
Mutual labels:  deployment
Usesthis
A nerdy little interview website, asking people from all walks of life what they use to get the job done.
Stars: ✭ 520 (-26.97%)
Mutual labels:  static-site
Gradle Tomcat Plugin
Gradle plugin supporting deployment of your web application to an embedded Tomcat web container
Stars: ✭ 516 (-27.53%)
Mutual labels:  deployment
Flubucore
A cross platform build and deployment automation system for building projects and executing deployment scripts using C# code.
Stars: ✭ 695 (-2.39%)
Mutual labels:  deployment

Scotty.js

Deploy static websites or folders to AWS S3 with a single command

scotty header

Build Status npm npm npm Join the chat at https://gitter.im/scottyjs/scotty

Install

Scotty.js is available on NPM. Install it as a global dependency to be able to use scotty command anywhere:

npm install scottyjs --global

Use

Beam me up, Scotty

To deploy a static folder to AWS S3 run:

scotty {options}

or

beam-me-up {options}

Available options

  • --help or -h - Print this help
  • --version or -v - Print the current version
  • --noclipboard or -n - Do not copy the URL to clipboard (default: false)
  • --quiet or -q - Suppress output when executing commands (default: false)
  • --website or -w - Set uploaded folder as a static website (default: false)
  • --spa - Set uploaded folder as a single page app (default: false)
  • --source or -s - Source of the folder that will be uploaded (default: current folder)
  • --bucket or -b - Name of the S3 bucket (default: name of the current folder)
  • --prefix or -p - Prefix on the S3 bucket (default: the root of the bucket)
  • --region or -r - AWS region where the files will be uploaded, default: saved region if exists or a list to choose one if it is not saved yet
  • --force or -f - Update the bucket without asking (default: false, forced region can be overridden with -r)
  • --update or -u - Update existing bucket (default: false)
  • --delete or -d - Delete existing bucket (default: false)
  • --nocdn or -c - Disable Cloudfront handling (default: false)
  • --urlonly or -o - Only output the resulting URL, CDN or S3 according to options (default: false)
  • --expire or -e - delete objects on bucket older than n days (default: no expiration)
  • --profile or -a - AWS profile to be used (default: 'default')
  • --empty or -y - Empty the bucket (Delete all objects before upload files) (default: false)

Examples

Create React App application

Full tutorial: http://medium.com/@slobodan/single-command-deployment-for-single-page-apps-29941d62ef97

To deploy CRA apps simply run npm run build in your project root folder to create build version.

Then deploy build version using following command:

scotty --spa --source ./build

Or, if you want to specify bucket name run:

scotty --spa --source ./build --bucket some-bucket-name

With --spa flag, Scotty will set required redirects for your single page app, so your app can use pushState out of the box.

Shared bucket application

To deploy multiple apps to a single bucket you can make use of the --prefix option. This comes in handy when your CI system deploys to a staging system with each branch as a pathname. Eg. the master branch should go to bucket root (/), so you do not set the prefix. The feature/fancy-stuff branch should go to the bucket path feature/fancy-stuff so just add this as the prefix. Here comes a command line example:

# deploy your master branch build to bucket root
scotty --source ./build --bucket some-bucket-name
# deploy your branch build to the branch name on the bucket
scotty --source_ ./build --bucket some-bucket-name --prefix your/branch

Test

We use Jasmine for unit and integration tests. Unless there is a very compelling reason to use something different, please continue using Jasmine for tests. The existing tests are in the spec folder. Here are some useful command shortcuts:

Run all the tests:

npm test

Run only some tests:

npm test -- filter=prefix

Get detailed hierarchical test name reporting:

npm test -- full

License

MIT -- see LICENSE

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].