项目快照:datawhalechina/vibe-vibe,约 6,060 个 Star,486 个 Fork;最新推送时间 2026-04-30T11:49:58Z。本文基于仓库公开资料撰写。

项目地址:https://github.com/datawhalechina/vibe-vibe · https://www.vibevibe.cn

vibe-vibe 从代码、运行环境到实践流程的项目封面
vibe-vibe 的项目能力与实践流程示意。

项目速览(TL;DR)

vibe-vibe 是 Datawhale China 发布的 Vibe Coding 开源教程,目标是帮助没有编程基础的学习者借助人工智能完成从想法、产品设计到项目上线的实践过程。仓库默认分支为 main,GitHub 页面显示 Star 数为 6060、Fork 数为 486,仓库语言标记为 Dockerfile。

项目不是一个独立的业务应用,而是一套以 VitePress 构建的文档型学习站点。在线阅读地址为 www.vibevibe.cn;仓库同时提供 Dockerfile 和 Docker Compose 配置,可在本地或内网构建并以静态站点形式运行。

  • 项目类型:面向零基础学习者的 AI 辅助编程教程与文档站点。
  • 主要内容:基础篇、进阶篇、实践篇、优质文章篇四个板块。
  • 构建方式:使用 VitePress 生成静态文件,再由 Nginx 提供访问服务。
  • 本地容器端口:Docker Compose 将主机的 1024 端口映射到容器的 80 端口。
  • 许可证信息:仓库资料未提供可核验的 LICENSE 文件内容;package.json 中存在 ISC 字段,但不能替代仓库许可证文件的法律效力。

定位与目标用户

本项目的核心定位是“系统化的 Vibe Coding 教程”,而不是某个 AI 编程插件、代码生成服务或完整的 SaaS 产品。读者可以按照基础、进阶、实践的路径学习,也可以从第一个网页项目直接开始动手。

“面向零编程基础学习者的 AI 辅助编程系统化教程,从「我有一个想法」到「我做出了一个产品」,让人人都能成为 Builder。”

来源:README

README 将学习者分为几类,并为不同起点指定入口。完全零基础用户从基础篇第 1 章开始;已经使用过 ChatGPT 等大语言模型(Large Language Model,LLM)但没有完成项目的用户适合从基础篇第 2 章开始;拥有编程基础且希望学习 Vibe Coding 的读者可以快速浏览基础篇后进入进阶篇。

学习路径如何组织

  • 基础篇:先建立 Vibe Coding、Spec Coding、提示词工程和最小可行产品(Minimum Viable Product,MVP)等概念,再完成个人工具的开发与部署。
  • 进阶篇:按照完整产品交付流程展开,涉及环境、技术栈、数据库、测试、域名、部署、持续集成与持续交付(CI/CD)等主题。
  • 实践篇:按文科生、商科生、理工科学生和职场人士等场景组织项目练习,并进一步覆盖 AI Agent、检索增强生成(Retrieval-Augmented Generation,RAG)和 MCP 等主题。
  • 优质文章篇:收集公司博客、播客、研究报告、Newsletter 与开发者社区等学习资源。

核心功能

项目的功能主要表现为文档内容组织、学习路径设计和静态站点发布三部分。它的输入是 Markdown 文档、站点配置及前端依赖,输出是可在浏览器中阅读的教程站点。

系统化教程内容

基础篇从“为什么现在是编程最好的时代”开始,逐步进入产品思维、提示词工程、用户旅程、PRD 编写和功能优先级。进入实战章节后,学习者会沿着静态页面、交互逻辑、数据存储和调试过程推进;因此内容结构不是只讲提示词,而是将 AI 对话放进一个可执行的产品开发流程中。

进阶篇则以十六章产品交付流程为主线,包含环境搭建、代码形态与包管理器,开发工具与 AI 调教,前后端技术栈,构建原理,数据库,测试,公网访问,Git,CI/CD,域名,云服务器,SEO、分享、数据统计以及用户反馈。该部分依赖教程文本本身,仓库资料没有声明这些章节会自动执行代码或提供在线运行沙箱。

文档站点构建

根据 package.json,开发命令为 vitepress dev docs,生产构建命令为 vitepress build docs,预览命令为 vitepress preview docs。VitePress 读取 docs 目录中的文档和站点配置,构建结果在 Dockerfile 中被复制到 Nginx 的静态文件目录。

站点还声明了 Mermaid、MathJax、任务列表、目录侧边栏、图片缩放、PWA 和 Giscus 等依赖。资料只证明这些包被列入项目依赖,未提供每个功能在页面中的完整配置、启用范围或运行时服务地址,使用者应以仓库当前文件为准。

容器化发布

Dockerfile 使用 Node.js 24 Alpine 镜像作为构建阶段,在 /app 中安装 pnpm、依赖和 Git,然后执行 pnpm build。构建产物来自 /app/docs/.vitepress/dist,最终阶段使用 Nginx Alpine 镜像提供静态文件服务,并声明容器端口为 80

Docker Compose 为服务命名为 vibevibe,容器名为 vibevibe-app,构建镜像名为 vibevibe-docs:latest。服务启动后通过 1024:80 暴露到主机,健康检查访问容器内的 http://localhost:80

系统架构与关键模块

从仓库提供的构建文件可以确认,该项目采用“文档源文件—VitePress 构建—Nginx 静态服务”的单向发布链路。该判断基于 README、package.json、Dockerfile 和 docker-compose.yml,不扩展推断未提供的后端服务、数据库或 API。

构建链路

  1. 开发者在仓库中维护 docs 目录及其站点配置和内容文件。
  2. pnpm 根据 pnpm-lock.yamlpackage.json 安装依赖。
  3. VitePress 执行 pnpm build,将文档生成到 docs/.vitepress/dist
  4. Dockerfile 将生成目录复制到 Nginx 镜像的 /usr/share/nginx/html
  5. Docker Compose 通过主机端口 1024 对外提供站点访问。

依赖模块

核心文档构建依赖是 VitePress 和 Vue。交互式图表相关依赖包括 Mermaid、Cytoscape 及其布局包;内容增强相关依赖包括 MathJax、任务列表和 Markdown 时间线插件;站点辅助能力包括侧边栏、PWA、图片缩放和 Giscus。

依赖均位于 devDependencies 中,说明仓库将它们作为构建和开发阶段依赖管理。资料没有提供生产运行时所需的独立 Node.js 服务,因为最终容器阶段仅保留 Nginx 静态文件服务。

部署拓扑

Docker Compose 定义了名为 vibevibe-network 的 Bridge 网络,并把服务接入该网络。当前资料只展示一个文档服务,没有提供反向代理、外部数据库、缓存、对象存储或应用服务器的配置。

依赖与运行环境

项目构建环境已经在 Dockerfile 中明确指定,容器构建阶段使用 node:24-alpine,最终服务阶段使用 nginx:alpine。仓库的包管理器字段指定为 pnpm 10.21.0,因此本地安装应优先使用 pnpm,而不是自行替换为其他包管理器。

类别 名称 版本或来源 用途
包管理器 pnpm 10.21.0 安装依赖并执行项目脚本。
构建运行时 Node.js 24 Alpine 镜像 在 Docker 构建阶段安装依赖并生成静态站点。
文档框架 VitePress 1.6.4 开发、构建和预览文档站点。
前端框架 Vue 3.5.25 支撑 VitePress 站点及其组件。
静态服务器 Nginx nginx:alpine 提供构建后的静态文件。
构建脚本 build vitepress build docs 生成生产环境静态文件。

仓库还包含 patch-packagepostinstall 脚本,因此依赖安装完成后会执行 patch-package。Dockerfile 在构建阶段额外安装 Git,这是 Docker 构建能够完成的明确依赖之一。

快速开始

最快的本地验证方式是使用 Docker Compose,因为 README 已明确给出启动命令、端口和访问地址。该方式会在本机构建文档站点并启动 Nginx,不需要把构建产物手动复制到宿主机目录。

方式一:Docker Compose 最小闭环

执行前需要在已获取仓库内容的目录中运行命令,并确保本机已安装 Docker Compose。资料未声明 Docker Engine 或 Docker Compose 的具体版本要求,因此版本选择应以当前 Docker 官方环境和仓库最新 README 为准。

Bash
docker compose up -d --build

上面的命令同时完成镜像构建和后台启动。根据 docker-compose.yml,服务名为 vibevibe,容器名为 vibevibe-app,主机访问地址为 http://localhost:1024

验证步骤是使用浏览器打开 http://localhost:1024,确认教程首页能够加载。Compose 文件还定义了容器内健康检查,检查目标为 http://localhost:80;如果页面不能访问,可先查看容器状态和日志。

Bash
docker compose ps
docker compose logs vibevibe

方式二:pnpm 开发模式

如果需要修改 Markdown 内容或站点配置,可以使用仓库声明的开发脚本。安装阶段使用锁文件进行冻结安装,能够减少依赖版本因本地解析而变化的情况。

Bash
pnpm install --frozen-lockfile
pnpm dev

pnpm install --frozen-lockfile 是 Dockerfile 中真实使用的安装命令,pnpm dev 对应 package.json 的开发脚本。资料没有给出 VitePress 开发服务器的固定端口或自动打开行为,因此此处不指定未被仓库资料确认的访问端口;请以终端输出为准。

生产构建与预览

生产构建使用 pnpm build,它执行 vitepress build docs。构建后的本地预览使用 pnpm preview,对应脚本为 vitepress preview docs;预览端口未在资料中固定声明,仍应读取终端输出。

配置说明

当前仓库的可核验配置主要集中在 package.json、Dockerfile 和 docker-compose.yml。下表只列出资料中真实出现的字段或脚本,不把未提供的环境变量、密钥、数据库连接串或站点参数补写成默认配置。

字段名 类型 默认值 作用
packageManager 字符串 pnpm@10.21.0 声明项目使用的包管理器及版本。
scripts.dev 字符串 vitepress dev docs 启动文档开发服务。
scripts.build 字符串 vitepress build docs 构建生产环境文档站点。
scripts.preview 字符串 vitepress preview docs 预览已经生成的站点。
scripts.postinstall 字符串 patch-package 依赖安装完成后应用补丁。
docker-compose.services.vibevibe.ports 端口映射 1024:80 将主机 1024 端口映射到容器 80 端口。
docker-compose.services.vibevibe.environment.TZ 环境变量 Asia/Shanghai 设置容器时区。
docker-compose.services.vibevibe.restart 字符串 unless-stopped 配置容器重启策略。
docker-compose.services.vibevibe.logging.options.max-size 字符串 10m 限制单个 JSON 日志文件大小。
docker-compose.services.vibevibe.logging.options.max-file 字符串 3 配置保留的日志文件数量。

资料没有提供 .env.example、外部 API 密钥、数据库配置、认证配置或可供用户修改的站点域名参数。需要新增这些配置时,应先核对仓库当前版本的配置文件和部署指南,不能依据本文表格自行推断接口字段。

进阶用法

进阶使用的重点是把教程站点作为可维护的文档工程处理,而不是只运行一次构建命令。对于内容贡献者,开发模式适合实时查看修改;对于发布环境,Dockerfile 提供了固定的构建与静态服务路径。

内容贡献与本地检查

README 建议通过 Issue 反馈问题,通过 Pull Request 提交贡献。修改内容后,可以在本地执行 pnpm dev 查看文档效果,随后执行 pnpm build 验证生产构建是否能够完成。

仓库资料没有给出独立的自动化测试命令、代码覆盖率阈值或内容审校脚本。根据本文作者的经验判断,文档型项目提交前至少应检查链接、目录层级、代码块语言标记和构建输出,但这些检查不能表述为仓库已经内置的测试能力。

私有化部署

README 明确提供本地或内网部署场景,并将部署指南指向仓库内的 docs/deployment/index.md。部署指南的完整内容没有包含在本次资料中,因此离线环境、静态文件部署和网络限制的具体步骤,官方仓库未提供该信息,建议以最新 README 和部署指南为准。

阅读路径选择

如果使用者的目标是尽快完成一个小工具,应从基础篇第 4 章进入实战,而不是先完整阅读十六章进阶内容。若目标是理解从 PRD 到生产部署的完整链路,则应把进阶篇作为主线,并结合实践篇选择具体项目。

可观测性与运维

项目当前提供的是容器级健康检查、重启策略和日志滚动配置,足以对单个文档容器进行基础运行维护。资料没有提供指标采集、链路追踪、告警平台、SLA 或高可用架构承诺。

健康检查

Compose 的健康检查使用容器内的 wget 访问 http://localhost:80,检查间隔为 30 秒,超时时间为 10 秒,失败重试次数为 3 次,启动宽限期为 40 秒。这些参数属于仓库配置,可以用于判断服务是否已进入可用状态。

日志与重启

服务使用 Docker 的 json-file 日志驱动,单个日志文件上限为 10m,文件数量为 3restart: unless-stopped 表示容器在非手动停止状态下采用配置的自动重启行为,具体结果仍受 Docker 宿主机状态影响。

运维人员可以使用 docker compose logs vibevibe 查看服务日志,使用 docker compose ps 查看服务状态。仓库没有提供访问日志格式、错误页面定制、备份策略或监控指标名称,相关方案需由部署方自行设计并记录。

安全与合规边界

本项目是 AI 编程教程与静态文档站点,资料没有显示它内置账号自动化、支付、爬虫、渗透、越狱或面向未授权目标的攻击能力。教程涉及部署、安全意识和 AI 辅助开发时,仍应把示例限制在自有或获得明确授权的环境中。

数据与凭据

仓库资料没有提供需要配置的 API Key、数据库密码或第三方服务密钥。实际学习过程中若使用外部 AI 工具、Giscus 或其他服务,应按照服务提供方的隐私政策和组织内部规则处理提示词、源代码、用户数据及日志,不要把真实生产凭据写入 Markdown、镜像层或公开仓库。

部署隔离

Docker Compose 当前只定义一个文档服务和一个 Bridge 网络,没有提供身份认证、访问控制、TLS 终止或内网网关配置。若站点包含内部资料,部署方应在授权的内网环境中增加访问控制和网络隔离;这些措施不属于当前仓库已经实现的功能。

教程中关于安全的内容可以帮助学习者建立基本意识,但不能替代组织的安全评审、个人信息保护要求、数据分类制度或正式合规意见。具体法律适用范围需由部署者结合所在地区、数据类型和业务场景确认。

许可证与商用条款

本次资料没有提供仓库 LICENSE 文件内容,项目元信息也标注许可证为“未知”。因此,不能仅依据 README 中的“开源教程”描述确认复制、修改、再分发、商用、署名和免责声明义务。

package.json 中的 license 字段为 ISC,但该字段属于包元数据,不能自动证明整个 GitHub 仓库及其中所有文档、图片、代码和第三方依赖均采用相同许可证。商用或再分发前,应核对仓库根目录及各子目录中的 LICENSE、版权声明和第三方依赖许可。

  • 当前资料无法确认是否允许商业使用。
  • 当前资料无法确认再分发时必须保留哪些版权声明。
  • 当前资料无法确认文档图片、示例代码和第三方内容的独立许可。
  • 许可证和商用条款应以仓库 LICENSE 为准;若仓库仍未提供,建议向项目维护者取得书面确认。

局限性与已知限制

项目的主要限制来自其文档定位和资料范围:它提供学习内容与静态站点工程,但不会自动把读者的自然语言想法转换为可上线产品,也没有在当前资料中声明配套的在线 IDE 已经可用。

  • README 将“在线开发环境、Node.js 24、Python、Docker 和 50+ AI Skills”描述为进阶版预告,不能据此判断这些能力已经包含在当前仓库中。
  • 仓库语言元信息为 Dockerfile,但这不表示教程只适合 Docker;它反映的是 GitHub 的语言统计,不是学习范围声明。
  • 资料没有提供自动化测试、性能基准、并发容量、可用性指标或生产 SLA。
  • 资料没有提供后端接口、数据库实例、用户系统或认证服务的可直接运行实现。
  • 许可证信息存在不确定性,商用和再分发决策不能只依据 package.jsonISC 字段。
  • VitePress 开发服务的端口、完整站点配置和离线部署细节未在本次资料中给出。

根据本文作者的经验判断,学习者还需要自行验证 AI 生成代码的正确性、安全性、依赖许可和部署结果。教程能够降低学习入口,但不能替代代码审查、测试、数据治理和上线前的运维准备。

适合谁

以下信号表明使用者能够从本项目中获得较明确的学习收益,尤其适合把 AI 当作开发协作工具而不是无审查代码生成器的人群。

  • 没有系统编程背景,但已经有一个明确的网页、个人工具或效率应用想法,愿意从基础篇的章节顺序开始练习。
  • 使用过 ChatGPT 等大语言模型,却没有完成过从需求拆解、页面实现到部署的完整项目。
  • 有传统开发经验,想理解 Vibe Coding、Spec Coding、PRD 与 AI 协作之间的关系。
  • 需要在本地或内网部署一套可阅读的教程站点,并且团队能够使用 Node.js、pnpm、Docker 或 Nginx 处理构建流程。
  • 希望按文科、商科、理工科或职场效率场景选择练习项目,而不是只阅读抽象的提示词示例。

不适合谁

如果需求重点不是学习 AI 辅助开发或维护文档站点,而是立即获得具备明确服务等级和企业功能的生产系统,则应谨慎评估本项目的边界。

  • 需要现成后端 API、用户认证、数据库、支付和权限系统,并要求开箱即用投入生产的团队。
  • 需要明确并发容量、性能基准、可用性 SLA、灾备方案或厂商级技术支持的生产环境。
  • 受到严格合规要求约束,必须在使用前获得确定许可证、数据处理协议和第三方依赖清单的组织。
  • 已经拥有成熟全栈技术栈和完整交付流程,只需要一个特定框架的代码生成工具,而不是系统化教程。
  • 希望完全不理解需求、代码和部署过程,只通过一次提示就获得可验证生产结果的使用者。

常见问题与排查(FAQ / Troubleshooting)

排查时应先区分“文档内容问题”“依赖构建问题”和“容器运行问题”。仓库已经提供的命令和端口可以覆盖基础诊断,但没有提供更深层的故障码体系。

执行 Docker Compose 后无法访问 1024 端口怎么办

先执行 docker compose ps 查看 vibevibe 服务和 vibevibe-app 容器状态,再执行 docker compose logs vibevibe 检查构建或启动日志。确认主机访问的是 http://localhost:1024,容器内部健康检查使用的则是 http://localhost:80

如果主机的 1024 端口已被其他进程占用,当前资料没有提供端口覆盖配置示例。应先停止占用端口的本地服务,或依据最新 Compose 配置调整映射,并同步确认访问地址。

pnpm 安装失败怎么办

首先核对项目声明的包管理器版本 pnpm@10.21.0,并确认当前目录包含 package.jsonpnpm-lock.yaml。Dockerfile 使用 pnpm install --frozen-lockfile,这要求锁文件与依赖声明保持一致。

如果失败原因涉及补丁,需注意 postinstall 会执行 patch-package。资料没有列出具体补丁文件或错误类型,官方仓库未提供该信息,建议保留完整终端日志后按照最新 Issue 或 README 排查。

为什么找不到开发服务器端口

package.json 只声明 vitepress dev docs,没有声明端口参数。开发服务的实际端口应以执行 pnpm dev 后的终端输出为准,不能把 Docker Compose 的 1024 端口当作开发模式端口。

为什么构建阶段需要 Git

Dockerfile 在执行 pnpm build 前运行 apk add --no-cache git。这是仓库明确写入的构建步骤;资料没有进一步说明具体依赖为何需要 Git,因此不应将其解释为某个未提供的业务功能依赖。

是否可以直接用于商业项目

当前资料不能给出肯定答案。虽然 package.json 标注 ISC,但仓库级许可证未知,商业使用和再分发应以仓库 LICENSE 为准,并核对第三方依赖的独立许可。

项目地址与资源

以下链接均来自项目资料,用于访问源代码仓库、在线教程和 README 中明确提供的官方站点。

仓库默认分支为 main。教程内容、部署说明、许可证状态和依赖版本会随仓库更新,实际使用时应以 GitHub 仓库当前版本和在线文档为准。