feat: add CUSTOM_FOOTER env variable (#1098)

This commit is contained in:
Danny Avila 2023-10-23 21:08:18 -04:00 committed by GitHub
parent 4ce585f77d
commit 05c4c7e551
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 49 additions and 47 deletions

View file

@ -4,6 +4,10 @@
APP_TITLE=LibreChat
# Uncomment to add a custom footer.
# Uncomment and make empty "" to remove the footer.
# CUSTOM_FOOTER="My custom footer"
# The server will listen to localhost:3080 by default. You can change the target IP as you want.
# If you want to make this server available externally, for example to share the server with others
# or expose this from a Docker container, set host to 0.0.0.0 or your external IP interface.

View file

@ -4,45 +4,36 @@ const { isEnabled } = require('../utils');
router.get('/', async function (req, res) {
try {
const appTitle = process.env.APP_TITLE || 'LibreChat';
const googleLoginEnabled = !!process.env.GOOGLE_CLIENT_ID && !!process.env.GOOGLE_CLIENT_SECRET;
const facebookLoginEnabled =
!!process.env.FACEBOOK_CLIENT_ID && !!process.env.FACEBOOK_CLIENT_SECRET;
const openidLoginEnabled =
!!process.env.OPENID_CLIENT_ID &&
!!process.env.OPENID_CLIENT_SECRET &&
!!process.env.OPENID_ISSUER &&
!!process.env.OPENID_SESSION_SECRET;
const openidLabel = process.env.OPENID_BUTTON_LABEL || 'Login with OpenID';
const openidImageUrl = process.env.OPENID_IMAGE_URL;
const githubLoginEnabled = !!process.env.GITHUB_CLIENT_ID && !!process.env.GITHUB_CLIENT_SECRET;
const discordLoginEnabled =
!!process.env.DISCORD_CLIENT_ID && !!process.env.DISCORD_CLIENT_SECRET;
const serverDomain = process.env.DOMAIN_SERVER || 'http://localhost:3080';
const registrationEnabled = isEnabled(process.env.ALLOW_REGISTRATION);
const socialLoginEnabled = isEnabled(process.env.ALLOW_SOCIAL_LOGIN);
const checkBalance = isEnabled(process.env.CHECK_BALANCE);
const emailEnabled =
!!process.env.EMAIL_SERVICE &&
!!process.env.EMAIL_USERNAME &&
!!process.env.EMAIL_PASSWORD &&
!!process.env.EMAIL_FROM;
const payload = {
appTitle: process.env.APP_TITLE || 'LibreChat',
googleLoginEnabled: !!process.env.GOOGLE_CLIENT_ID && !!process.env.GOOGLE_CLIENT_SECRET,
facebookLoginEnabled:
!!process.env.FACEBOOK_CLIENT_ID && !!process.env.FACEBOOK_CLIENT_SECRET,
openidLoginEnabled:
!!process.env.OPENID_CLIENT_ID &&
!!process.env.OPENID_CLIENT_SECRET &&
!!process.env.OPENID_ISSUER &&
!!process.env.OPENID_SESSION_SECRET,
openidLabel: process.env.OPENID_BUTTON_LABEL || 'Login with OpenID',
openidImageUrl: process.env.OPENID_IMAGE_URL,
githubLoginEnabled: !!process.env.GITHUB_CLIENT_ID && !!process.env.GITHUB_CLIENT_SECRET,
discordLoginEnabled: !!process.env.DISCORD_CLIENT_ID && !!process.env.DISCORD_CLIENT_SECRET,
serverDomain: process.env.DOMAIN_SERVER || 'http://localhost:3080',
registrationEnabled: isEnabled(process.env.ALLOW_REGISTRATION),
socialLoginEnabled: isEnabled(process.env.ALLOW_SOCIAL_LOGIN),
emailEnabled:
!process.env.EMAIL_SERVICE &&
!!process.env.EMAIL_USERNAME &&
!!process.env.EMAIL_PASSWORD &&
!!process.env.EMAIL_FROM,
checkBalance: isEnabled(process.env.CHECK_BALANCE),
};
return res.status(200).send({
appTitle,
googleLoginEnabled,
facebookLoginEnabled,
openidLoginEnabled,
openidLabel,
openidImageUrl,
githubLoginEnabled,
discordLoginEnabled,
serverDomain,
registrationEnabled,
socialLoginEnabled,
emailEnabled,
checkBalance,
});
if (typeof process.env.CUSTOM_FOOTER === 'string') {
payload.customFooter = process.env.CUSTOM_FOOTER;
}
return res.status(200).send(payload);
} catch (err) {
console.error(err);
return res.status(500).send({ error: err.message });

View file

@ -8,15 +8,21 @@ export default function Footer() {
return (
<div className="hidden px-3 pb-1 pt-2 text-center text-xs text-black/50 dark:text-white/50 md:block md:px-4 md:pb-4 md:pt-3">
<a
href="https://github.com/danny-avila/LibreChat"
target="_blank"
rel="noreferrer"
className="underline"
>
{config?.appTitle || 'LibreChat'} v0.6.0
</a>
{' - '}. {localize('com_ui_pay_per_call')}
{typeof config?.customFooter === 'string' ? (
config.customFooter
) : (
<>
<a
href="https://github.com/danny-avila/LibreChat"
target="_blank"
rel="noreferrer"
className="underline"
>
{config?.appTitle || 'LibreChat'} v0.6.0
</a>
{' - '}. {localize('com_ui_pay_per_call')}
</>
)}
</div>
);
}

View file

@ -181,6 +181,7 @@ export type TStartupConfig = {
socialLoginEnabled: boolean;
emailEnabled: boolean;
checkBalance: boolean;
customFooter?: string;
};
export type TRefreshTokenResponse = {