@engagementlab/el-bootstrapper
The Engagement Lab's library for web server/keystonejs CMS instance initialization.
Last updated a month ago by johnnycrich .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install @engagementlab/el-bootstrapper 
SYNC missed versions from official npm registry.

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);
	}
);

Current Tags

  • 0.1.4-b                                ...           latest (a month ago)

11 Versions

  • 0.1.4-b                                ...           a month ago
  • 0.1.4                                ...           a month ago
  • 0.1.3-b                                ...           a month ago
  • 0.1.3                                ...           a month ago
  • 0.1.2                                ...           a month ago
  • 0.1.1                                ...           a month ago
  • 0.1.0                                ...           a month ago
  • 0.0.7                                ...           8 months ago
  • 0.0.6                                ...           a year ago
  • 0.0.5                                ...           a year ago
  • 0.0.4                                ...           a year ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 58
Dependencies (9)
Dev Dependencies (0)
None
Dependents (0)
None

Copyright 2014 - 2017 © taobao.org |