in src/amo/server/base.js [498:594]
export function runServer({
listen = true,
exitProcess = true,
config = defaultConfig,
} = {}) {
const port = config.get('serverPort');
const host = config.get('serverHost');
const useHttpsForDev = process.env.USE_HTTPS_FOR_DEV;
const isoMorphicServer = new WebpackIsomorphicTools(
WebpackIsomorphicToolsConfig,
);
return isoMorphicServer
.server(config.get('basePath'))
.then(() => {
global.webpackIsomorphicTools = isoMorphicServer;
// Webpack Isomorphic tools is ready
// now fire up the actual server.
return new Promise((resolve, reject) => {
/* eslint-disable global-require, import/no-dynamic-require */
const App = require('amo/components/App').default;
const createStore = require('amo/store').default;
/* eslint-enable global-require, import/no-dynamic-require */
let server = baseServer(App, createStore);
if (listen === true) {
if (useHttpsForDev) {
if (host === 'example.com') {
const options = {
key: fs.readFileSync(
'bin/local-dev-server-certs/example.com-key.pem',
),
cert: fs.readFileSync(
'bin/local-dev-server-certs/example.com.pem',
),
passphrase: '',
};
server = https.createServer(options, server);
} else {
log.debug(
`To use the HTTPS server you must serve the site at example.com (host was "${host}")`,
);
}
}
server.listen(port, host, (err) => {
if (err) {
return reject(err);
}
const proxyEnabled = convertBoolean(config.get('proxyEnabled'));
// Not using oneLine here since it seems to change ' ' to ' '.
// eslint-disable-next-line amo/only-log-strings
log.info(
[
`🔥 Addons-frontend server is running`,
`[ENV:${config.util.getEnv('NODE_ENV')}]`,
`[isDevelopment:${config.get('isDevelopment')}]`,
`[isDeployed:${config.get('isDeployed')}]`,
`[apiHost:${config.get('apiHost')}]`,
`[apiPath:${config.get('apiPath')}]`,
`[apiVersion:${config.get('apiVersion')}]`,
].join(' '),
);
if (proxyEnabled) {
const proxyPort = config.get('proxyPort');
log.debug(
`🚦 Proxy detected, frontend running at http://${host}:${port}.`,
);
log.debug(
`👁 Open your browser at http${
useHttpsForDev ? 's' : ''
}://${host}:${proxyPort} to view it.`,
);
} else {
log.debug(
`👁 Open your browser at http${
useHttpsForDev ? 's' : ''
}://${host}:${port} to view it.`,
);
}
return resolve(server);
});
} else {
resolve(server);
}
});
})
.catch((err) => {
log.error(`${err}`);
if (exitProcess) {
process.exit(1);
} else {
throw err;
}
});
}