site/README.md

194 lines
6.7 KiB
Markdown
Raw Permalink Normal View History

2017-05-29 21:35:24 +02:00
# [![site](media/repo-banner@2x.png)](https://www.bigchaindb.com)
2015-12-19 20:56:04 +01:00
2018-04-04 15:23:27 +02:00
> 🦁 The fabulous cat of blockchain websites.
2015-12-19 20:56:04 +01:00
2018-05-11 14:53:50 +02:00
[![Build Status](https://travis-ci.com/bigchaindb/site.svg?branch=master)](https://travis-ci.com/bigchaindb/site)
2017-05-31 20:35:20 +02:00
[![css bigchaindb](https://img.shields.io/badge/css-bigchaindb-39BA91.svg)](https://github.com/bigchaindb/stylelint-config-bigchaindb)
2018-04-04 15:23:27 +02:00
[![js ascribe](https://img.shields.io/badge/js-ascribe-39BA91.svg)](https://github.com/ascribe/javascript)
2018-04-05 14:24:32 +02:00
[![Greenkeeper badge](https://badges.greenkeeper.io/bigchaindb/site.svg)](https://greenkeeper.io/)
2017-05-29 21:35:24 +02:00
<img src="http://forthebadge.com/images/badges/powered-by-electricity.svg" height="20"/>
<img src="http://forthebadge.com/images/badges/as-seen-on-tv.svg" height="20"/>
<img src="http://forthebadge.com/images/badges/uses-badges.svg" height="20"/>
---
2016-03-03 17:56:56 +01:00
[Live](https://www.bigchaindb.com) | [Styleguide](https://www.bigchaindb.com/styleguide/) | [Beta](http://beta.bigchaindb.com) | [Gamma](http://gamma.bigchaindb.com)
2015-12-22 15:35:12 +01:00
2017-05-29 21:35:24 +02:00
---
2018-04-18 18:13:57 +02:00
* [Documentation](#documentation)
2017-05-29 21:35:24 +02:00
* [Development](#development)
2018-04-11 16:07:20 +02:00
* [Prerequisites](#prerequisites)
* [Get up and running](#get-up-and-running)
2017-05-29 21:35:24 +02:00
* [Continuous deployment: always be shipping](#continuous-deployment-always-be-shipping)
* [Manual deployment](#manual-deployment)
* [Prerequisite: authentication](#prerequisite-authentication)
* [Staging build &amp; beta deployment](#staging-build--beta-deployment)
* [Production build &amp; live deployment](#production-build--live-deployment)
* [Coding conventions](#coding-conventions)
* [(S)CSS](#scss)
2017-05-31 20:35:20 +02:00
* [JavaScript](#javascript)
2017-05-29 21:35:24 +02:00
* [Authors](#authors)
2018-04-04 15:23:27 +02:00
* [License](#license)
2017-05-29 21:35:24 +02:00
2018-04-18 18:13:57 +02:00
## Documentation
Have a look at the [`docs/`](docs/) folder.
2015-12-19 20:56:04 +01:00
## Development
2018-05-11 14:53:50 +02:00
The whole website is a Jekyll site with a Gulp-based build pipeline in front of it.
2018-04-05 14:38:40 +02:00
2018-04-11 16:07:20 +02:00
### Prerequisites
You need to have the following tools installed on your development machine before moving on:
2018-04-11 16:07:20 +02:00
- [Node.js](http://nodejs.org/) & [npm](https://npmjs.org/)
- [Ruby](https://www.ruby-lang.org) (for sanity, install with [rvm](https://rvm.io/))
- [Bundler](http://bundler.io/)
2018-04-11 16:07:20 +02:00
### Get up and running
2018-04-11 16:07:20 +02:00
Run the following command from the repository's root folder to clone this repository, install all dependencies, and spin up local dev server reachable under [http://localhost:1337](http://localhost:1337):
```bash
2018-04-11 16:07:20 +02:00
git clone git@github.com:bigchaindb/site.git
cd site/
npm i && bundle install
2018-04-11 16:07:20 +02:00
# development build and dev server
gulp
```
2018-04-11 16:07:20 +02:00
Additionally, you can execute those commands to test the actual build output:
2018-04-11 16:07:20 +02:00
```bash
# full production build
gulp build --production
# build preventing search engine indexing & Google Analytics tracking
gulp build --staging
```
All builds are output into the `_dist/` folder. Use a tool like [serve](https://github.com/zeit/serve) to inspect a local build in your browser:
```bash
2018-04-11 16:07:20 +02:00
serve -s _dist
```
2017-05-29 21:35:24 +02:00
## Continuous deployment: always be shipping
2016-03-03 17:54:45 +01:00
2017-05-29 21:35:24 +02:00
![shipping](https://cloud.githubusercontent.com/assets/90316/26559768/e21e9724-44b1-11e7-90cf-6ef6ebb06d09.gif)
The site gets built & deployed automatically via Travis. This is the preferred way of deployment, it makes sure the site is always deployed with fresh dependencies and only after a successful build.
Build & deployment happens under the following conditions on Travis:
2016-03-03 17:54:45 +01:00
- every push builds the site
2017-05-29 21:35:24 +02:00
- **live deployment**: every push to the master branch initiates a live deployment
- **beta deployment**: every new pull request and every subsequent push to it initiates a beta deployment
2016-03-03 17:54:45 +01:00
2017-05-29 21:35:24 +02:00
## Manual deployment
2017-05-29 21:35:24 +02:00
For emergency live deployments or beta & gamma deployments, the manual method can be used. The site is hosted in an S3 bucket and gets deployed via a gulp task.
2017-05-29 21:35:24 +02:00
### Prerequisite: authentication
2016-01-08 12:00:57 +01:00
To deploy the site, you must authenticate yourself against the AWS API with your AWS credentials. Get your AWS access key and secret and add them to `~/.aws/credentials`:
```
[default]
aws_access_key_id = <YOUR_ACCESS_KEY_ID>
aws_secret_access_key = <YOUR_SECRET_ACCESS_KEY>
```
This is all that is needed to authenticate with AWS if you've setup your credentials as the default profile.
2017-05-29 21:35:24 +02:00
If you've set them up as another profile, say `[bigchaindb]` you can grab those credentials by using the `AWS_PROFILE` variable like so:
```bash
2017-05-29 21:35:24 +02:00
AWS_PROFILE=bigchaindb gulp deploy --live
2016-01-08 12:00:57 +01:00
```
In case that you get authentication errors or need an alternative way to authenticate with AWS, check out the [AWS documentation](http://docs.aws.amazon.com/AWSJavaScriptSDK/guide/node-configuring.html).
### Staging build & beta deployment
2017-05-29 21:35:24 +02:00
The staging build is a full production build but prevents search engine indexing & Google Analytics tracking.
2016-01-08 15:42:05 +01:00
```bash
# make sure your local npm packages & gems are up to date
npm update && bundle update
# make staging build in /_dist
gulp build --staging
2016-01-08 15:42:05 +01:00
# deploy contents of /_dist to beta
gulp deploy --beta
2016-01-08 15:42:05 +01:00
```
2017-03-07 16:24:23 +01:00
There's also a second beta deployment target called gamma under http://gamma.bigchaindb.com:
```bash
# build preventing search engine indexing & Google Analytics tracking
gulp build --staging
2017-03-07 16:24:23 +01:00
# deploy contents of /_dist to gamma
gulp deploy --gamma
```
2016-01-08 12:00:57 +01:00
### Production build & live deployment
```bash
# make sure your local npm packages & gems are up to date
npm update && bundle update
# make production build in /_dist
gulp build --production
2016-01-08 12:00:57 +01:00
# deploy contents of /_dist to live
gulp deploy --live
```
## Coding conventions
### (S)CSS
2017-05-31 20:35:20 +02:00
Follows [stylelint-config-bigchaindb](https://github.com/bigchaindb/stylelint-config-bigchaindb) which itself extends [stylelint-config-standard](https://github.com/stylelint/stylelint-config-standard).
2017-05-31 20:35:20 +02:00
Lint with [stylelint](https://stylelint.io) in your editor or run:
2017-05-31 20:35:20 +02:00
```bash
npm test
```
### JavaScript
It's a wild mess right now between old school vanilla js, jQuery and some ES2015 features. Don't bother with the old stuff unless dependency updates break it.
New js should follow [eslint-config-ascribe](https://github.com/ascribe/javascript). Linting in this repo is not setup for it yet.
2017-05-29 21:35:24 +02:00
## Authors
2018-04-04 15:23:27 +02:00
- Matthias Kretschmann ([@kremalicious](https://github.com/kremalicious)) - [BigchainDB](https://www.bigchaindb.com) & [Ocean Protocol](https://oceanprotocol.com)
2018-04-05 14:38:40 +02:00
- [All the contributors](https://github.com/bigchaindb/site/graphs/contributors)
2018-04-04 15:23:27 +02:00
## License
```
Copyright 2018 BigchainDB GmbH
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
```