86 lines
1.7 KiB
JavaScript
86 lines
1.7 KiB
JavaScript
|
'use strict';
|
||
|
|
||
|
const Brule = require('brule');
|
||
|
const Hapi = require('hapi');
|
||
|
const Inert = require('inert');
|
||
|
const Main = require('apr-main');
|
||
|
const Rollover = require('rollover');
|
||
|
|
||
|
const Sso = require('minio-proto-auth');
|
||
|
const Ui = require('my-joy-beta');
|
||
|
const Nav = require('joyent-navigation');
|
||
|
const Api = require('cloudapi-gql');
|
||
|
|
||
|
const {
|
||
|
PORT = 3069,
|
||
|
COOKIE_PASSWORD,
|
||
|
COOKIE_DOMAIN,
|
||
|
SDC_KEY_PATH,
|
||
|
SDC_ACCOUNT,
|
||
|
SDC_KEY_ID,
|
||
|
SDC_URL,
|
||
|
BASE_URL = `http://0.0.0.0:${PORT}`,
|
||
|
ROLLBAR_SERVER_TOKEN,
|
||
|
NODE_ENV = 'development'
|
||
|
} = process.env;
|
||
|
|
||
|
const server = Hapi.server({
|
||
|
port: PORT,
|
||
|
host: '127.0.0.1'
|
||
|
});
|
||
|
|
||
|
Main(async () => {
|
||
|
await server.register([
|
||
|
// {
|
||
|
// plugin: Rollover,
|
||
|
// options: {
|
||
|
// rollbar: {
|
||
|
// accessToken: ROLLBAR_SERVER_TOKEN,
|
||
|
// reportLevel: 'error'
|
||
|
// }
|
||
|
// }
|
||
|
// },
|
||
|
{
|
||
|
plugin: Brule,
|
||
|
options: {
|
||
|
auth: false
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
plugin: Sso,
|
||
|
options: {
|
||
|
cookie: {
|
||
|
password: COOKIE_PASSWORD,
|
||
|
domain: COOKIE_DOMAIN,
|
||
|
isSecure: false,
|
||
|
isHttpOnly: true,
|
||
|
ttl: 1000 * 60 * 60 // 1 hour
|
||
|
},
|
||
|
sso: {
|
||
|
keyPath: SDC_KEY_PATH,
|
||
|
keyId: '/' + SDC_ACCOUNT + '/keys/' + SDC_KEY_ID,
|
||
|
apiBaseUrl: SDC_URL,
|
||
|
url: 'https://sso.joyent.com/login',
|
||
|
permissions: { cloudapi: ['/my/*'] },
|
||
|
baseUrl: BASE_URL,
|
||
|
isDev: NODE_ENV === 'development'
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
plugin: Nav
|
||
|
},
|
||
|
{
|
||
|
plugin: Ui
|
||
|
},
|
||
|
{
|
||
|
plugin: Api
|
||
|
}
|
||
|
]);
|
||
|
|
||
|
server.auth.default('sso');
|
||
|
|
||
|
await server.start();
|
||
|
console.log(`server started at http://localhost:${server.info.port}`);
|
||
|
});
|