MyBlog 部署指南 — 从零到上线
前置准备
在开始之前,你需要准备以下账号和工具:
- GitHub 账号:用于托管代码
- Vercel 账号:免费注册,用于部署
- Neon 账号:免费的 PostgreSQL 数据库服务
- Node.js 18+:本地开发环境
第一步:配置 Neon 数据库
- 访问
neon.tech注册账号 - 创建一个新项目,选择离你最近的区域
- 创建完成后,在 Dashboard 中复制连接字符串,格式类似:
postgresql://username:password@ep-xxx.region.aws.neon.tech/neondb?sslmode=require保存好这个连接字符串,后面会用到。
第二步:配置 Vercel Blob
- 在 Vercel Dashboard 中进入你的项目
- 进入 Storage 页面,创建一个 Blob Store
- 复制生成的
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 集成
- 将代码推送到 GitHub
- 在 Vercel Dashboard 中导入该仓库
- Vercel 会自动检测 Next.js 项目并部署
配置环境变量
在 Vercel Dashboard > 项目设置 > Environment Variables 中添加:
| 变量名 | 说明 |
|---|---|
DATABASE_URL | Neon 数据库连接字符串 |
BLOB_READ_WRITE_TOKEN | Vercel Blob 的读写 Token |
ADMIN_PASSWORD | 管理员登录密码 |
JWT_SECRET | JWT 签名密钥 |
或者使用 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第五步:验证部署
部署完成后,验证以下功能:
- 首页:访问你的域名,应该能看到博客列表
- 管理后台:访问
/admin/login,使用密码登录 - 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 即可。