Files
jupyterhub/multiuser/js/main.js
MinRK 308209f71a authenticate API requests to the proxy
and add configproxy cli via mininimist
2014-07-07 17:35:01 -05:00

51 lines
1.2 KiB
JavaScript

#!/usr/bin/env node
/*
cli entrypoint for starting a Configurable Proxy
*/
var fs = require('fs');
var minimist = require('minimist');
var ConfigurableProxy = require('./configproxy.js').ConfigurableProxy;
var argv = minimist(process.argv.slice(2), {boolean: ['h', 'help']});
if (argv.h || argv.help) {
console.log("help!");
process.exit();
}
var options = {};
if (argv.ssl_key) {
options.key = fs.readFileSync(argv.ssl_key);
}
if (argv.ssl_cert) {
options.cert = fs.readFileSync(argv.ssl_cert);
}
options.upstream_ip = argv.upstream_ip;
options.upstream_port = argv.upstream_port;
options.api_token = process.env.CONFIGPROXY_AUTH_TOKEN;
var proxy = new ConfigurableProxy(options);
var listen = {};
listen.port = argv.port || 8000;
listen.ip = argv.ip;
listen.api_ip = argv.api_ip || 'localhost';
listen.api_port = argv.api_port || listen.port + 1;
proxy.proxy_server.listen(listen.port, listen.ip);
// proxy.api_server(listen.api_port, listen.api_ip);
console.log(
"Proxying " + (listen.ip || '*') + ":" + listen.port +
" to " + proxy.upstream_ip + ":" + proxy.upstream_port
);
if (options.api_ip || options.api_port) {
console.log("API entry points on " + (listen.api_ip || '*') + ":" + listen.api_port);
}