lobe-chat

Форк
0
76 строк · 2.1 Кб
1
/* eslint-disable sort-keys-fix/sort-keys-fix */
2
import { createEnv } from '@t3-oss/env-nextjs';
3
import { z } from 'zod';
4

5
import { isServerMode } from '@/const/version';
6

7
declare global {
8
  // eslint-disable-next-line @typescript-eslint/no-namespace
9
  namespace NodeJS {
10
    interface ProcessEnv {
11
      ACCESS_CODE?: string;
12
    }
13
  }
14
}
15
const isInVercel = process.env.VERCEL === '1';
16

17
const vercelUrl = `https://${process.env.VERCEL_URL}`;
18

19
const APP_URL = process.env.APP_URL ? process.env.APP_URL : isInVercel ? vercelUrl : undefined;
20

21
// only throw error in server mode and server side
22
if (typeof window === 'undefined' && isServerMode && !APP_URL) {
23
  throw new Error('`APP_URL` is required in server mode');
24
}
25

26
export const getAppConfig = () => {
27
  const ACCESS_CODES = process.env.ACCESS_CODE?.split(',').filter(Boolean) || [];
28

29
  return createEnv({
30
    client: {
31
      NEXT_PUBLIC_BASE_PATH: z.string(),
32
      NEXT_PUBLIC_ENABLE_SENTRY: z.boolean(),
33
    },
34
    server: {
35
      ACCESS_CODES: z.any(z.string()).optional(),
36

37
      AGENTS_INDEX_URL: z.string().url(),
38

39
      DEFAULT_AGENT_CONFIG: z.string(),
40
      SYSTEM_AGENT: z.string().optional(),
41

42
      PLUGINS_INDEX_URL: z.string().url(),
43
      PLUGIN_SETTINGS: z.string().optional(),
44

45
      APP_URL: z.string().optional(),
46
      CDN_USE_GLOBAL: z.boolean().optional(),
47
    },
48
    runtimeEnv: {
49
      NEXT_PUBLIC_BASE_PATH: process.env.NEXT_PUBLIC_BASE_PATH || '',
50

51
      // Sentry
52
      NEXT_PUBLIC_ENABLE_SENTRY: !!process.env.NEXT_PUBLIC_SENTRY_DSN,
53

54
      ACCESS_CODES: ACCESS_CODES as any,
55

56
      AGENTS_INDEX_URL: !!process.env.AGENTS_INDEX_URL
57
        ? process.env.AGENTS_INDEX_URL
58
        : 'https://chat-agents.lobehub.com',
59

60
      DEFAULT_AGENT_CONFIG: process.env.DEFAULT_AGENT_CONFIG || '',
61
      SYSTEM_AGENT: process.env.SYSTEM_AGENT,
62

63
      PLUGINS_INDEX_URL: !!process.env.PLUGINS_INDEX_URL
64
        ? process.env.PLUGINS_INDEX_URL
65
        : 'https://chat-plugins.lobehub.com',
66

67
      PLUGIN_SETTINGS: process.env.PLUGIN_SETTINGS,
68

69
      APP_URL,
70

71
      CDN_USE_GLOBAL: process.env.CDN_USE_GLOBAL === '1',
72
    },
73
  });
74
};
75

76
export const appEnv = getAppConfig();
77

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.