river-of-ebooks/README.md

113 lines
2.5 KiB
Markdown

# River of Ebooks
https://github.com/EbookFoundation/RoE-pipe
## About
The River of Ebooks serves as an easy-to-use ebook aggregator. Publishers can send metadata from new and updated ebooks through the River where it will be available for any downstream consumers to read, allowing for a more widely available ebook collection. This way, ebooks can be made available on all end user sites, instead of only the site they were published with.
-----
### Version info
This app was originally generated on Tue Oct 16 2018 01:21:31 GMT+0000 (UTC) using Sails v1.0.2.
<!-- Internally, Sails used [`sails-generate@1.15.28`](https://github.com/balderdashy/sails-generate/tree/v1.15.28/lib/core-generators/new). -->
### Setup
a [Sails v1](https://sailsjs.com) application
[![Build Status](https://travis-ci.org/miacona96/RoE-pipe.svg?branch=master)](https://travis-ci.org/miacona96/RoE-pipe)
#### Standalone
1. Standard npm install
```
git clone https://github.com/EbookFoundation/RoE-pipe
cd RoE-pipe
npm i
```
2. Create config files
```
touch knexfile.js ecosystem.config.js config/local.js
```
3. Add database info to knexfile and pm2 ecosystem
```js
/* -- knexfile.js -- */
module.exports = {
client: 'pg',
connection: 'postgresql://user:password@example.com:5432/databasename'
}
/* -- ecosystem.config.js -- */
// Options reference: https://pm2.io/doc/en/runtime/reference/ecosystem-file/
module.exports = {
apps: [{
name: 'roe-base',
script: 'app.js',
instances: 1,
autorestart: true,
watch: false,
env: {
NODE_ENV: 'development'
},
env_production: {
NODE_ENV: 'production',
SAILS_DATASTORE_URL: 'postgresql://user:password@example.com:5432/databasename'
}
}]
}
```
4. Add secrets to config/local.js
```
/* -- config/local.js -- */
module.exports = {
skipperConfig: {
adapter: require('skipper-s3'),
key: 'S3_API_KEY',
secret: 'S3_API_SECRET',
bucket: 'S3_BUCKET'
},
passport: {
google: {
options: {
clientID: 'GOOGLE_CLIENT_ID',
clientSecret: 'GOOGLE_CLIENT_SECRET'
}
},
github: {
options: {
clientID: 'GITHUB_CLIENT_ID',
clientSecret: 'GITHUB_CLIENT_SECRET'
}
}
}
}
```
5. Run database migrations
```
npm run db:migrate
```
6. Start server
```
npm start
```
#### Elastic Beanstalk
1. Clone repo
```
git clone https://github.com/EbookFoundation/RoE-pipe
cd RoE-pipe
```
2. Deploy to environment
```
eb deploy environment_name
```
3. Configure environment variables on elastic beanstalk