站长收藏详情

全栈开发next.js 与strapi 视频课程内容总结2

时间:2025-03-05   来源:525游




(1292) Next.js 全栈开发实战课:每日一签网站——Zeabur 通过 Docker 部署 Strapi + TiDB - YouTube https://www.youtube.com/watch?v=hY-vsM3td6M

视频内容总结:Next.js 全栈开发实战课 - 第二段
1. 开场与课程回顾
  • 主题:继续录制 Next.js 全栈开发实战课程的第二课。
  • 回顾:
    • 上节课介绍了“每日一签”网站(功能、来源、技术栈)。
    • 讲解了 Mono Repo 概念,所有项目代码放在同一仓库(qian-example)。
  • 目标:本次课程完成 Strapi 的本地搭建与 Zeabur 上的 Docker 部署。
2. Strapi 项目创建
  • 初始化 Strapi:
    • 在 Mono Repo 的 packages/cms 目录下运行 pnpx create-strapi-app cms。
    • 跳过 Strapi Cloud 登录(自建服务)。
    • 不使用默认 SQLite,选择 MySQL(后续连接 TiDB)。
  • TiDB Cloud 配置:
    • 介绍 TiDB:
      • 国内数据库服务,底层是 KV 键值数据库,上层提供 MySQL 接口。
      • 优点:自动分库分表、扩容方便,适合大数据量。
      • TiDB Cloud:免费提供 5 个集群,每集群 5GB 存储,每月 5M IU(计费单位),支持自动备份。
    • 创建数据库:
      • 新建 Serverless 集群(qian-DB),选东京节点,免费计划。
      • 获取连接信息:Host、Port (4000)、Username、Password(生成后需保存)、SSL。
  • Strapi 配置:
    • 输入 TiDB 的 MySQL 连接信息,完成 Strapi 项目初始化。
    • 使用 TypeScript 和 pnpm,依赖安装完成。
3. 本地运行 Strapi
  • 启动:在 packages/cms 下运行 pnpm run develop,启动 Strapi 开发模式。
  • 功能介绍:
    • Strapi 是低代码 CMS 和 API 构建工具,适合快速创建 API。
    • 内置用户体系,支持多人协作,优于传统 CMS(如 WordPress、Ghost)。
    • 可自定义字段,适合非典型内容需求。
  • 首次登录:
    • 打开浏览器(默认 1337 端口),输入用户名(Meathill Zhai)、邮箱和密码。
    • 设置中文为默认语言。
4. 创建“每日一签”内容类型
  • Content-Type Builder:
    • 创建内容类型“每日一签”(qian,复数 qians)。
    • 字段:
      • title(短文本,必填,非唯一)。
      • content(富文本,必填)。
      • date(日期,必填,唯一)。
      • thumbnail(单张图片,必填)。
    • 保存后需重启 Strapi。
  • 文件生成:
    • 在 src/api/qian 下生成 schema、controller 等文件。
    • 支持二次开发(如添加 hooks、权限校验)。
    • 类型文件(types/generated)可供其他项目引用。
5. Docker 部署 Strapi 到 Zeabur
  • 为何用 Docker:
    • Strapi 涉及数据库、缓存和复杂 API,无法直接用 Serverless。
    • Docker 打包运行环境(Node.js、系统软件等),便于跨服务器部署。
  • 编写 Dockerfile:
    • 基础镜像:node:20-alpine(轻量 Linux + Node.js)。
    • 步骤:
      • 更新系统,安装工具(pnpm、node-gyp)。
      • 设置生产环境(NODE_ENV=production)。
      • 复制 package.json,安装依赖。
      • 复制项目文件,运行 npm run start(非 develop)。
    • .dockerignore:排除临时文件(node_modules、.git、build 等)。
  • 部署到 Zeabur:
    • Zeabur 介绍:
      • 国人开发的托管平台,支持 Serverless 和 Docker。
      • Serverless 免费额度高(如 Next.js 部署)。
      • Docker 需 Developer 套餐(5 美元/月),包含域名和 SSL。
    • 部署步骤:
      • 将项目推送到 GitHub(qian-example)。
      • 在 Zeabur 创建服务,绑定 GitHub 仓库。
      • 设置 Root Directory 为 packages/cms,Watch Paths 为 packages/cms/package.json。
      • 部署完成后,分配域名(qian-example.zeabur.app)。
  • 验证:
    • 访问线上 Strapi,登录成功,production 模式界面显示(无编辑 Content-Type 功能)。
6. 测试 API
  • 创建内容:
    • 在 Content Manager 中添加“今日运势”(标题、内容、日期、图片),发布。
  • 生成 API Token:
    • 在 Settings 创建 Read-only Token(qian-example),保存备用。
  • 测试请求:
    • 使用 HTTP 客户端(httpie),设置 Authorization(Bearer + Token)。
    • 请求地址:https://qian-example.zeabur.app/api/qians。
    • 成功返回刚创建的数据,API 搭建完成。
7. 课程总结与建议
  • 完成目标:
    • 本地搭建并运行 Strapi。
    • 创建“每日一签”内容类型。
    • 用 Docker 部署到 Zeabur,配置域名。
    • 创建并测试 API Token,获取数据。
  • 技术方案优势:
    • Strapi + TiDB + Zeabur:低成本、高效、可维护的数据接口方案。
    • 适合多种前端(如 Next.js)集成。
  • 鼓励互动:
    • 希望观众点赞、分享视频。
    • 遇到问题可通过评论或联系方式提问。
8. 额外说明
  • Zeabur 费用:
    • 当前用量:半个月 0.42 美元,预计月均 1 美元,可支持 5 个类似项目。
    • 推广链接:鼓励使用,支持博主获取分佣。
  • 开发流程:
    • 本地用 develop 模式配置 Content-Type。
    • 线上用 production 模式,仅编辑内容。

核心要点
  • 项目进展:完成 Strapi 的本地搭建与 Docker 部署。
  • 技术栈:
    • Strapi(CMS)+ TiDB(数据库)+ Zeabur(Docker 部署)。
    • Mono Repo 管理代码,Docker 确保环境一致性。
  • 成果:线上 Strapi 可管理内容并提供 API,前端可调用。
  • 学习重点:Strapi 配置、Docker 文件编写、Zeabur 部署流程。
如果你在后续学习中需要帮助(比如配置 TiDB、调试 Docker 或连接 Next.js),可以告诉我,我会继续协助你完善!

相关阅读

精彩推荐