From fa4dc57a21348301326c8995adf38b1563d44e55 Mon Sep 17 00:00:00 2001 From: Marco Beretta <81851188+Berry-13@users.noreply.github.com> Date: Sat, 30 Dec 2023 02:42:04 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=AB=F0=9F=94=8D=20feat:=20disallow=20s?= =?UTF-8?q?earch=20indexing=20(#1409)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: disallow search indexing * Update index.js * Update .env.example * added middleware --- .env.example | 3 +++ api/server/index.js | 2 ++ api/server/middleware/index.js | 2 ++ api/server/middleware/noIndex.js | 11 +++++++++++ 4 files changed, 18 insertions(+) create mode 100644 api/server/middleware/noIndex.js diff --git a/.env.example b/.env.example index 822bb2d669b..c3c62becd53 100644 --- a/.env.example +++ b/.env.example @@ -24,9 +24,12 @@ MONGO_URI=mongodb://127.0.0.1:27017/LibreChat DOMAIN_CLIENT=http://localhost:3080 DOMAIN_SERVER=http://localhost:3080 +NO_INDEX=true + #===============# # Debug Logging # #===============# + DEBUG_LOGGING=true DEBUG_CONSOLE=false diff --git a/api/server/index.js b/api/server/index.js index dd866cd645c..9112d62f807 100644 --- a/api/server/index.js +++ b/api/server/index.js @@ -8,6 +8,7 @@ const errorController = require('./controllers/ErrorController'); const configureSocialLogins = require('./socialLogins'); const { connectDb, indexSync } = require('~/lib/db'); const { logger } = require('~/config'); +const noIndex = require('./middleware/noIndex'); const Sentry = require('@sentry/node'); const SENTRY_DSN = process.env.SENTRY_DSN; @@ -31,6 +32,7 @@ const startServer = async () => { app.locals.config = paths; // Middleware + app.use(noIndex); app.use(errorController); app.use(express.json({ limit: '3mb' })); app.use(mongoSanitize()); diff --git a/api/server/middleware/index.js b/api/server/middleware/index.js index 553f2c663ab..0d878d4c902 100644 --- a/api/server/middleware/index.js +++ b/api/server/middleware/index.js @@ -12,6 +12,7 @@ const concurrentLimiter = require('./concurrentLimiter'); const validateMessageReq = require('./validateMessageReq'); const buildEndpointOption = require('./buildEndpointOption'); const validateRegistration = require('./validateRegistration'); +const noIndex = require('./noIndex'); module.exports = { ...abortMiddleware, @@ -28,4 +29,5 @@ module.exports = { validateMessageReq, buildEndpointOption, validateRegistration, + noIndex, }; diff --git a/api/server/middleware/noIndex.js b/api/server/middleware/noIndex.js new file mode 100644 index 00000000000..c4d7b55f2de --- /dev/null +++ b/api/server/middleware/noIndex.js @@ -0,0 +1,11 @@ +const noIndex = (req, res, next) => { + const shouldNoIndex = process.env.NO_INDEX ? process.env.NO_INDEX === 'true' : true; + + if (shouldNoIndex) { + res.setHeader('X-Robots-Tag', 'noindex'); + } + + next(); +}; + +module.exports = noIndex;