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

项目速览(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。
构建链路
- 开发者在仓库中维护
docs目录及其站点配置和内容文件。 - pnpm 根据
pnpm-lock.yaml和package.json安装依赖。 - VitePress 执行
pnpm build,将文档生成到docs/.vitepress/dist。 - Dockerfile 将生成目录复制到 Nginx 镜像的
/usr/share/nginx/html。 - 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-package 的 postinstall 脚本,因此依赖安装完成后会执行 patch-package。Dockerfile 在构建阶段额外安装 Git,这是 Docker 构建能够完成的明确依赖之一。
快速开始
最快的本地验证方式是使用 Docker Compose,因为 README 已明确给出启动命令、端口和访问地址。该方式会在本机构建文档站点并启动 Nginx,不需要把构建产物手动复制到宿主机目录。
方式一:Docker Compose 最小闭环
执行前需要在已获取仓库内容的目录中运行命令,并确保本机已安装 Docker Compose。资料未声明 Docker Engine 或 Docker Compose 的具体版本要求,因此版本选择应以当前 Docker 官方环境和仓库最新 README 为准。
docker compose up -d --build上面的命令同时完成镜像构建和后台启动。根据 docker-compose.yml,服务名为 vibevibe,容器名为 vibevibe-app,主机访问地址为 http://localhost:1024。
验证步骤是使用浏览器打开 http://localhost:1024,确认教程首页能够加载。Compose 文件还定义了容器内健康检查,检查目标为 http://localhost:80;如果页面不能访问,可先查看容器状态和日志。
docker compose ps
docker compose logs vibevibe方式二:pnpm 开发模式
如果需要修改 Markdown 内容或站点配置,可以使用仓库声明的开发脚本。安装阶段使用锁文件进行冻结安装,能够减少依赖版本因本地解析而变化的情况。
pnpm install --frozen-lockfile
pnpm devpnpm 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,文件数量为 3。restart: 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.json的ISC字段。 - 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.json 和 pnpm-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 仓库当前版本和在线文档为准。



