https://github.com/engagementlab/el-bootstrapper
Module for website bootstap/initialization.
https://github.com/engagementlab/el-bootstrapper
cms el-bootstrapper keystonejs
Last synced: about 1 month ago
JSON representation
Module for website bootstap/initialization.
- Host: GitHub
- URL: https://github.com/engagementlab/el-bootstrapper
- Owner: engagementlab
- Created: 2018-11-28T16:36:53.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2023-01-23T21:58:49.000Z (over 3 years ago)
- Last Synced: 2025-01-10T13:53:07.836Z (over 1 year ago)
- Topics: cms, el-bootstrapper, keystonejs
- Language: JavaScript
- Size: 2.34 MB
- Stars: 0
- Watchers: 5
- Forks: 0
- Open Issues: 21
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# EL-Bootstrapper
## The [Engagement Lab](https://elab.emerson.edu)'s library for web server API/[KeystoneJS](https://keystonejs.com/) CMS instance initialization.

* BYO [expressjs](https://expressjs.com/) instance!
* Uses Auth0 for login to KeystoneJS via [Google connection](https://auth0.com/docs/connections/social/google). You will need to [create an Auth0 app](https://auth0.com/docs/flows/guides/regular-web-app-login-flow/add-login-using-regular-web-app-login-flow).
* Unlike the default KeystoneJS 'User' model, ours has no password field. Just add users' gmail address, and they can login via Auth0.
* Keystone admin panel is still entered via /keystone, but you're directed to /cms by default after login.
* Replaces our deprecated [el-web-sdk](https://github.com/engagementlab/el-web-sdk).
### Install
```npm i --save @engagement-lab/el-bootstrapper```
### Environment
Node 10.14.0+ supported. Should work as low as 8.11.4.
You must specify the following in your _.env_ (reminder to never commit this):
```
DEV_EMAIL=[email to use for automatic keystone login on NODE_ENV=development]
COOKIE_SECRET=[random hash for keystone cookie]
(obtain following at https://manage.auth0.com/)
AUTH0_CLIENT_ID=[your id]
AUTH0_DOMAIN=[your domain].auth0.com
AUTH0_CLIENT_SECRET=[your secret]
AUTH0_CALLBACK_URL=[usually http://localhost:3000/callback]
```
And optionally:
```
PORT=[a port to run on, defaults to 3000]
```
You will also need a *config.json* in your app root dir:
```json
{
"name": "Name of website",
"database": "mongo-database-name",
"adminPath": "cms"
}
```
### Usage
In your Node app main file (e.g. _app.js_, using [dotenv](https://www.npmjs.com/package/dotenv) in this example):
```javascript
// Load .env vars
if(process.env.NODE_ENV !== 'test')
require('dotenv').load();
const bootstrap = require('@engagementlab/el-bootstrapper'),
express = require('express');
let app = express();
bootstrap.start(
// Path to config
'./config.json',
// Express
app,
// The root of this app on disk, needed for keystonejs
__dirname + '/',
// Any additional config vars you want for keystonejs instance
// See: https://keystonejs.com/documentation/configuration/
{
'name': 'Name of website CMS'
},
() => {
// any logic to run after app is mounted
// you need at least:
app.listen(process.env.PORT);
}
);
```