summaryrefslogtreecommitdiff
path: root/src/server/index.ts
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2018-04-13 00:51:55 +0900
committersyuilo <syuilotan@yahoo.co.jp>2018-04-13 00:51:55 +0900
commita3bd4ba42693b1dc99ef586ef35f61dc53cdf9e9 (patch)
tree1d9ef7220ca46696ee4ada43f41fcd59d386abc8 /src/server/index.ts
parentMerge branch 'master' of https://github.com/syuilo/misskey (diff)
downloadsharkey-a3bd4ba42693b1dc99ef586ef35f61dc53cdf9e9.tar.gz
sharkey-a3bd4ba42693b1dc99ef586ef35f61dc53cdf9e9.tar.bz2
sharkey-a3bd4ba42693b1dc99ef586ef35f61dc53cdf9e9.zip
wip
Diffstat (limited to 'src/server/index.ts')
-rw-r--r--src/server/index.ts69
1 files changed, 21 insertions, 48 deletions
diff --git a/src/server/index.ts b/src/server/index.ts
index 962d3b5f4f..e9bfa9e10b 100644
--- a/src/server/index.ts
+++ b/src/server/index.ts
@@ -5,67 +5,40 @@
import * as fs from 'fs';
import * as http from 'http';
import * as https from 'https';
-import * as express from 'express';
-import * as morgan from 'morgan';
+import * as Koa from 'koa';
+import * as Router from 'koa-router';
+import * as bodyParser from 'koa-bodyparser';
import activityPub from './activitypub';
import webFinger from './webfinger';
-import log from './log-request';
import config from '../config';
-/**
- * Init app
- */
-const app = express();
-app.disable('x-powered-by');
-app.set('trust proxy', 'loopback');
-
-app.use(morgan(process.env.NODE_ENV == 'production' ? 'combined' : 'dev', {
- // create a write stream (in append mode)
- stream: config.accesslog ? fs.createWriteStream(config.accesslog) : null
-}));
-
-app.use((req, res, next) => {
- log(req);
- next();
-});
+// Init server
+const app = new Koa();
+app.proxy = true;
+app.use(bodyParser);
-/**
- * HSTS
- * 6month(15552000sec)
- */
+// HSTS
+// 6months (15552000sec)
if (config.url.startsWith('https')) {
- app.use((req, res, next) => {
- res.header('strict-transport-security', 'max-age=15552000; preload');
+ app.use((ctx, next) => {
+ ctx.set('strict-transport-security', 'max-age=15552000; preload');
next();
});
}
-// Drop request when without 'Host' header
-app.use((req, res, next) => {
- if (!req.headers['host']) {
- res.sendStatus(400);
- } else {
- next();
- }
-});
+// Init router
+const router = new Router();
-// 互換性のため
-app.post('/meta', (req, res) => {
- res.header('Access-Control-Allow-Origin', '*');
- res.json({
- version: 'nighthike'
- });
-});
+// Routing
+router.use('/api', require('./api'));
+router.use('/files', require('./file'));
+router.use(activityPub.routes());
+router.use(webFinger.routes());
+router.use(require('./web'));
-/**
- * Register modules
- */
-app.use('/api', require('./api'));
-app.use('/files', require('./file'));
-app.use(activityPub);
-app.use(webFinger);
-app.use(require('./web'));
+// Register router
+app.use(router.routes());
function createServer() {
if (config.https) {