add-setting-env

Add server-side environment variables that control default values for user settings.

INSTALLATION
npx skills add https://github.com/lobehub/lobe-chat --skill add-setting-env
Run in your project or agent environment. Adjust flags if your CLI version differs.

SKILL.md

Adding Environment Variable for User Settings

Add server-side environment variables to configure default values for user settings.

Priority: User Custom > Server Env Var > Hardcoded Default

Steps

1. Define Environment Variable

Create src/envs/<domain>.ts:

import { createEnv } from '@t3-oss/env-nextjs';

import { z } from 'zod';

export const getConfig = () => {

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 Env = getConfig();

### 2. Update Type (if new domain)

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`.

### 3. Assemble Server Config (if new domain)

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;

};


### 4. Merge to User Store (if new domain)

In `src/store/user/slices/common/action.ts`:

const serverSettings: PartialDeep<UserSettings> = {

<domain>: serverConfig.<domain>,

};


### 5. Update .env.example

<Description> (range/options, default: X)

YOUR_ENV_VAR=<example>


### 6. Update Documentation

- `docs/self-hosting/environment-variables/basic.mdx` (EN)

- `docs/self-hosting/environment-variables/basic.zh-CN.mdx` (CN)

## Example: AI_IMAGE_DEFAULT_IMAGE_NUM

// 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

BrowserAct

Let your agent run on any real-world website

Bypass CAPTCHA & anti-bot for free. Start local, scale to cloud.

Explore BrowserAct Skills →

Stop writing automation&scrapers

Install the CLI. Run your first Skill in 30 seconds. Scale when you're ready.

Start free
free · no credit card