2023-06-15 09:36:34 -07:00
|
|
|
const express = require('express');
|
2023-12-14 07:49:27 -05:00
|
|
|
const { isEnabled } = require('~/server/utils');
|
|
|
|
const { logger } = require('~/config');
|
|
|
|
|
2023-06-15 09:36:34 -07:00
|
|
|
const router = express.Router();
|
2023-12-06 13:08:49 +01:00
|
|
|
const emailLoginEnabled =
|
|
|
|
process.env.ALLOW_EMAIL_LOGIN === undefined || isEnabled(process.env.ALLOW_EMAIL_LOGIN);
|
2023-06-15 09:36:34 -07:00
|
|
|
|
|
|
|
router.get('/', async function (req, res) {
|
|
|
|
try {
|
2023-10-23 21:08:18 -04:00
|
|
|
const payload = {
|
|
|
|
appTitle: process.env.APP_TITLE || 'LibreChat',
|
2024-02-05 09:31:18 +01:00
|
|
|
socialLogins: req.app.locals.socialLogins,
|
|
|
|
discordLoginEnabled: !!process.env.DISCORD_CLIENT_ID && !!process.env.DISCORD_CLIENT_SECRET,
|
2023-10-23 21:08:18 -04:00
|
|
|
facebookLoginEnabled:
|
|
|
|
!!process.env.FACEBOOK_CLIENT_ID && !!process.env.FACEBOOK_CLIENT_SECRET,
|
2024-02-05 09:31:18 +01:00
|
|
|
githubLoginEnabled: !!process.env.GITHUB_CLIENT_ID && !!process.env.GITHUB_CLIENT_SECRET,
|
|
|
|
googleLoginEnabled: !!process.env.GOOGLE_CLIENT_ID && !!process.env.GOOGLE_CLIENT_SECRET,
|
2023-10-23 21:08:18 -04:00
|
|
|
openidLoginEnabled:
|
|
|
|
!!process.env.OPENID_CLIENT_ID &&
|
|
|
|
!!process.env.OPENID_CLIENT_SECRET &&
|
|
|
|
!!process.env.OPENID_ISSUER &&
|
|
|
|
!!process.env.OPENID_SESSION_SECRET,
|
2024-02-05 09:31:18 +01:00
|
|
|
openidLabel: process.env.OPENID_BUTTON_LABEL || 'Continue with OpenID',
|
2023-10-23 21:08:18 -04:00
|
|
|
openidImageUrl: process.env.OPENID_IMAGE_URL,
|
|
|
|
serverDomain: process.env.DOMAIN_SERVER || 'http://localhost:3080',
|
2023-12-06 13:08:49 +01:00
|
|
|
emailLoginEnabled,
|
2023-10-23 21:08:18 -04:00
|
|
|
registrationEnabled: isEnabled(process.env.ALLOW_REGISTRATION),
|
|
|
|
socialLoginEnabled: isEnabled(process.env.ALLOW_SOCIAL_LOGIN),
|
|
|
|
emailEnabled:
|
2023-11-29 00:00:07 +01:00
|
|
|
(!!process.env.EMAIL_SERVICE || !!process.env.EMAIL_HOST) &&
|
2023-10-23 21:08:18 -04:00
|
|
|
!!process.env.EMAIL_USERNAME &&
|
|
|
|
!!process.env.EMAIL_PASSWORD &&
|
|
|
|
!!process.env.EMAIL_FROM,
|
|
|
|
checkBalance: isEnabled(process.env.CHECK_BALANCE),
|
|
|
|
};
|
2023-07-14 09:36:49 -04:00
|
|
|
|
2023-10-23 21:08:18 -04:00
|
|
|
if (typeof process.env.CUSTOM_FOOTER === 'string') {
|
|
|
|
payload.customFooter = process.env.CUSTOM_FOOTER;
|
|
|
|
}
|
|
|
|
|
|
|
|
return res.status(200).send(payload);
|
2023-06-15 09:36:34 -07:00
|
|
|
} catch (err) {
|
2023-12-14 07:49:27 -05:00
|
|
|
logger.error('Error in startup config', err);
|
2023-07-14 09:36:49 -04:00
|
|
|
return res.status(500).send({ error: err.message });
|
2023-06-15 09:36:34 -07:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
module.exports = router;
|