summaryrefslogtreecommitdiff
path: root/src/server.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/server.ts')
-rw-r--r--src/server.ts49
1 files changed, 49 insertions, 0 deletions
diff --git a/src/server.ts b/src/server.ts
new file mode 100644
index 0000000000..a327504b26
--- /dev/null
+++ b/src/server.ts
@@ -0,0 +1,49 @@
+/**
+ * Core Server
+ */
+
+import * as fs from 'fs';
+import * as http from 'http';
+import * as https from 'https';
+
+import * as express from 'express';
+const vhost = require('vhost');
+
+/**
+ * Init app
+ */
+const app = express();
+app.disable('x-powered-by');
+
+/**
+ * Register modules
+ */
+app.use(vhost(`api.${config.host}`, require('./api/server')));
+app.use(vhost(config.secondary_host, require('./himasaku/server')));
+app.use(vhost(`file.${config.secondary_host}`, require('./file/server')));
+app.use(vhost(`proxy.${config.secondary_host}`, require('./web/service/proxy/server')));
+app.use(require('./web/server'));
+
+/**
+ * Create server
+ */
+const server = config.https.enable ?
+ https.createServer({
+ key: fs.readFileSync(config.https.key),
+ cert: fs.readFileSync(config.https.cert),
+ ca: fs.readFileSync(config.https.ca)
+ }, app) :
+ http.createServer(app);
+
+/**
+ * Steaming
+ */
+require('./api/streaming')(server);
+
+/**
+ * Server listen
+ */
+server.listen(config.port, () => {
+ // Send a 'ready' message to parent process
+ process.send('ready');
+});