Skip to content
This repository was archived by the owner on Oct 25, 2021. It is now read-only.

Using Ruby and Capistrano, deploy a static website to an Amazon S3 website bucket.

License

Notifications You must be signed in to change notification settings

zumba/capistrano-s3

This branch is 2 commits ahead of, 128 commits behind capistrano-s3/capistrano-s3:master.

Folders and files

NameName
Last commit message
Last commit date
Mar 11, 2013
Mar 21, 2013
Mar 2, 2013
Feb 14, 2013
Mar 3, 2013
Sep 28, 2021
Jan 12, 2013
Mar 11, 2013
Mar 11, 2013
Jul 18, 2012
Mar 11, 2013

Repository files navigation

capistrano-s3

Enables static websites deployment to Amazon S3 website buckets using Capistrano.

Dependency Status Code Climate Gem Version

Hosting your website with Amazon S3

Amazon S3 provides special websites enabled buckets that allows you to serve web pages from S3.

To learn how to setup your website bucket, see Amazon Documentation.

Getting started

Create a project Gemfile :

source 'https://rubygems.org'
gem 'capistrano-s3'

Setup

Install gem, init capistrano & create a public folder that will be published :

bundle install
bundle exec capify .
mkdir public

Credentials

Set your S3 bucket credentials :

# config/deploy.rb
require 'capistrano/s3'

set :bucket, "www.cool-website-bucket.com"
set :access_key_id, "CHANGETHIS"
set :secret_access_key, "CHANGETHIS"

Deploying

Add content to you public folder and deploy with :

cap deploy

If you want to deploy to multiple buckets, have a look at Capistrano multistage and configure a bucket per stage configuration.

S3 write options

capistrano-s3 sets files :content_type and :acl to :public_read, add or override with :

set :bucket_write_options, {
    cache_control: "max-age=94608000, public"
}

See aws-sdk S3Object.write doc for all available options.

Exemple of usage

Our Ruby stack for static websites :

  • sinatra : awesome simple ruby web framework
  • sinatra-assetpack : deals with assets management, build static files into public/
  • sinatra-export : exports all sinatra routes into public/ as html or other common formats (json, csv, etc)

Mixing it in a capistrano task :

# config/deploy.rb
before 'deploy' do
  run_locally "bundle exec ruby sinatra:export"
  run_locally "bundle exec rake assetpack:build"
end

See our boilerplate sinatra-static-bp for an exemple of the complete setup.

Contributing

See CONTRIBUTING.md for more details on contributing and running test.

Credits

hooktstudios

capistrano-s3 is maintained and funded by hooktstudios

About

Using Ruby and Capistrano, deploy a static website to an Amazon S3 website bucket.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Ruby 100.0%