0.1.4-b • Published 4 years ago

@engagementlab/el-bootstrapper v0.1.4-b

Weekly downloads
1
License
MIT
Repository
github
Last release
4 years ago

EL-Bootstrapper

The Engagement Lab's library for web server API/KeystoneJS CMS instance initialization.

EL-Bootstrapper logo

  • BYO expressjs instance!
  • Uses Auth0 for login to KeystoneJS via Google connection. You will need to create an Auth0 app.
  • 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.

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:

{
	"name": "Name of website",
	"database": "mongo-database-name",
	"adminPath": "cms"
}

Usage

In your Node app main file (e.g. app.js, using dotenv in this example):

// 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);
	}
);
0.1.4-b

4 years ago

0.1.4

4 years ago

0.1.3-b

4 years ago

0.1.3

4 years ago

0.1.2

4 years ago

0.1.1

4 years ago

0.1.0

4 years ago

0.0.7

4 years ago

0.0.6

5 years ago

0.0.5

5 years ago

0.0.4

5 years ago