ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

big-AGI 环境变量完全指南:从 `.env` 配置到后端 LLM、数据库与前端功能的完整部署手册

big-AGI 环境变量完全指南:从 `.env` 配置到后端 LLM、数据库与前端功能的完整部署手册 big-AGI 环境变量完全指南从.env配置到后端 LLM、数据库与前端功能的完整部署手册【免费下载链接】big-AGIAI suite powered by state-of-the-art models and providing advanced AI/AGI functions. Includes AI personas, AGI functions, world-class Beam multi-model chats, text-to-image, voice, response streaming, code highlighting and execution, PDF import, presets for developers, much more. Deploy on-prem or in the cloud.项目地址: https://gitcode.com/GitHub_Trending/bi/big-AGI导读本文档系统讲解 big-AGI 中全部环境变量的作用、优先级规则与配置方法覆盖数据库Postgres/MongoDB、二十余个 LLM 服务商接入、浏览/搜索/TTS 等功能模块以及前端构建期变量与 HTTP Basic 认证。读完本文你将能够独立编写一份可直接用于本地开发或 Docker 部署的.env文件并理解每个变量在源码src/server/env.server.ts中是如何被解析和消费的。变量总览与优先级规则big-AGI 的环境变量体系遵循一个简单而重要的原则所有变量都是可选的。同时存在三层配置来源按优先级从高到低排列UI 选项前端界面中的设置—— 用户在 Web UI 中填写/选择的内容优先级最高后端环境变量—— 服务端通过.env或容器环境注入的配置内置默认值—— 代码中硬编码的兜底值如默认 Host、默认 API 版本。也就是说只要用户在界面上配置了某个 LLM 的 API Key 或自定义 Host即使后端环境变量未设置该配置依然生效反之后端环境变量为零配置部署提供了便利——运维人员无需让每个用户手动输入密钥。这份清单与仓库中的唯一权威解析点 src/server/env.server.ts 保持同步。该文件基于createEnv来自src/modules/3rdparty/t3-env配合 zod v4 做类型校验集中声明了全部服务端与客户端变量所有变量均为z.string().optional()或z.url().optional()级别的可选声明。值得注意的细节是emptyStringAsUndefined: true第 165 行即空字符串会被当作未设置处理避免部署时因空值产生误判。另外该文件第 5-7 行明确约定env.server是纯服务端模块如果在客户端被 import 会直接抛错--turbopack构建会跳过客户端 mock因此服务端密钥绝不会泄漏到浏览器端。配置方式与示例.env本地开发 / 云部署在项目根目录创建.env文件即可被 Next.js 自动加载。以下是根据原文档整理的完整示例可直接复制使用# Database (Postgres) POSTGRES_PRISMA_URL POSTGRES_URL_NON_POOLING # Database (MongoDB) MDB_URI # LLMs OPENAI_API_KEY OPENAI_API_HOST OPENAI_API_ORG_ID ALIBABA_API_HOST ALIBABA_API_KEY AZURE_OPENAI_API_ENDPOINT AZURE_OPENAI_API_KEY ANTHROPIC_API_KEY ANTHROPIC_API_HOST BEDROCK_BEARER_TOKEN BEDROCK_ACCESS_KEY_ID BEDROCK_SECRET_ACCESS_KEY BEDROCK_SESSION_TOKEN BEDROCK_REGION DEEPSEEK_API_KEY GEMINI_API_KEY GROQ_API_KEY LOCALAI_API_HOST LOCALAI_API_KEY METAAI_API_KEY METAAI_API_HOST MISTRAL_API_KEY MOONSHOT_API_KEY NVIDIANIM_API_KEY NVIDIANIM_API_HOST OLLAMA_API_HOST OPENROUTER_API_KEY PERPLEXITY_API_KEY TOGETHERAI_API_KEY XAI_API_KEY # Browse PUPPETEER_WSS_ENDPOINT # Search GOOGLE_CLOUD_API_KEY GOOGLE_CSE_ID # Text-To-Speech: ElevenLabs ELEVENLABS_API_KEY ELEVENLABS_API_HOST ELEVENLABS_VOICE_ID # Backend HTTP Basic Authentication (see deploy-authentication.md for turning on authentication) HTTP_BASIC_AUTH_USERNAME HTTP_BASIC_AUTH_PASSWORD # Frontend variables NEXT_PUBLIC_MOTD NEXT_PUBLIC_GA4_MEASUREMENT_ID NEXT_PUBLIC_GOOGLE_DRIVE_CLIENT_ID NEXT_PUBLIC_PLANTUML_SERVER_URL NEXT_PUBLIC_POSTHOG_KEYDocker 部署使用 Docker 时官方 docker-compose.yaml 通过env_file: - .env自动读取项目根目录的.env文件services: big-agi: image: ghcr.io/enricoros/big-agi:latest ports: - 3000:3000 env_file: - .env也可以不依赖.env文件直接用docker run -e传入变量或在 compose 文件中使用environment:块。两类变量的关键差异后端变量如OPENAI_API_KEY只需在启动时定义。开发模式下启动 Next.js 本地服务器前设置即可容器场景在启动容器时通过--env-file或-e传入前端变量NEXT_PUBLIC_*前缀必须在构建时build time设置这是 Next.js 将变量内联进前端 bundle 的硬性要求。构建完成后修改这些值不会对已构建产物生效必须重新构建。NEXT_PUBLIC_前缀同时意味着这些值会被打进客户端代码因此严禁在其中放入任何秘密。数据库变量为 Chat Link Sharing 等特性提供存储要启用 Chat Link Sharing链接分享等功能后端必须连接数据库。big-AGI 当前支持 Postgres 和 MongoDB 两种方案完整接入步骤见 deploy-database.md。变量说明POSTGRES_PRISMA_URLPostgres 连接串如postgres://USER:PASSSOMEHOST.postgres.vercel-storage.com/SOMEDB?pgbouncertrueconnect_timeout15Serverless Postgres可用于 Vercel、Neon 等平台POSTGRES_URL_NON_POOLING非池化连接的 Postgres URL特定场景使用MDB_URIMongoDB 连接串如mongodb://USER:PASSCLUSTER-NAME.mongodb.net/DATABASE-NAME?retryWritestruewmajority从源码看后端能力探测逻辑在 backend.router.ts 中hasDB判定为MDB_URI存在或POSTGRES_PRISMA_URL与POSTGRES_URL_NON_POOLING同时存在。也就是说 Postgres 方案要求两个变量成对配置。若选用 MongoDB还需按 deploy-database.md 修改 Prisma 数据源配置src/server/prisma/schema.prisma 中将provider改为mongodb、url env(MDB_URI)随后执行npx prisma db push一次性创建/更新数据库表结构。LLM 服务商变量服务端预配置用户免输密钥以下变量一旦在服务端设置对应 LLM 就会直接启用用户无需再在 UI 中手动输入 API Key。它们全部在 src/server/env.server.ts 中有对应声明并在服务端各厂商 access 模块中被消费。变量说明要求OPENAI_API_KEYOpenAI 的 API Key推荐设置OPENAI_API_HOST覆盖 OpenAI 厂商的后端 Host可对接 CloudFlare AI Gateway 等平台可选OPENAI_API_ORG_ID设置OpenAI-Organization请求头支持组织organization用户可选ALIBABA_API_HOST/ALIBABA_API_KEY阿里 AI 的 OpenAI 兼容端点与密钥可选AZURE_OPENAI_API_ENDPOINTAzure OpenAI 端点仅 host不含路径与AZURE_OPENAI_API_KEY成对AZURE_OPENAI_API_KEYAzure OpenAI API Key参见 config-azure-openai.md与AZURE_OPENAI_API_ENDPOINT成对AZURE_OPENAI_DISABLE_V1设为true可禁用面向 GPT-5 类模型的下一代 v1 API可选默认启用AZURE_OPENAI_API_VERSION传统部署端点使用的 API 版本可选默认2025-04-01-previewAZURE_DEPLOYMENTS_API_VERSIONdeployments 列表端点使用的 API 版本可选默认2023-03-15-previewANTHROPIC_API_KEYAnthropic 的 API Key可选ANTHROPIC_API_HOST覆盖 Anthropic 后端 Host用于代理或自定义端点可选BEDROCK_BEARER_TOKENBedrock 长期 API KeyABSK...前缀优先级高于 IAM 凭据短期 Key 仅可用于运行时无法用于模型列表可选BEDROCK_ACCESS_KEY_ID/BEDROCK_SECRET_ACCESS_KEYAWS IAM 访问密钥对通过 AWS 使用 Claude 模型成对设置BEDROCK_SESSION_TOKENAWS 临时/STS 凭据的 Session Token可选企业账号有时必填BEDROCK_REGIONBedrock 的 AWS 区域如us-east-1、us-west-2、eu-west-1可选默认us-east-1DEEPSEEK_API_KEYDeepseek AI 的 API Key可选GEMINI_API_KEYGoogle AI Gemini 的 API Key可选GROQ_API_KEYGroq Cloud 的 API Key可选LOCALAI_API_HOSTLocalAI 服务器 URL可选默认http://127.0.0.1:8080LOCALAI_API_KEYLocalAI 的可选 API Key可选METAAI_API_KEY/METAAI_API_HOSTMeta AIdev.meta.ai密钥与 Host可选Host 默认https://api.meta.aiMISTRAL_API_KEYMistral 的 API Key可选MOONSHOT_API_KEYMoonshot AI 的 API Key可选NVIDIANIM_API_KEYNVIDIA NIMbuild.nvidia.com的 API Keynvapi-...前缀可选NVIDIANIM_API_HOST覆盖 NVIDIA NIM Host可指向自托管 NIM/vLLM 端点可选OLLAMA_API_HOST覆盖 Ollama 厂商的后端 Host参见 config-local-ollama.md可选OPENROUTER_API_KEYOpenRouter 的 API Key可选PERPLEXITY_API_KEYPerplexity 的 API Key可选TOGETHERAI_API_KEYTogether AI 的 API Key可选XAI_API_KEYxAI 的 API Key可选说明以上表格以原文档为准。源码中还额外声明了CEREBRAS_API_KEY、MODULAR_API_KEY、SAKANA_API_KEY/SAKANA_API_HOST等厂商变量见 env.server.ts原文档示例.env未列出不代表不可用但请以文档表格为主进行配置。源码级的变量消费方式OpenAIopenai.access.ts 中当用户未在 UI 配置时oaiHost env.OPENAI_API_HOST || DEFAULT_OPENAI_HOSToaiKey access.oaiKey || env.OPENAI_API_KEYoaiOrg access.oaiOrg || env.OPENAI_API_ORG_ID——清晰体现了UI 选项 环境变量 默认值的优先级链Anthropicanthropic.access.ts 中anthropicHost access.anthropicHost || env.ANTHROPIC_API_HOST || DEFAULT_ANTHROPIC_HOSTOllamaollama.access.ts 中ollamaHost access.ollamaHost || env.OLLAMA_API_HOST || DEFAULT_OLLAMA_HOSTBedrockbedrock.access.ts 中 region 直接取env.BEDROCK_REGION || DEFAULT_BEDROCK_REGION注释明确说明服务端提供的 region 出于安全原因忽略客户端传入值Azure OpenAIopenai.access.ts 中apiEnableV1: env.AZURE_OPENAI_DISABLE_V1 ! true、versionAzureOpenAI: env.AZURE_OPENAI_API_VERSION || 2025-04-01-preview、versionDeployments: env.AZURE_DEPLOYMENTS_API_VERSION || 2023-03-15-preview与文档中的默认值完全一致。服务端能力自动探测后端通过 backend.router.ts 的listCapabilities查询自动探测哪些 LLM 已被服务端预配置并将结果下发前端。例如hasLlmOpenAI !!env.OPENAI_API_KEY || !!env.OPENAI_API_HOSThasLlmAzureOpenAI !!env.AZURE_OPENAI_API_KEY !!env.AZURE_OPENAI_API_ENDPOINT要求成对hasLlmBedrock !!env.BEDROCK_BEARER_TOKEN || (!!env.BEDROCK_ACCESS_KEY_ID !!env.BEDROCK_SECRET_ACCESS_KEY)hasLlmOllama !!env.OLLAMA_API_HOST、hasLlmNvidiaNIM !!env.NVIDIANIM_API_KEY || !!env.NVIDIANIM_API_HOSThasLlmMetaAI等其余厂商均以各自 API Key 是否设置为准这套机制让部署者只需填好.env即可前端模型列表中会自动出现对应厂商的模型无需改代码。此外该文件还基于所有含_API_的环境变量生成配置哈希generateLlmEnvConfigHash第 23-35 行用于触发下游配置变更识别。功能模块变量让应用会说话、能搜索、可浏览文本转语音Text-To-Speechbig-AGI 支持 ElevenLabs、Inworld、OpenAI TTS、LocalAI 以及浏览器 Web Speech API 等多种方案变量说明ELEVENLABS_API_KEYElevenLabs API Key用于通话Call等场景ELEVENLABS_API_HOSTElevenLabs 自定义 HostELEVENLABS_VOICE_IDElevenLabs 默认语音 ID注意OpenAI TTS 与 LocalAI TTS 会直接复用你已配置的 LLM 服务凭据无需单独的环境变量。服务端能力探测中hasVoiceElevenLabs !!env.ELEVENLABS_API_KEY见 backend.router.ts。Google Custom Search/react命令变量说明GOOGLE_CLOUD_API_KEYGoogle Cloud API Key配合/react命令使用GOOGLE_CSE_IDGoogle Custom/Programmable Search Engine ID从源码看search.router.ts 中搜索请求会取input.cx || env.GOOGLE_CSE_ID与input.key || env.GOOGLE_CLOUD_API_KEY同时hasGoogleCustomSearch要求两个变量同时存在backend.router.ts。Browse网页浏览变量说明PUPPETEER_WSS_ENDPOINTPuppeteer WebSocket 端点用于网页浏览、页面下载等browse.router.ts 中浏览请求使用access.wssEndpoint || env.PUPPETEER_WSS_ENDPOINThasBrowsing !!env.PUPPETEER_WSS_ENDPOINT。若需要自带浏览服务的 compose 编排可参考 docker-compose-browserless.yaml。后端 HTTP Basic 认证变量说明HTTP_BASIC_AUTH_USERNAMEHTTP Basic 认证的用户名HTTP_BASIC_AUTH_PASSWORDHTTP Basic 认证的密码big-AGI 本身不内置认证体系通过 HTTP Basic Authentication 即可为部署加上一层简单防护。启用步骤见 deploy-authentication.md将仓库根目录的middleware_BASIC_AUTH.ts重命名为middleware.ts后重新构建即可。中间件实现细节middleware_BASIC_AUTH.ts若两个变量未配置直接返回401 Unauthorized/Unconfigured并输出警告第 16-19 行校验请求头Authorization: Basic ...中 Base64 解码后的用户名/密码是否与process.env完全匹配第 27-35 行拒绝时返回WWW-Authenticate: Basic realmSecure big-AGI第 42-47 行匹配规则覆盖根路径、主要页面call|index|news|personas|link与全部/api路由第 49-58 行。其他服务端变量AIX_STRICT_PARSING设为true时强制在生产环境开启 AIX 严格解析模式默认开发环境严格、生产环境宽容便于调试 API 漂移BIG_AGI_BUILD构建期配置standalone/static正常部署无需关心。前端构建期变量以下变量会随 Next.js 构建内联到前端 bundle 中因此必须构建时设置且不能包含任何机密变量说明NEXT_PUBLIC_DEBUG_BREAKS可选开发用设为true时在开发构建的 DEV/error/critical 日志上自动触发 debugger 断点。对应 errorUtils.ts 中process.env.NEXT_PUBLIC_DEBUG_BREAKS true判断NEXT_PUBLIC_MOTDMessage of the Day——在应用顶部显示一条可关闭的公告横幅。支持模板变量如{{app_build_pkgver}}、{{app_build_time}}、{{app_build_hash}}、{{app_deployment_type}}。示例 Welcome to our deployment! Version {{app_build_pkgver}} built on {{app_build_time}}。模板规则详见 customizations.mdNEXT_PUBLIC_GA4_MEASUREMENT_IDGoogle Analytics 4 的 Measurement ID配置方式见 deploy-analytics.mdNEXT_PUBLIC_GOOGLE_DRIVE_CLIENT_IDGoogle Drive Picker 使用的 OAuth Client ID可复用AUTH_GOOGLE_ID见 config-feature-google-drive.mdNEXT_PUBLIC_PLANTUML_SERVER_URLPlantUML 服务器 URL用于渲染 UML 图可指定自定义本地服务器NEXT_PUBLIC_POSTHOG_KEYPostHog 分析平台的 Key见 deploy-analytics.md前端变量的源码消费点MOTDOptimaMOTD.tsx 通过process.env.NEXT_PUBLIC_MOTD判断是否渲染横幅并在第 33-45 行用Release.buildInfo(frontend)替换{{app_build_hash}}、{{app_build_pkgver}}、{{app_deployment_type}}等模板变量{{app_build_time}}会被特殊渲染为 TimeAgo 相对时间组件横幅支持按内容哈希记忆已关闭状态MOTD_PREFIX hashGA4 / PostHogGoogleAnalytics.tsx 与 PostHogAnalytics.tsx 均以对应变量是否存在来决定是否初始化分析 SDKPostHog 服务端侧也会复用同一 Keyposthog.server.tsPlantUMLRenderCodePlantUML.tsx 中渲染 UML 图时取process.env.NEXT_PUBLIC_PLANTUML_SERVER_URL || https://www.plantuml.com/plantuml/svg/作为默认服务。常见部署组合速查部署目标必配变量参考文档仅前端体验无后端持久化任意一个 LLM Key 即可如OPENAI_API_KEYinstallation.md启用 Chat Link SharingPOSTGRES_PRISMA_URLPOSTGRES_URL_NON_POOLING或MDB_URIdeploy-database.mdDocker 一键部署通过env_file: .env整体注入deploy-docker.md公网部署加固HTTP_BASIC_AUTH_USERNAMEHTTP_BASIC_AUTH_PASSWORD需重命名middleware_BASIC_AUTH.ts并重建deploy-authentication.md接入分析NEXT_PUBLIC_GA4_MEASUREMENT_ID或NEXT_PUBLIC_POSTHOG_KEY构建期deploy-analytics.md本地 OllamaOLLAMA_API_HOST默认http://127.0.0.1:8080对应的 Ollama 默认端口需自行核对config-local-ollama.md延伸阅读customizations.md —— 后端代码与环境自定义的更高层概览deploy-database.md —— 数据库连接串与 Prisma 配置细节deploy-authentication.md —— 开启 HTTP Basic 认证的完整步骤deploy-analytics.md —— GA4 / PostHog 分析接入config-azure-openai.md —— Azure OpenAI 专项配置config-local-ollama.md —— 本地 Ollama 接入environment-variables.md —— 本文的原始权威清单与 env.server.ts 保持同步最后再强调一次关键要点全部变量可选UI 选项优先于后端环境变量后端环境变量优先于内置默认值NEXT_PUBLIC_*变量必须在构建时设置且不可含机密Postgres 需要两个 URL 成对配置Azure OpenAI 端点与密钥成对Bedrock 的 Bearer Token 与 IAM 凭据二选一即可。按照本文清单填写.env即可逐步点亮 big-AGI 的数据库、多 LLM、浏览搜索与语音等全部能力。【免费下载链接】big-AGIAI suite powered by state-of-the-art models and providing advanced AI/AGI functions. Includes AI personas, AGI functions, world-class Beam multi-model chats, text-to-image, voice, response streaming, code highlighting and execution, PDF import, presets for developers, much more. Deploy on-prem or in the cloud.项目地址: https://gitcode.com/GitHub_Trending/bi/big-AGI创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表