add-setting-env by lobehub/lobehub
npx skills add https://github.com/lobehub/lobehub --skill add-setting-env添加服务器端环境变量以配置用户设置的默认值。
优先级:用户自定义 > 服务器环境变量 > 硬编码默认值
创建 src/envs/<domain>.ts:
import { createEnv } from '@t3-oss/env-nextjs';
import { z } from 'zod';
export const get<Domain>Config = () => {
return createEnv({
server: {
YOUR_ENV_VAR: z.coerce.number().min(MIN).max(MAX).optional(),
},
runtimeEnv: {
YOUR_ENV_VAR: process.env.YOUR_ENV_VAR,
},
});
};
export const <domain>Env = get<Domain>Config();
添加到 packages/types/src/serverConfig.ts:
import { User<Domain>Config } from './user/settings';
export interface GlobalServerConfig {
<domain>?: PartialDeep<User<Domain>Config>;
}
优先复用 packages/types/src/user/settings 中的现有类型。
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
在 src/server/globalConfig/index.ts 中:
import { <domain>Env } from '@/envs/<domain>';
export const getServerGlobalConfig = async () => {
const config: GlobalServerConfig = {
<domain>: cleanObject({
<settingName>: <domain>Env.YOUR_ENV_VAR,
}),
};
return config;
};
在 src/store/user/slices/common/action.ts 中:
const serverSettings: PartialDeep<UserSettings> = {
<domain>: serverConfig.<domain>,
};
# <描述>(范围/选项,默认值:X)
# YOUR_ENV_VAR=<示例>
docs/self-hosting/environment-variables/basic.mdx(英文)docs/self-hosting/environment-variables/basic.zh-CN.mdx(中文)// src/envs/image.ts
AI_IMAGE_DEFAULT_IMAGE_NUM: z.coerce.number().min(1).max(20).optional(),
// packages/types/src/serverConfig.ts
image?: PartialDeep<UserImageConfig>;
// src/server/globalConfig/index.ts
image: cleanObject({ defaultImageNum: imageEnv.AI_IMAGE_DEFAULT_IMAGE_NUM }),
// src/store/user/slices/common/action.ts
image: serverConfig.image,
// .env.example
# AI_IMAGE_DEFAULT_IMAGE_NUM=4
每周安装量
390
代码仓库
GitHub 星标数
74.2K
首次出现
2026年1月27日
安全审计
安装于
codex344
opencode341
gemini-cli340
github-copilot325
claude-code288
cursor286
Add server-side environment variables to configure default values for user settings.
Priority : User Custom > Server Env Var > Hardcoded Default
Create src/envs/<domain>.ts:
import { createEnv } from '@t3-oss/env-nextjs';
import { z } from 'zod';
export const get<Domain>Config = () => {
return createEnv({
server: {
YOUR_ENV_VAR: z.coerce.number().min(MIN).max(MAX).optional(),
},
runtimeEnv: {
YOUR_ENV_VAR: process.env.YOUR_ENV_VAR,
},
});
};
export const <domain>Env = get<Domain>Config();
Add to packages/types/src/serverConfig.ts:
import { User<Domain>Config } from './user/settings';
export interface GlobalServerConfig {
<domain>?: PartialDeep<User<Domain>Config>;
}
Prefer reusing existing types from packages/types/src/user/settings.
In src/server/globalConfig/index.ts:
import { <domain>Env } from '@/envs/<domain>';
export const getServerGlobalConfig = async () => {
const config: GlobalServerConfig = {
<domain>: cleanObject({
<settingName>: <domain>Env.YOUR_ENV_VAR,
}),
};
return config;
};
In src/store/user/slices/common/action.ts:
const serverSettings: PartialDeep<UserSettings> = {
<domain>: serverConfig.<domain>,
};
# <Description> (range/options, default: X)
# YOUR_ENV_VAR=<example>
docs/self-hosting/environment-variables/basic.mdx (EN)docs/self-hosting/environment-variables/basic.zh-CN.mdx (CN)// src/envs/image.ts
AI_IMAGE_DEFAULT_IMAGE_NUM: z.coerce.number().min(1).max(20).optional(),
// packages/types/src/serverConfig.ts
image?: PartialDeep<UserImageConfig>;
// src/server/globalConfig/index.ts
image: cleanObject({ defaultImageNum: imageEnv.AI_IMAGE_DEFAULT_IMAGE_NUM }),
// src/store/user/slices/common/action.ts
image: serverConfig.image,
// .env.example
# AI_IMAGE_DEFAULT_IMAGE_NUM=4
Weekly Installs
390
Repository
GitHub Stars
74.2K
First Seen
Jan 27, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
codex344
opencode341
gemini-cli340
github-copilot325
claude-code288
cursor286
React 组合模式指南:Vercel 组件架构最佳实践,提升代码可维护性
106,200 周安装