- nodejs >0.12 and <12 . Node 8 seems to work. You will likely need to install nvm to use an older version of node.
- ruby
- ruby gem package manager
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
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 server
: Run the development server, watching for js/css/html changesgrunt test
: Run the test suite
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'.
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>/*"
]
}
]
}