> ## Documentation Index
> Fetch the complete documentation index at: https://help.helloazhenweb.top/llms.txt
> Use this file to discover all available pages before exploring further.

# Birthday Wall 的环境变量

> Birthday Wall 所需五个环境变量的完整参考，附可直接复制的 .env.local 模板以及在 Vercel 上设置它们的指引。

Birthday Wall 完全依赖环境变量读取配置 — 部署前不需要修改任何配置文件。你总共需要五个变量：三个用于 Supabase、一个用于公开站点 URL，以及一个用来保护管理后台。本页文档记录了每个变量，并展示如何在本地和 Vercel 上设置它们。

## 必需变量

<ParamField path="NEXT_PUBLIC_SUPABASE_URL" type="string" required>
  你的 Supabase 项目的基础 URL。可以在 Supabase 仪表板的 **Project Settings → API → Project URL** 中找到。

  示例：`https://abcdefghijklmnop.supabase.co`

  此变量带 `NEXT_PUBLIC_` 前缀，因此在服务端和客户端代码中都可访问。
</ParamField>

<ParamField path="NEXT_PUBLIC_SUPABASE_ANON_KEY" type="string" required>
  Supabase 项目的公开匿名密钥。位于 **Project Settings → API → Project API keys → anon public**。

  示例：`eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...`

  这个密钥可以安全地公开。数据库中的行级安全策略决定了未认证调用方能读什么、写什么。
</ParamField>

<ParamField path="SUPABASE_SERVICE_ROLE_KEY" type="string" required>
  Supabase 项目的 service role 机密密钥。位于 **Project Settings → API → Project API keys → service\_role**（点击 **Reveal** 显示）。

  示例：`eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...`

  该密钥对数据库拥有完整、不受限的访问权限，并绕过所有 RLS 策略。它只会在服务端 API 路由中使用，绝不能出现在浏览器代码中或被提交到版本控制。
</ParamField>

<ParamField path="NEXT_PUBLIC_SITE_URL" type="string" required>
  你部署站点的完整公开 URL，结尾不带斜杠。用于生成绝对链接和配置 Supabase 的认证回跳。

  示例：`https://yourname-birthday.vercel.app`

  完成首次 Vercel 部署后，把 Vercel 分配的生产 URL 复制过来设置到这里，然后重新部署。如果之后你绑定了自定义域名，请同步更新这个值。
</ParamField>

<ParamField path="ADMIN_PASSWORD" type="string" required>
  访问 `/admin` 管理后台所用的密码。请选一个强密码、独特的值 — 这是保护管理界面的唯一凭据。

  示例：`a-long-random-passphrase-here`
</ParamField>

## 本地开发模板

在项目根目录创建一个 `.env.local` 文件，并填入你从 Supabase 收集到的值：

```bash theme={null}
NEXT_PUBLIC_SUPABASE_URL=https://xxxx.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJ...
SUPABASE_SERVICE_ROLE_KEY=eyJ...
NEXT_PUBLIC_SITE_URL=https://yourname-birthday.vercel.app
ADMIN_PASSWORD=your-secret-password
```

<Warning>
  切勿将 `.env.local` 提交到版本控制。请立刻把它加入 `.gitignore`。`SUPABASE_SERVICE_ROLE_KEY` 和 `ADMIN_PASSWORD` 都是敏感凭据，绝不能出现在 git 历史中。
</Warning>

## 在 Vercel 上设置变量

<Tip>
  在 Vercel 上，请在首次部署前（或任何需要更新值时）于项目的 **Settings → Environment Variables** 标签页添加这些变量。Vercel 会对环境变量进行静态加密，并在构建期与运行时注入。
</Tip>

每个变量的添加流程：

1. 进入 Vercel 项目仪表板并点击 **Settings**。
2. 在左侧栏选择 **Environment Variables**。
3. 点击 **Add**，输入变量名和值。
4. 选择该变量适用于哪些环境：**Production**、**Preview** 和/或 **Development**。
5. 点击 **Save**。

添加或修改任意环境变量后，需要触发一次新的部署才能让更改生效。你可以推送一个新提交，或在 Vercel 仪表板中点击 **Redeploy**。
