diff --git a/package.json b/package.json index eed5d6370..d82e5d233 100644 --- a/package.json +++ b/package.json @@ -54,6 +54,7 @@ "@types/js-yaml": "3.11.1", "@types/koa": "2.0.45", "@types/koa-bodyparser": "4.2.0", + "@types/koa-compress": "^2.0.8", "@types/koa-favicon": "2.0.19", "@types/koa-mount": "3.0.1", "@types/koa-multer": "1.0.0", @@ -137,6 +138,7 @@ "jsdom": "11.7.0", "koa": "2.5.0", "koa-bodyparser": "4.2.0", + "koa-compress": "^2.0.0", "koa-favicon": "2.0.1", "koa-mount": "3.0.0", "koa-multer": "1.0.2", diff --git a/src/server/index.ts b/src/server/index.ts index a637e8598..db41a1dcb 100644 --- a/src/server/index.ts +++ b/src/server/index.ts @@ -5,9 +5,11 @@ import * as fs from 'fs'; import * as http from 'http'; import * as http2 from 'http2'; +import * as zlib from 'zlib'; import * as Koa from 'koa'; import * as Router from 'koa-router'; import * as mount from 'koa-mount'; +import * as compress from 'koa-compress'; import activityPub from './activitypub'; import webFinger from './webfinger'; @@ -17,6 +19,10 @@ import config from '../config'; const app = new Koa(); app.proxy = true; +app.use(compress({ + flush: zlib.constants.Z_SYNC_FLUSH +})); + // HSTS // 6months (15552000sec) if (config.url.startsWith('https')) {