IMLS Museum Data
JavaScript HTML CSS ApacheConf Python
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
app
factual
prototype
test
.bowerrc
.editorconfig
.env.example
.gitattributes
.gitignore
.jshintrc
.travis.yml
CHANGELOG.md
Gruntfile.js
LICENSE
README.md
bower.json
package.json
s3_website.yml

README.md

IMLS Museum Data

Build Status

Development

Prerequisites

  • nodejs 0.12+
  • ruby
  • ruby gem package manager

Install dependencies

Note: sudo might be required depending on where these tools are installed

gem install sass compass
npm install -g bower grunt-cli
npm install
bower install

Set up ACS API key

First copy the example js config file: cp app/scripts/config.js.example app/scripts/config.js

If at Azavea, an API key for use is stored in the company password manager. Otherwise, you'll need to sign up for a key.

Once you have your key, add it to the appropriate spot at the top of the app/scripts/config.js file.

Grunt tasks

  • grunt server: Run the development server, watching for js/css/html changes
  • grunt test: Run the test suite

Deploying

First, ensure bower components are up to date:

bower install

Double-check that app/scripts/config.js has the appropriate custom values for the environment being deployed.

Then, build the minified app with:

grunt build

Copy the environment example file: cp .env.example .env

Configure s3_website for deployment by setting the following ENV variables in .env:

  • IMLS_ACCESS_KEY
  • IMLS_SECRET_KEY

Once the AWS access keys are set in your environment, deploy the app:

s3_website push --force

If you want to change the bucket the app deploys to, edit the s3_bucket setting in s3_website.yml

If you change the bucket, ensure that you do the following:

  • Add the bucket to the IAM S3-Full-Access policy for the user's access keys
  • Run s3_bucket cfg apply to create a new bucket and apply the proper settings. Choose 'N' for 'Would you like to deliver your website via CloudFront'.

IAM S3 Full Access Policy

This is a sample. You will need to add additional entries for each <bucket_name> you manage with the IAM user that uses this policy.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::<bucket_name>",
                "arn:aws:s3:::<bucket_name>/*"
            ]
        }
    ]
}