MyBlog 部署指南 — 从零到上线

项目文档

前置准备

在开始之前,你需要准备以下账号和工具:

  • GitHub 账号:用于托管代码
  • Vercel 账号:免费注册,用于部署
  • Neon 账号:免费的 PostgreSQL 数据库服务
  • Node.js 18+:本地开发环境

第一步:配置 Neon 数据库

  1. 访问 neon.tech 注册账号
  2. 创建一个新项目,选择离你最近的区域
  3. 创建完成后,在 Dashboard 中复制连接字符串,格式类似:
postgresql://username:password@ep-xxx.region.aws.neon.tech/neondb?sslmode=require

保存好这个连接字符串,后面会用到。

第二步:配置 Vercel Blob

  1. 在 Vercel Dashboard 中进入你的项目
  2. 进入 Storage 页面,创建一个 Blob Store
  3. 复制生成的 BLOB_READ_WRITE_TOKEN

第三步:本地开发

克隆项目

git clone your-repo-url
cd myblog
npm install

配置环境变量

创建 .env.local 文件:

# Neon 数据库
DATABASE_URL="postgresql://user:pass@host/db?sslmode=require"

# Vercel Blob
BLOB_READ_WRITE_TOKEN="vercel_blob_rw_xxx"

# 管理员密码(自定义)
ADMIN_PASSWORD="your-secure-password"

# JWT 密钥(自定义,建议随机字符串)
JWT_SECRET="your-random-jwt-secret"

同时创建 .env 文件(Prisma 迁移使用):

DATABASE_URL="postgresql://user:pass@host/db?sslmode=require"

初始化数据库

# 运行数据库迁移
npx prisma migrate dev --name init

# 生成 Prisma Client
npx prisma generate

启动开发服务器

npm run dev

# 访问 http://localhost:3000
# 管理后台 http://localhost:3000/admin/login

第四步:部署到 Vercel

方式一:Vercel CLI(推荐)

# 安装 Vercel CLI
npm install -g vercel

# 登录
vercel login

# 部署
vercel --prod

方式二:Git 集成

  1. 将代码推送到 GitHub
  2. 在 Vercel Dashboard 中导入该仓库
  3. Vercel 会自动检测 Next.js 项目并部署

配置环境变量

在 Vercel Dashboard > 项目设置 > Environment Variables 中添加:

变量名说明
DATABASE_URLNeon 数据库连接字符串
BLOB_READ_WRITE_TOKENVercel Blob 的读写 Token
ADMIN_PASSWORD管理员登录密码
JWT_SECRETJWT 签名密钥

或者使用 CLI 添加:

vercel env add DATABASE_URL production --value "your-value" --yes
vercel env add BLOB_READ_WRITE_TOKEN production --value "your-value" --yes
vercel env add ADMIN_PASSWORD production --value "your-value" --yes
vercel env add JWT_SECRET production --value "your-value" --yes

添加完环境变量后,需要重新部署:

vercel --prod

第五步:验证部署

部署完成后,验证以下功能:

  1. 首页:访问你的域名,应该能看到博客列表
  2. 管理后台:访问 /admin/login,使用密码登录
  3. API:测试登录接口
curl -X POST https://your-domain/api/auth/login \
  -H "Content-Type: application/json" \
  -d '{"password":"your-password"}'

常见问题

Prisma 报错

确保 package.json 中有 postinstall 脚本:

"scripts": {
  "postinstall": "prisma generate"
}

数据库连接失败

检查 Neon 的连接字符串是否正确,确保使用了连接池地址(带 -pooler 的)。

图片上传失败

确认 BLOB_READ_WRITE_TOKEN 已正确配置,且 Vercel Blob Store 已创建。

自定义域名

在 Vercel Dashboard > 项目设置 > Domains 中添加你的自定义域名,按照提示配置 DNS 即可。