mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2025-05-19 17:55:17 -04:00

This adds a reverse proxy to the backend, that automatically redirects requests that are not handled by the backend to the React dev server running on port 3001. The reverse proxy is only enabled when NODE_ENV is set to 'development'. Signed-off-by: David Mehren <git@herrmehren.de>
35 lines
1.1 KiB
TypeScript
35 lines
1.1 KiB
TypeScript
/*
|
|
* SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file)
|
|
*
|
|
* SPDX-License-Identifier: AGPL-3.0-only
|
|
*/
|
|
import { NestExpressApplication } from '@nestjs/platform-express';
|
|
import { createProxyMiddleware } from 'http-proxy-middleware';
|
|
|
|
import { ConsoleLoggerService } from '../logger/console-logger.service';
|
|
import { useUnless } from './use-unless';
|
|
|
|
export function setupFrontendProxy(
|
|
app: NestExpressApplication,
|
|
logger: ConsoleLoggerService,
|
|
): void {
|
|
logger.log(
|
|
`Setting up proxy to frontend dev server on port 3001`,
|
|
'setupFrontendProxy',
|
|
);
|
|
const frontendProxy = createProxyMiddleware({
|
|
logProvider: () => {
|
|
return {
|
|
log: (msg) => logger.log(msg, 'FrontendProxy'),
|
|
debug: (msg) => logger.debug(msg, 'FrontendProxy'),
|
|
info: (msg) => logger.log(msg, 'FrontendProxy'),
|
|
warn: (msg) => logger.warn(msg, 'FrontendProxy'),
|
|
error: (msg) => logger.error(msg, 'FrontendProxy'),
|
|
};
|
|
},
|
|
target: 'http://localhost:3001',
|
|
changeOrigin: true,
|
|
ws: true,
|
|
});
|
|
app.use(useUnless(['/api', '/public'], frontendProxy));
|
|
}
|