Thanks to visit codestin.com
Credit goes to github.com

Skip to content

一个基于 Next.js 15、Sanity CMS 和 NextAuth.js 构建的现代化内容管理系统。 支持多语言、付费内容、用户认证等完整功能的企业级CMS解决方案。

Notifications You must be signed in to change notification settings

ItusiAI/get-cms

Repository files navigation

🚀 Get CMS - 现代化内容管理系统

Next.js TypeScript Tailwind CSS Sanity

一个基于 Next.js 15Sanity CMSNextAuth.js 构建的现代化内容管理系统。 支持多语言、付费内容、用户认证等完整功能的企业级CMS解决方案。

🌟 在线演示🐛 报告问题


✨ 功能特性

🌐 多语言支持

  • 完整的中英文国际化
  • 动态语言切换
  • SEO友好的多语言路由

🔐 用户认证系统

  • 邮箱注册/登录
  • OAuth登录(GitHub、Google)
  • 邮箱验证和密码重置
  • JWT会话管理

付费内容系统

  • Stripe支付集成
  • 一次性付费模式
  • 付费文章预览
  • 订阅状态管理

📊 内容管理

  • Sanity CMS无头内容管理
  • 实时内容预览
  • 富文本编辑器
  • 媒体资源管理

🎨 现代化设计

  • 响应式设计
  • 暗色/亮色主题
  • Shadcn/ui组件库
  • 流畅的动画效果

🔒 安全特性

  • 用户权限管理
  • 内容访问控制
  • 安全的支付处理
  • 数据验证和清理

🛠️ 技术栈

类别 技术 版本 描述
前端框架 Next.js 15.x React全栈框架
开发语言 TypeScript 5.x 类型安全的JavaScript
UI框架 React 18.x 用户界面库
样式方案 Tailwind CSS 3.4.x 原子化CSS框架
组件库 Shadcn/ui Latest 现代化组件库
认证系统 NextAuth.js 4.x 身份验证解决方案
内容管理 Sanity Latest 无头CMS
支付系统 Stripe Latest 在线支付处理
邮件服务 Resend Latest 邮件发送服务
部署平台 Vercel Latest 云部署平台

🚀 快速开始

📋 前置要求

  • Node.js 18.0 或更高版本
  • npm 或 yarn 包管理器
  • Git

📦 安装步骤

  1. 克隆仓库
git clone https://github.com/ItusiAI/get-cms.git
cd get-cms
  1. 安装依赖
npm install
#
yarn install
  1. 环境配置
# 复制环境变量模板
cp .env.local.example .env.local

# 生成安全密钥
openssl rand -base64 32
  1. 配置环境变量

💡 详细配置指南: 查看 环境变量配置文档 获取完整说明

编辑 .env.local 文件,填入以下配置:

# ===========================================
# 基础配置
# ===========================================
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=your-generated-secret-key

# ===========================================
# Sanity CMS 配置
# ===========================================
NEXT_PUBLIC_SANITY_PROJECT_ID=your-sanity-project-id
NEXT_PUBLIC_SANITY_DATASET=production
SANITY_API_TOKEN=your-sanity-api-token

# ===========================================
# OAuth 提供商配置
# ===========================================
GITHUB_CLIENT_ID=your-github-client-id
GITHUB_CLIENT_SECRET=your-github-client-secret
GOOGLE_CLIENT_ID=your-google-client-id
GOOGLE_CLIENT_SECRET=your-google-client-secret

# ===========================================
# 邮件服务配置 (Resend)
# ===========================================
RESEND_API_KEY=your-resend-api-key
FROM_EMAIL=[email protected]
FROM_NAME=Your App Name

# ===========================================
# 支付系统配置 (Stripe)
# ===========================================
STRIPE_PUBLISHABLE_KEY=your-stripe-publishable-key
STRIPE_SECRET_KEY=your-stripe-secret-key
STRIPE_WEBHOOK_SECRET=your-stripe-webhook-secret
  1. 启动开发服务器
npm run dev
#
yarn dev
  1. 访问应用

打开浏览器访问 http://localhost:3000

🏗️ 构建和部署

# 构建生产版本
npm run build

# 启动生产服务器
npm start

# 类型检查
npm run type-check

# 代码检查
npm run lint

# 代码格式化
npm run format

📚 详细文档

为了帮助您快速配置和部署 Get CMS,我们提供了完整的配置文档:

🔧 配置指南

📖 配置顺序建议

  1. 基础配置环境变量配置
  2. 内容管理Sanity CMS 配置
  3. 用户认证OAuth 登录配置
  4. 邮件服务Resend 邮箱配置
  5. 支付功能Stripe 支付配置
  6. 上线部署部署指南

⚙️ 快速配置指南

📧 邮件服务配置 (Resend)

  1. 注册 Resend 账户

    • 访问 Resend 注册账户
    • 验证域名或使用测试域名
  2. 获取 API 密钥

    RESEND_API_KEY=re_xxxxxxxxxx
    [email protected]
    FROM_NAME=Your App Name

🔐 OAuth 提供商配置

GitHub OAuth

  1. 访问 GitHub Developer Settings
  2. 创建新的 OAuth App
  3. 配置回调URL:
    • 开发环境:http://localhost:3000/api/auth/callback/github
    • 生产环境:https://your-domain.com/api/auth/callback/github
  4. 获取 Client ID 和 Client Secret

Google OAuth

  1. 访问 Google Cloud Console
  2. 创建新项目或选择现有项目
  3. 启用 Google+ API
  4. 创建 OAuth 2.0 客户端ID
  5. 配置回调URL:
    • 开发环境:http://localhost:3000/api/auth/callback/google
    • 生产环境:https://your-domain.com/api/auth/callback/google

📊 Sanity CMS 配置

  1. 创建 Sanity 项目

    npm install -g @sanity/cli
    sanity init
  2. 获取项目信息

    • Project ID: 在 Sanity 管理面板中找到
    • Dataset: 通常为 production
    • API Token: 在项目设置中生成
  3. 配置环境变量

    NEXT_PUBLIC_SANITY_PROJECT_ID=your-project-id
    NEXT_PUBLIC_SANITY_DATASET=production
    SANITY_API_TOKEN=your-api-token

💳 Stripe 支付配置

  1. 注册 Stripe 账户

  2. 获取 API 密钥

    • 可发布密钥 (Publishable Key)
    • 秘密密钥 (Secret Key)
    • Webhook 密钥 (Webhook Secret)
  3. 配置 Webhook

    • 端点URL:https://your-domain.com/api/stripe/webhook
    • 监听事件:checkout.session.completed

🚀 部署指南

Vercel 部署 (推荐)

  1. 连接仓库

    # 推送代码到 GitHub
    git add .
    git commit -m "Initial commit"
    git push origin main
  2. Vercel 配置

    • 访问 Vercel
    • 导入 GitHub 仓库
    • 配置环境变量
    • 部署
  3. 环境变量配置 在 Vercel 项目设置中添加所有环境变量,注意:

    • NEXTAUTH_URL 改为生产域名
    • 更新 OAuth 回调URL
    • 使用生产环境的 API 密钥
  4. 部署成功 访问 https://your-domain.com 查看部署结果

📁 项目结构

get-cms/
├── app/                    # Next.js 15+ App Router
│   ├── [locale]/          # 多语言路由
│   ├── api/               # API 路由
│   └── globals.css        # 全局样式
├── components/            # React 组件
│   ├── ui/               # 基础 UI 组件
│   ├── auth/             # 认证相关组件
│   └── profile/          # 用户资料组件
├── lib/                  # 工具库
│   ├── auth.ts           # NextAuth 配置
│   ├── sanity.ts         # Sanity 客户端
│   └── translations/     # 多语言翻译
├── hooks/                # 自定义 Hooks
├── types/                # TypeScript 类型定义
└── public/               # 静态资源

🤝 贡献指南

我们欢迎所有形式的贡献!

如何贡献

  1. Fork 项目
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 创建 Pull Request

开发规范

  • 使用 TypeScript 进行类型安全开发
  • 遵循 ESLint 和 Prettier 配置
  • 编写清晰的提交信息
  • 添加适当的测试用例

📄 许可证

本项目采用 MIT 许可证

🆘 获取帮助

⭐ 支持项目

如果这个项目对您有帮助,请给我们一个 ⭐️!


ItusiAI 制作

© 2025 Get CMS. All rights reserved.

About

一个基于 Next.js 15、Sanity CMS 和 NextAuth.js 构建的现代化内容管理系统。 支持多语言、付费内容、用户认证等完整功能的企业级CMS解决方案。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published