diff --git a/.env.example b/.env.example index 822bb2d66..c3c62becd 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 afe9d1047..230f8e79d 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 paths = require('~/config/paths'); const routes = require('./routes'); @@ -28,6 +29,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 553f2c663..0d878d4c9 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 000000000..c4d7b55f2 --- /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;