Auto-sync: 2026-04-27 04:02

This commit is contained in:
2026-04-27 04:02:52 +08:00
parent 23bef113dd
commit 1642757cd0
16 changed files with 845 additions and 649 deletions

View File

@@ -1,52 +1,51 @@
---
title: "Cursor 2.0初学者使用指南"
type: source
tags: [ai, cursor, ide, mcp]
date: 2026-04-22
---
## Source File
- [[Vibe Coding/Cursor 2.0初学者使用指南.md]]
## Summary用中文描述
- 核心主题Cursor 2.0 AI代码编辑器的系统化入门教程
- 问题域AI辅助编程工具的使用方法与工作流程
- 方法/机制:通过视频演示展示安装、配置、AI代理操作、代码审查、版本控制、MCP扩展等全流程
- 结论/价值:帮助初学者从零掌握AI代码编辑器建立"需求明确→规划→生成→审查→版本控制"的完整开发闭环
## Key Claims用中文描述
- Cursor 2.0基于VS Code构建集成AI模型辅助代码生成初学者可免费使用
- Composer是Cursor自研AI模型生成速度比同类模型快4倍
- AI代理支持Plan规划、Agent执行、Ask咨询三种工作模式Ask模式仅返回文本不修改文件
- 多代理功能可并行运行不同任务,互不干扰上下文
- MCPModel Context Protocol协议可将外部工具和服务集成到AI代理扩展功能范围
- AI生成代码即写入文件需通过Diff功能审查后再确认保存
- 结合Git版本控制可有效管理和回滚AI生成的代码变更
## Key Quotes
> "Cursor是基于VS Code的AI代码编辑器可免费使用支持付费升级以获取更多生成额度。" — Cursor基介绍
> "新增了自有AI模型Composer强调其速度优势比类似模型快4倍。" — Composer模型特性
> "Agent模式会修改代码Ask模式仅提供文本答案不会改动代码需根据需求选择。" — 代理模式安全提示
> "代码改动一旦生成即写入文件,未点击撤销按钮前持续保留,需确保先测试代码再确认保存。" — Diff审查机制
> "MCPModel Context Protocol支持将外部工具和服务集成到AI代理扩展功能范围。" — MCP扩展能力
## Key Concepts
- [[AI代理]]基于AI模型的自动化任务助手可以按模式生成代码、规划任务或回答疑问
- [[MCPModel Context Protocol]]将外部工具和服务集成到AI代理的协议平台
- [[Diff文件]]显示代码改动对比的视图帮助开发者快速审查AI修改的内容
- [[版本控制]]记录项目代码的历史版本变化支持代码回滚和团队协同Git
- [[多代理并行]]多个AI代理同时运行不同任务互不干扰上下文的开发模式
## Key Entities
- [[Cursor]]基于VS Code的AI增强代码编辑器支持AI模型辅助代码生成及多任务代理操作
- [[Composer]]Cursor自研AI模型主打生成速度比同类模型快4倍
## Connections
- [[Cursor]] ← built_on ← [[VS Code]]
- [[Cursor]] ← uses ← [[Composer]]
- [[Cursor]] ← supports ← [[MCPModel Context Protocol]]
- [[MCPModel Context Protocol]] ← integrates ← [[AI代理]]
- [[Vibe Coding]] ← demonstrates ← [[Cursor]]
## Contradictions
- 无已知冲突内容
---
title: "Cursor 2.0初学者使用指南"
type: source
tags: [ai, cursor, ide, mcp]
date: 2026-04-22
---
## Source File
- [[Vibe Coding/Cursor 2.0初学者使用指南]]
## Summary用中文描述
- 核心主题Cursor 2.0 AI代码编辑器的初学者完整使用教程,涵盖安装、界面、多代理操作、代码生成、审查与版本控制流程。
- 问题域AI辅助编程工具的入门学习聚焦于如何高效使用Cursor的AI代理功能进行项目开发。
- 方法/机制:通过Plan模式规划任务 → Agent模式执行代码生成 → Diff审查改动 → Git版本控制回滚的完整工作流。
- 结论/价值:Cursor 2.0为开发者提供了一条从想法到实现的AI智能化路径是现代AI辅助编程的重要工具。
## Key Claims用中文描述
- Cursor基于VS Code构建可免费使用,支持付费升级获取更多生成额度。
- Cursor新增自有AI模型Composer强调其速度优势比同类模型快4倍)。
- 多代理功能可以同时运行不同任务,互不干扰,提升代码生成效率。
- AI代理支持三种模式Plan规划、Agent执行会修改文件、Ask咨询不改代码
- 代码生成后进入待审查状态可使用Diff功能逐个审查或整体接收改动。
- MCPModel Context Protocol支持将外部工具和服务集成到AI代理扩展功能范围。
- 可设定项目规则(如强制为函数生成文档注释),实现代码规范自动化。
## Key Quotes
> "Cursor是基于VS Code的AI代码编辑器可免费使用支持付费升级以获取更多生成额度。" — Cursor基本特性介绍
> "启动构建任务时生成新代理,执行计划步骤。多代理功能可以同时运行不同任务,互不干扰。" — 多代理并行操作
> "生成代码后进入待审查状态可使用Diff功能查看具体改动支持文件逐个审查或整体接收。" — 代码审查流程
> "MCPModel Context Protocol支持将外部工具和服务集成到AI代理扩展功能范围。" — MCP扩展能力
## Key Concepts
- [[多代理并行]]可同时运行不同AI代理任务互不干扰适合多线程项目开发。
- [[Diff审查]]通过Diff视图查看AI生成代码改动,逐个文件或整体接收变更。
- [[项目规则]]:自定义项目规则文件(如强制生成文档注释),实现代码规范自动化。
- [[MCP服务器]]Model Context Protocol支持将外部API和工具集成到AI代理。
## Key Entities
- [[Cursor]]基于VS Code的AI增强代码编辑器支持多代理并行操作和Composer自研模型。
- [[VS Code]]Cursor构建的基础编辑器Cursor继承其完整功能。
- [[Composer]]Cursor自研AI模型主打生成速度优势比同类快4倍
## Connections
- [[Cursor]] ← extends ← [[VS Code]]
- [[Cursor]] ← uses ← [[Composer]]
- [[Cursor]] ← supports ← [[MCPModel Context Protocol]]
- [[Cursor]] ← enables ← [[Vibe Coding]]
- [[Cursor]] ← similar_to ← [[Claude Code]]
## Contradictions
- 无已知冲突。本文档聚焦Cursor入门操作与 [[MCP在Cursor中的集成与应用详解]] 互补后者侧重MCP集成深度应用

View File

@@ -1,57 +1,57 @@
---
title: "Trae远程开发部署指南"
type: source
tags: [remote-ssh, trae, ubuntu]
date: 2026-04-22
---
## Source File
- [[Vibe Coding/Trae远程开发部署指南]]
## Summary用中文描述
- 核心主题:使用 Trae IDE 通过 SSH 远程连接 Ubuntu 服务器进行 Docker 容器化项目的开发工作流配置
- 问题域远程开发环境搭建、Docker 与 IDE 集成、内网穿透访问
- 方法/机制SSH 免密登录 → Trae Remote-SSH 连接 → Docker 容器 Attach 或宿主机文件编辑 → Tailscale/FRP 公网访问
- 结论/价值:提供一套完整的"本地 UI + 远程服务器开发"解决方案,支持 Attach 容器调试和 docker-compose 编排两种模式
## Key Claims用中文描述
- Trae 原生支持 VS Code 插件生态,通过 Remote-SSH 插件可远程连接 Ubuntu 服务器
- 开发模式 AAttach 容器):适合调试,环境完全隔离,直接使用容器内语言环境
- 开发模式 B宿主机文件 + Docker CLI适合编排 docker-compose.yml 和管理多容器配置
- 用户必须加入 docker 用户组才能让 Trae 的 Docker 插件正常工作
- 文件权限UID/GID问题会导致 Volume 挂载生成的 Build 文件归属 root宿主机无法操作
## Key Quotes
> "开发环境的核心在于 Bind Mount绑定挂载实现代码修改实时生效" — 解释开发环境 docker-compose.yml 的设计原则
> "SSH 登录服务器执行sudo usermod -aG docker $USER必须注销并重新登录" — Docker 用户组配置关键步骤
> "不要直接暴露 SSH 端口,建议安装 Tailscale 或 Cloudflare Tunnel" — 内网穿透安全建议
## Key Concepts
- [[Remote-SSH]]:通过 SSH 协议将本地 IDE 连接到远程服务器,代码运行在服务器端但 UI 在本地
- [[Bind Mount]]Docker Volume 挂载方式,将宿主机目录映射到容器内,实现代码修改实时生效
- [[Attach 容器]]:将 IDE 直接连接到正在运行的 Docker 容器内部进行开发调试的模式
- [[Docker 用户组]]:将用户加入 docker 组使其无需 sudo 即可运行 docker 命令
- [[SSH Config]]SSH 客户端配置文件(~/.ssh/config定义 Host 别名和连接参数
- [[SSH 免密登录]]:通过 ssh-copy-id 公钥分发实现无密码 SSH 连接
- [[Docker Compose 开发模式]]:使用 docker-compose.yml 编排开发环境,通过 volumes 实现源码挂载
## Key Entities
- [[Trae]]:国产 AI IDE基于 VS Code支持 Remote-SSH 远程开发,与 Cursor 功能类似
- [[Ubuntu 2]]开发服务器192.168.3.45),存放源码,运行带 Bind Mount 的开发容器
- [[Ubuntu 1]]生产服务器192.168.3.47),运行生产容器,通过 Docker 卷持久化数据
- [[ThinkBook]]:本地笔记本,作为 Trae UI 端连接远程服务器
- [[Tailscale]]:零配置 VPN 工具,可替代 FRP 提供安全的公网 SSH 访问
- [[Docker]]:容器化平台,远程开发的核心载体
## Connections
- [[Trae]] ← remote-ssh ← [[Ubuntu 2]]
- [[Docker]] ← hosts ← [[Ubuntu 2]]
- [[Docker Compose]] ← manages containers on ← [[Ubuntu 2]]
- [[Remote-SSH]] ← 公网穿透方案 ← [[Tailscale]] / [[frp]]
- [[Ubuntu 2]] ← 公网访问 ← [[frp]] (ubuntu2-ext: ubuntu2.ishenwei.online:60024)
## Contradictions
- 无已知冲突内容
---
title: "Trae远程开发部署指南"
type: source
tags: [remote-ssh, trae, ubuntu]
date: 2026-04-26
---
## Source File
- [[Vibe Coding/Trae远程开发部署指南]]
## Summary用中文描述
- 核心主题:使用 Trae IDE 通过 SSH 远程连接 Ubuntu 服务器进行 Docker 容器化项目的开发工作流配置
- 问题域远程开发环境搭建、Docker 与 IDE 集成、内网穿透访问
- 方法/机制SSH 免密登录 → Trae Remote-SSH 连接 → Docker 容器 Attach 或宿主机文件编辑 → Tailscale/FRP 公网访问
- 结论/价值:提供一套完整的"本地 UI + 远程服务器开发"解决方案,支持 Attach 容器调试和 docker-compose 编排两种模式
## Key Claims用中文描述
- Trae 原生支持 VS Code 插件生态,通过 Remote-SSH 插件可远程连接 Ubuntu 服务器
- 开发模式 AAttach 容器):适合调试,环境完全隔离,直接使用容器内语言环境
- 开发模式 B宿主机文件 + Docker CLI适合编排 docker-compose.yml 和管理多容器配置
- 用户必须加入 docker 用户组才能让 Trae 的 Docker 插件正常工作
- 文件权限UID/GID问题会导致 Volume 挂载生成的 Build 文件归属 root宿主机无法操作
## Key Quotes
> "开发环境的核心在于 Bind Mount绑定挂载实现代码修改实时生效" — 解释开发环境 docker-compose.yml 的设计原则
> "SSH 登录服务器执行sudo usermod -aG docker $USER必须注销并重新登录" — Docker 用户组配置关键步骤
> "不要直接暴露 SSH 端口,建议安装 Tailscale 或 Cloudflare Tunnel" — 内网穿透安全建议
## Key Concepts
- [[Remote-SSH]]:通过 SSH 协议将本地 IDE 连接到远程服务器,代码运行在服务器端但 UI 在本地
- [[Bind Mount]]Docker Volume 挂载方式,将宿主机目录映射到容器内,实现代码修改实时生效
- [[Attach 容器]]:将 IDE 直接连接到正在运行的 Docker 容器内部进行开发调试的模式
- [[Docker 用户组]]:将用户加入 docker 组使其无需 sudo 即可运行 docker 命令
- [[SSH Config]]SSH 客户端配置文件(~/.ssh/config定义 Host 别名和连接参数
- [[SSH 免密登录]]:通过 ssh-copy-id 公钥分发实现无密码 SSH 连接
- [[Docker Compose 开发模式]]:使用 docker-compose.yml 编排开发环境,通过 volumes 实现源码挂载
## Key Entities
- [[Trae]]:国产 AI IDE基于 VS Code支持 Remote-SSH 远程开发,与 Cursor 功能类似
- [[Ubuntu 2]]开发服务器192.168.3.45),存放源码,运行带 Bind Mount 的开发容器
- [[Ubuntu 1]]生产服务器192.168.3.47),运行生产容器,通过 Docker 卷持久化数据
- [[ThinkBook]]:本地笔记本,作为 Trae UI 端连接远程服务器
- [[Tailscale]]:零配置 VPN 工具,可替代 FRP 提供安全的公网 SSH 访问
- [[Docker]]:容器化平台,远程开发的核心载体
## Connections
- [[Trae]] ← remote-ssh ← [[Ubuntu 2]]
- [[Docker]] ← hosts ← [[Ubuntu 2]]
- [[Docker Compose]] ← manages containers on ← [[Ubuntu 2]]
- [[Remote-SSH]] ← 公网穿透方案 ← [[Tailscale]] / [[frp]]
- [[Ubuntu 2]] ← 公网访问 ← [[frp]] (ubuntu2-ext: ubuntu2.ishenwei.online:60024)
## Contradictions
- 无已知冲突内容

View File

@@ -1,56 +1,57 @@
---
title: "Vibe Coding 经验收集"
type: source
tags: []
date: 2025-12-30
---
## Source File
- [[Vibe Coding/vibe coding经验收集.md]]
## Summary用中文描述
- 核心主题Vibe Coding 实战经验与最佳实践的精选合集
- 问题域AI 辅助编程的工作流优化、代码质量保证、团队协作模式
- 方法/机制:设计文档→伪代码→代码的递进式开发、多 AI 协作验证、文件注释标准化、代码可导航化
- 结论/价值Vibe Coding 已从单纯提示词工程演变为系统性工程实践,强调验证而非理解、文档优于记忆
## Key Claims用中文描述
- **递进式开发工作流**:设计文档写细(含伪代码)→ AI 直出代码 → 另一 AI review → 跑测试用例 → AI 自动 commit+push可一遍直出
- **System Prompt 优化效果**:针对 Gemini 3 Pro 的系统 prompt 优化可使多代理基准测试性能提升约 5%
- **点线体迭代方法**:逐级迭代(点→线→体),先用单个基础任务打磨,再基于此批量执行
- **文件头注释规范**:一段话描述代码作用、上下游链路,降低认知负载,参考 Claude skill 格式
- **代码验证优先**:未来软件工程核心不是"看懂代码"而是"验证代码按正确逻辑运行",依赖自动化测试、静态分析、形式化验证
- **激励式提示词**:如"如果第一次就做得好我会打赏100美元"可提升生成效果
- **CodeWeaver 工具**:将代码库编织成可导航的 Markdown 文档,简化 AI/ML 工具集成
## Key Quotes
> "我是把设计文档写得很细包括service层的具体逻辑都用伪代码写了然后交给AI一遍直出再用另一个AI review一遍根据review意见修改一下跑一下测试用例让AI自己生成commit后push" — 需求→伪代码→代码递进工作流
> "代码最终会被转换成机器码执行,高级语言只是一层方便人类理解的抽象,重要的是验证程序的执行逻辑" — 代码验证哲学
> "请你根据我的要求,用 Three.js 创建一个实时交互的3D粒子系统如果你第一次就做得好我将会打赏你100美元的小费" — 激励式提示词示例
## Key Concepts
- [[Vibe Coding]]:使用 AI 辅助编程的实践方法论,强调人机协作而非纯自动生成
- [[Design-to-Code Workflow]]:设计文档→伪代码→代码的递进式开发流程
- [[Multi-AI Review]] AI 协作验证,一个生成一个 review 的双人编程模式
- [[Code Documentation]]:文件头注释规范,降低 AI 和人类认知负载
- [[CodeWeaver]]:将代码库转换为可导航 Markdown 文档的工具
- [[Verification-First Engineering]]:验证优先于理解,强调自动化测试和形式化验证
- [[Iterative Scaling]]:点→线→体的逐级迭代,从单任务打磨到批量执行
## Key Entities
- [[CodeWeaver]]GitHub 开源项目,将代码库编织成可导航 Markdown 文档的工具
## Connections
- [[Vibe Coding]] ← extends ← [[Agentic AI]]
- [[Design-to-Code Workflow]] ← refines ← [[Vibe Coding]]
- [[Multi-AI Review]] ← part_of ← [[Design-to-Code Workflow]]
- [[CodeWeaver]] ← enables ← [[Vibe Coding]]
## Contradictions
- 与传统软件工程方法冲突:
- 冲突点:传统方法强调"先理解代码再修改"Vibe Coding 强调"验证而非理解"
- 当前观点:通过自动化测试和验证确保行为正确,降低人类理解代码的必要性
- 对方观点:人类开发者必须理解代码才能安全地进行修改和重构
```
---
title: "Vibe Coding 经验收集"
type: source
tags: []
date: 2025-12-30
---
## Source File
- [[Vibe Coding/vibe coding经验收集.md]]
## Summary用中文描述
- 核心主题Vibe Coding 实战经验与最佳实践的精选合集
- 问题域AI 辅助编程的工作流优化、代码质量保证、多 AI 协作模式、文档与导航化工具
- 方法/机制:设计文档→伪代码→代码的递进式开发、多 AI 协作验证、文件注释标准化、代码可导航化
- 结论/价值Vibe Coding 已从单纯提示词工程演变为系统性工程实践,强调验证而非理解、文档优于记忆
## Key Claims用中文描述
- **递进式开发工作流**:设计文档写细(含伪代码)→ AI 直出代码 → 另一 AI review → 跑测试用例 → AI 自动 commit+push可一遍直出
- **System Prompt 优化效果**:针对 Gemini 3 Pro 的系统 prompt 优化可使多代理基准测试性能提升约 5%
- **点线体迭代方法**:逐级迭代(点→线→体),先用单个基础任务打磨,再基于此批量执行
- **文件头注释规范**:一段话描述代码作用、上下游链路,降低认知负载,参考 Claude skill 格式
- **代码验证优先**:未来软件工程核心不是"看懂代码"而是"验证代码按正确逻辑运行",依赖自动化测试、静态分析、形式化验证
- **激励式提示词**:如"如果第一次就做得好我会打赏100美元"可提升生成效果
- **CodeWeaver 工具**:将代码库编织成可导航的 Markdown 文档,简化 AI/ML 工具集成
## Key Quotes
> "我是把设计文档写得很细包括service层的具体逻辑都用伪代码写了然后交给AI一遍直出再用另一个AI review一遍根据review意见修改一下跑一下测试用例让AI自己生成commit后push" — 需求→伪代码→代码递进工作流
> "代码最终会被转换成机器码执行,高级语言只是一层方便人类理解的抽象,重要的是验证程序的执行逻辑" — 代码验证哲学
> "请你根据我的要求,用 Three.js 创建一个实时交互的3D粒子系统如果你第一次就做得好我将会打赏你100美元的小费" — 激励式提示词示例
> "CodeWeaver 将你的代码库编织成一个可导航的 Markdown 文档……所有代码都给你塞进代码块里,极大地简化了代码库的共享、文档化以及与 AI/ML 工具集成" — CodeWeaver 工具价值
## Key Concepts
- [[Vibe Coding]]使用 AI 辅助编程的实践方法论,强调人机协作而非纯自动生成
- [[Design-to-Code Workflow]]:设计文档→伪代码→代码的递进式开发流程
- [[Multi-AI Review]]:多 AI 协作验证,一个生成一个 review 的双人编程模式
- [[Code Documentation]]:文件头注释规范,降低 AI 和人类认知负载
- [[Verification-First Engineering]]:验证优先于理解,强调自动化测试和形式化验证
- [[Iterative Scaling]]:点→线→体的逐级迭代,从单任务打磨到批量执行
- [[CodeWeaver]]:将代码库转换为可导航 Markdown 文档的工具
## Key Entities
- [[CodeWeaver]]GitHub 开源项目,将代码库编织成可导航 Markdown 文档的工具
## Connections
- [[Vibe Coding]] ← extends ← [[Agentic AI]]
- [[Design-to-Code Workflow]] ← refines ← [[Vibe Coding]]
- [[Multi-AI Review]] ← part_of ← [[Design-to-Code Workflow]]
- [[CodeWeaver]] ← enables ← [[Vibe Coding]]
## Contradictions
- 与传统软件工程方法冲突:
- 冲突点:传统方法强调"先理解代码再修改"Vibe Coding 强调"验证而非理解"
- 当前观点:通过自动化测试和验证确保行为正确,降低人类理解代码的必要性
- 对方观点:人类开发者必须理解代码才能安全地进行修改和重构

View File

@@ -1,50 +1,50 @@
---
title: "Vibe-Kanban + OpenCode 在 Ubuntu Server 上安装与管理指南"
type: source
tags: [npm, npx, pm2, ubuntu, vibe-coding, vibe-kanban]
date: 2026-04-17
---
## Source File
- [[Vibe Coding/Vibe-Kanban + OpenCode 在 Ubuntu Server 上安装与管理指南]]
## Summary用中文描述
- 核心主题:在 Ubuntu Server 上非 root 用户shenwei安装 Node 20、Vibe-Kanban、OpenCode并通过 pm2 进程管理,实现 AI 辅助编程工作流
- 问题域Ubuntu Server 环境下的 AI Coding Agent 部署与长期运维
- 方法/机制:使用 nvm 管理 Node 版本、npm/npx 安装工具、pm2 管理进程生命周期、权限配置确保非 root 用户正常运行
- 结论/价值:完整记录了从零开始在 Ubuntu Server 上搭建 Vibe Coding 环境的全流程,含验证步骤和故障排查要点
## Key Claims用中文描述
- 使用 nvm 安装 Node 20 可确保版本兼容性和环境隔离
- pm2 能可靠管理 Vibe-Kanban 和 OpenCode Executor 进程并支持开机自启
- 权限配置(/var/tmp/vibe-kanban 和 ~/.vibe-kanban 归属 shenwei是避免 I/O error 的关键
- 不应以 root 用户启动 OpenCode serve避免权限问题
- Vibe-Kanban 会自动 spawn OpenCode executor随机端口无需手动固定端口
## Key Quotes
> "不要用 root 启动 OpenCode servevibe-kanban 会自动 spawn executor" — 核心安全与架构原则
> "遇到 I/O error 时,通常是 executor 没启动或端口被占用" — 常见故障排查方向
> "pm2 只管理 vibe-kanbanexecutor 随进程一起管理" — 进程管理边界定义
## Key Concepts
- [[Vibe Coding]]:使用自然语言与 AI 编程工具协作的开发方式Vibe-Kanban + OpenCode 是其代表性工具栈
- [[nvm]]Node Version ManagerNode.js 版本管理工具,通过 $NVM_DIR/$HOME/.nvm 安装,支持多版本共存和快速切换
- [[pm2]]Node.js 进程管理器支持进程守护、负载均衡、日志管理和开机自启systemd
- [[Node 20]]LTS 版 Node.jsVibe-Kanban 和 OpenCode 的推荐运行时版本
## Key Entities
- [[Vibe-Kanban]]AI 编程辅助工具,提供看板界面与 OpenCode executor 集成,通过 npx vibe-kanban 启动
- [[OpenCode]]:开源 AI Coding CLI agent与 Vibe-Kanban 配合使用npm install -g opencode-ai 安装
- [[shenwei]]:文档作者,非 root 普通用户,用于在 Ubuntu Server 上运行 Vibe-Kanban 和 OpenCode
## Connections
- [[如何在Ubuntu上安装OpenCode并配置Vibe-Kanban]] ← extends ← [[vibe-kanban-opencode-在-ubuntu-server-上安装与管理指南]]
- [[Vibe Coding 经验收集]] ← related_to ← [[vibe-kanban-opencode-在-ubuntu-server-上安装与管理指南]]
- [[OpenCode]] ← depends_on ← [[Node 20]]
- [[Vibe-Kanban]] ← depends_on ← [[OpenCode]]
## Contradictions
- 与 [[如何在Ubuntu上安装OpenCode并配置Vibe-Kanban]] 部分重叠:
- 冲突点:两篇文档都介绍 Ubuntu 上安装 OpenCode 和 Vibe-Kanban
- 当前观点:本篇更详细,覆盖完整 6 步流程、pm2 进程管理、权限配置和验证步骤
- 对方观点:前篇侧重基础安装步骤
---
title: "Vibe-Kanban + OpenCode 在 Ubuntu Server 上安装与管理指南"
type: source
tags: [npm, npx, pm2, ubuntu, vibe-coding, vibe-kanban]
date: 2026-04-17
---
## Source File
- [[Vibe Coding/Vibe-Kanban + OpenCode 在 Ubuntu Server 上安装与管理指南]]
## Summary用中文描述
- 核心主题:在 Ubuntu Server 上非 root 用户shenwei安装 Node 20、Vibe-Kanban、OpenCode并通过 pm2 进程管理,实现 AI 辅助编程工作流
- 问题域Ubuntu Server 环境下的 AI Coding Agent 部署与长期运维
- 方法/机制:使用 nvm 管理 Node 版本、npm/npx 安装工具、pm2 管理进程生命周期、权限配置确保非 root 用户正常运行
- 结论/价值:完整记录了从零开始在 Ubuntu Server 上搭建 Vibe Coding 环境的全流程,含验证步骤和故障排查要点
## Key Claims用中文描述
- 使用 nvm 安装 Node 20 可确保版本兼容性和环境隔离
- pm2 能可靠管理 Vibe-Kanban 和 OpenCode Executor 进程并支持开机自启
- 权限配置(/var/tmp/vibe-kanban 和 ~/.vibe-kanban 归属 shenwei是避免 I/O error 的关键
- 不应以 root 用户启动 OpenCode serve避免权限问题
- Vibe-Kanban 会自动 spawn OpenCode executor随机端口无需手动固定端口
## Key Quotes
> "不要用 root 启动 OpenCode servevibe-kanban 会自动 spawn executor" — 核心安全与架构原则
> "遇到 I/O error 时,通常是 executor 没启动或端口被占用" — 常见故障排查方向
> "pm2 只管理 vibe-kanbanexecutor 随进程一起管理" — 进程管理边界定义
## Key Concepts
- [[Vibe Coding]]:使用自然语言与 AI 编程工具协作的开发方式Vibe-Kanban + OpenCode 是其代表性工具栈
- [[nvm]]Node Version ManagerNode.js 版本管理工具,通过 $NVM_DIR/$HOME/.nvm 安装,支持多版本共存和快速切换
- [[pm2]]Node.js 进程管理器支持进程守护、负载均衡、日志管理和开机自启systemd
- [[Node 20]]LTS 版 Node.jsVibe-Kanban 和 OpenCode 的推荐运行时版本
## Key Entities
- [[Vibe-Kanban]]AI 编程辅助工具,提供看板界面与 OpenCode executor 集成,通过 npx vibe-kanban 启动
- [[OpenCode]]:开源 AI Coding CLI agent与 Vibe-Kanban 配合使用npm install -g opencode-ai 安装
- [[shenwei]]:文档作者,非 root 普通用户,用于在 Ubuntu Server 上运行 Vibe-Kanban 和 OpenCode
## Connections
- [[如何在Ubuntu上安装OpenCode并配置Vibe-Kanban]] ← extends ← [[vibe-kanban-opencode-在-ubuntu-server-上安装与管理指南]]
- [[Vibe Coding 经验收集]] ← related_to ← [[vibe-kanban-opencode-在-ubuntu-server-上安装与管理指南]]
- [[OpenCode]] ← depends_on ← [[Node 20]]
- [[Vibe-Kanban]] ← depends_on ← [[OpenCode]]
## Contradictions
- 与 [[如何在Ubuntu上安装OpenCode并配置Vibe-Kanban]] 部分重叠:
- 冲突点:两篇文档都介绍 Ubuntu 上安装 OpenCode 和 Vibe-Kanban
- 当前观点:本篇更详细,覆盖完整 6 步流程、pm2 进程管理、权限配置和验证步骤
- 对方观点:前篇侧重基础安装步骤

View File

@@ -1,47 +1,51 @@
---
title: "在Ubuntu上安装Vibe-Kanban"
type: source
tags: [npm, npx, pm2, ubuntu, vibe-coding, vibe-kanban]
sources: []
last_updated: 2026-04-22
---
## Source File
- [[Vibe Coding/在Ubuntu上安装Vibe-Kanban.md]]
## Summary用中文描述
- 核心主题Vibe-Kanban 在 Ubuntu 服务器上的安装、配置与 PM2 进程管理
- 问题域AI 编程 agent 的任务管理与自动化工作流
- 方法/机制:通过 npx 快速启动 + PM2 守护进程实现后台常驻,支持自定义 HOST/PORT 环境变量Git worktree 隔离任务环境
- 结论/价值:提供一套完整的 Ubuntu Server 部署 Vibe-Kanban 生产级方案,突破浏览器限制实现远程访问
## Key Claims用中文描述
- Vibe-Kanban 默认以随机端口启动并自动打开浏览器,适合本地桌面使用
- 通过 `HOST=0.0.0.0 PORT=9999` 环境变量可固定端口并允许外部访问
- PM2 守护进程可实现进程常驻、自动重启和开机自启,适合服务器长期运行
- 每个任务运行在独立的 git worktree 中,防止多个 agent 相互干扰
- Vibe-Kanban 默认以 `--dangerously-skip-permissions` 模式运行agent 可自主执行系统级操作
## Key Quotes
> "Vibe Kanban runs AI agents with —dangerously-skip-permissions/—yolo flags by default so they can work autonomously without constant approval prompts." — 安全机制说明
> "Each task runs in an isolated git worktree, preventing agents from interfering with each other." — 隔离机制说明
> "pm2 start \"HOST=0.0.0.0 PORT=9999 npx vibe-kanban\" --name vibe-kanban" — Ubuntu Server 生产部署命令
## Key Concepts
- [[Vibe Coding]]:通过自然语言与 AI coding agent 交互进行编程的工作方式
- [[Vibe-Kanban]]AI agent 任务看板工具,基于 git worktree 隔离每个任务
- [[PM2]]Node.js 进程管理器,提供进程守护、自动重启和开机自启功能
- [[Git Worktree]]Git 多工作目录功能Vibe-Kanban 用其实现任务隔离
## Key Entities
- [[BloopAI]]Vibe-Kanban 的开发公司,项目托管于 github.com/BloopAI/vibe-kanban
## Connections
- [[Vibe Coding]] ← 应用场景 ← [[在Ubuntu上安装Vibe-Kanban]]
- [[PM2]] ← 进程管理 ← [[在Ubuntu上安装Vibe-Kanban]]
- [[OpenCode]] ← 互补工具 ← [[Vibe-Kanban]](同为 supported coding agent
## Contradictions
- 无明显冲突内容
---
title: "在Ubuntu上安装Vibe-Kanban"
type: source
tags: [npm, npx, pm2, ubuntu, vibe-coding, vibe-kanban]
date: 2026-06-04
---
## Source File
- [[Vibe Coding/在Ubuntu上安装Vibe-Kanban.md]]
## Summary用中文描述
- 核心主题:在 Ubuntu Server 上安装和配置 Vibe-Kanban AI 任务管理工具
- 问题域AI 辅助编程工作流、任务管理工具的服务器端部署
- 方法/机制:通过 npx 直接运行 Vibe-Kanban使用 PM2 进程管理器实现后台运行和开机自启
- 结论/价值:提供完整的 Vibe-Kanban 安装指南,包括可选的 GitHub CLI 和 MCP 集成
## Key Claims用中文描述
- Vibe Kanban 默认以 `--dangerously-skip-permissions/--yolo` 标志运行 AI 代理,允许自主操作无需持续审批
- 每个任务在隔离的 git worktree 中运行,防止代理之间相互干扰
- 使用 `PORT=8080 npx vibe-kanban` 可指定固定端口
- PM2 可实现进程自动重启和开机自启,通过 `pm2 startup` 配置
- 使用 `HOST=0.0.0.0 PORT=9999 npx vibe-kanban` 可实现局域网访问
## Key Quotes
> "Vibe Kanban runs AI agents with —dangerously-skip-permissions/—yolo flags by default so they can work autonomously without constant approval prompts." — 安全机制说明
> "Each task runs in an isolated git worktree, preventing agents from interfering with each other." — 隔离机制说明
> "Vibe Kanban uses the GitHub CLI for creating pull requests. Ensure gh is installed and authenticated on your system." — GitHub 集成依赖
## Key Concepts
- [[PM2]]Node.js 进程管理器,提供进程守护、自动重启和开机自启功能
- [[npx]]Node.js 包执行工具,无需全局安装即可运行包
- [[Vibe Coding]]AI 辅助编程范式,通过自然语言描述让 AI 代理完成编码任务
- [[MCP Server]]Model Context Protocol 服务器,用于标准化 AI 代理与外部工具的集成
## Key Entities
- [[Vibe-Kanban]]BloopAI 出品的 AI 任务管理看板工具,支持多种编码代理
- [[BloopAI]]:开发 Vibe-Kanban 的 AI 代码工具公司
- [[Node.js]]Vibe-Kanban 运行所需的 JavaScript 运行时环境
- [[GitHub CLI]]:用于创建 Pull Request 的命令行工具Vibe-Kanban 可选集成
## Connections
- [[Vibe-Kanban]] ← depends_on ← [[Node.js]]
- [[Vibe-Kanban]] ← extends ← [[GitHub CLI]]
- [[Vibe-Kanban]] ← optional_integration ← [[MCP Server]]
- [[PM2]] ← manages ← [[Vibe-Kanban]]
## Contradictions
- 与 [[如何在Ubuntu上安装OpenCode并配置Vibe-Kanban]] 部分重叠:
- 冲突点:两者都介绍 Vibe-Kanban 安装,但侧重点不同
- 当前观点:本文档侧重官方标准安装流程和 PM2 进程管理
- 对方观点:[[如何在Ubuntu上安装OpenCode并配置Vibe-Kanban]] 侧重 OpenCode 集成配置

View File

@@ -1,58 +1,62 @@
---
title: "在Ubuntu上通过VPS+内网反向代理实现域名访问内网穿透"
type: source
tags: [vps, caddy, frp, reverse-proxy, troubleshooting, cloudflare, ubuntu, 内网穿透]
date: 2026-04-14
---
## Source File
- [[Home Office/在Ubuntu上通过VPS+内网反向代理实现域名访问内网穿透.md]]
## Summary用中文描述
- 核心主题:通过 VPS公网服务器+ frp反向隧道+ Caddy自动 HTTPS 反向代理)实现家庭内网服务的公网域名访问
- 问题域:家庭/办公内网中的 NAS、Ubuntu 服务器运行的服务(如 n8n、Grafana、Transmission 等)如何通过自定义域名从公网安全访问
- 方法/机制Cloudflare DNS A 记录指向 VPS 公网 IP → VPS 运行 frpsfrp 服务端)和 Caddy → 内网主机运行 frpcfrp 客户端)将本地端口映射到 VPS → Caddy 反向代理到 frp 映射端口,自动申请 Let's Encrypt 证书提供 HTTPS
- 结论/价值:完整梳理了从 DNS 配置、frps/frpc 安装配置、Caddy 反向代理到 SSH 穿透的全套流程,并提供了 7 步系统化故障排查指南
## Key Claims用中文描述
- frp 内网穿透工具包含 frps服务端和 frpc客户端通过 TCP 反向隧道将内网端口暴露到公网 VPS
- Caddy 自动管理 HTTPS 证书Let's Encrypt无需手动配置 SSL通过 reverse_proxy 指令将请求转发到 frp 映射的本地端口
- Cloudflare DNS 仅负责将子域名 A 记录指向 VPS 公网 IP不影响 TCP 流量的直接路由
- SSH 穿透不同于 HTTP/HTTPS不经过 Caddy仅通过 frps + frpc 的 TCP 映射实现
- 内网 NAS 上的 V2RayA 透明代理可能干扰 frp 连接,需要停止代理后重启 frpc
## Key Quotes
> "思路Cloudflare DNS 指向 公网上的一台VPSVPS 上运行 Caddy内网主机通过 frp 将服务暴露到 VPS本地 127.0.0.1 或某个端口VPS 反向代理到该端口。" — 整体方案架构描述
> "Caddy 会自动申请并更新 Let's Encrypt 证书,提供 HTTPS 访问。" — Caddy 自动 HTTPS 特性
> "⚠️ **重点提醒(安全性)**SSH 穿透与 HTTP 不同,它是纯 TCP 流量,不经 CaddyCaddy 只处理 HTTP/HTTPS所以Caddy 不参与 SSH 的代理,只用 frps + frpc 配置即可完成。" — SSH 与 HTTP 代理架构差异
> "authentication failed token mismatch invalid login → 那肯定是 token 和 frpc 不一致。" — frp 连接失败的核心原因之一
## Key Concepts
- [[内网穿透]]:通过公网服务器中转,使 NAT/防火墙后的内网服务可被外部访问的技术,本方案使用 frp 反向隧道实现
- [[反向代理]]Caddy 作为反向代理,将公网 HTTPS 请求转发到本地 frp 映射端口,提供统一的 HTTPS 入口
- [[TCP隧道]]frp 通过 TCP 协议在 frpc 客户端和 frps 服务端之间建立持久隧道,支持非 HTTP 协议(如 SSH、MySQL
- [[自动HTTPS]]Caddy 内置 Let's Encrypt 证书自动申请和续期,无需手动管理 SSL 证书
- [[DNS A记录]]Cloudflare DNS 配置,将子域名(如 nas.ishenwei.online指向 VPS 公网 IP
## Key Entities
- [[RackNerd VPS]]VPS 提供商192.227.222.142),托管 frps 服务端和 Caddy 反向代理,作为内网穿透的公网中转站
- [[Synology NAS DS718]]:内网 NAS 设备192.168.3.17),运行 frpc 客户端,通过 frp 暴露 NAS 服务5000端口 → VPS 15000
- [[frp]]:开源内网穿透工具,本方案的核心,包含 frps服务端监听 7000 端口)和 frpc客户端版本 0.65.0
- [[Caddy]]Go 语言编写的自动 HTTPS 反向代理服务器,与 frp 配合为内网服务提供 HTTPS 域名访问
- [[Cloudflare]]:域名 DNS 托管服务商,通过 A 记录将 ishenwei.online 子域名指向 VPS 公网 IP
## Connections
- [[家庭网络环境概览_2026-04-03]] ← extends ← [[在Ubuntu上通过VPS+内网反向代理实现域名访问内网穿透]](本文是该概览中内网穿透架构的详细展开)
- [[ubuntu-安装-frp-0-65-0-x86_64-操作笔记]] ← depends_on ← [[在Ubuntu上通过VPS+内网反向代理实现域名访问内网穿透]]FRP 安装是该方案的前置步骤)
- [[mac-mini-安装-frp-0-65-0-arm64-操作笔记]] ← depends_on ← [[在Ubuntu上通过VPS+内网反向代理实现域名访问内网穿透]]Mac Mini FRP 客户端配置参考)
- [[Ubuntu Server]] ← hosts ← [[在Ubuntu上通过VPS+内网反向代理实现域名访问内网穿透]]Ubuntu Server 24.04 是本方案的目标操作系统)
## Contradictions
- 与 [[家庭监控方案-prometheus-grafana-node-exporter-cadvisor-blackbox]] 可能的差异点:
- 冲突点:监控方案中是否包含完整的公网访问配置
- 当前观点:本文提供完整公网域名访问方案,包含 HTTPS 和 SSH 穿透的详细配置
- 对方观点:监控方案侧重于 Prometheus + Grafana + exporters 的部署和告警配置,未展开公网访问细节
- 建议:在监控方案中补充指向本文内网穿透配置的外链,实现监控方案 + 公网访问的完整闭环
---
title: "在Ubuntu上通过VPS+内网反向代理实现域名访问内网穿透"
type: source
tags: [vps, caddy, frp, reverse-proxy, troubleshooting, cloudflare, ubuntu, 内网穿透]
date: 2026-05-28
---
## Source File
- [[Home Office/在Ubuntu上通过VPS+内网反向代理实现域名访问内网穿透.md]]
## Summary用中文描述
- 核心主题:通过 VPS公网服务器+ frp反向隧道+ Caddy自动 HTTPS 反向代理)实现家庭内网服务的公网域名访问
- 问题域:家庭/办公内网中的 NAS、Ubuntu 服务器运行的服务(如 n8n、Grafana、Transmission、SSH 等)如何通过自定义域名从公网安全访问
- 方法/机制Cloudflare DNS A 记录指向 VPS 公网 IP → VPS 运行 frpsfrp 服务端)和 Caddy → 内网主机运行 frpcfrp 客户端)将本地端口映射到 VPS → Caddy 反向代理到 frp 映射端口,自动申请 Let's Encrypt 证书提供 HTTPS
- 结论/价值:完整梳理了从 DNS 配置、frps/frpc 安装配置、Caddy 反向代理到 SSH 穿透的全套流程,并提供了 7 步系统化故障排查指南
## Key Claims用中文描述
- frp 内网穿透工具包含 frps服务端和 frpc客户端通过 TCP 反向隧道将内网端口暴露到公网 VPS,支持 NAT 穿透和自动重连
- Caddy 自动管理 HTTPS 证书Let's Encrypt无需手动配置 SSL通过 reverse_proxy 指令将请求转发到 frp 映射的本地端口
- Cloudflare DNS 仅负责将子域名 A 记录指向 VPS 公网 IP不影响 TCP 流量的直接路由
- SSH 穿透不同于 HTTP/HTTPS不经过 Caddy仅通过 frps + frpc 的 TCP 映射实现`type = tcp``remote_port = 60022`
- 内网 NAS 上的 V2RayA 透明代理可能干扰 frp 连接,需要停止代理后重启 frpc
- frp 连接失败的主要原因包括:端口被占用/token 不一致/防火墙拦截/Caddy 误 proxy TCP 端口
- 通过 `ssh -p 60022 user@ubuntu1.ishenwei.online` 可从公网 SSH 到内网 Ubuntu需 DNS A 记录 + frpc 配置)
## Key Quotes
> "思路Cloudflare DNS 指向公网上的一台VPSVPS 上运行 Caddy内网主机通过 frp 将服务暴露到 VPS本地 127.0.0.1 或某个端口VPS 反向代理到该端口。" — 整体方案架构描述
> "Caddy 会自动申请并更新 Let's Encrypt 证书,提供 HTTPS 访问。" — Caddy 自动 HTTPS 特性
> "⚠️ **重点提醒(安全性)**SSH 穿透与 HTTP 不同,它是纯 TCP 流量,不经 CaddyCaddy 只处理 HTTP/HTTPS所以Caddy 不参与 SSH 的代理,只用 frps + frpc 配置即可完成。" — SSH 与 HTTP 代理架构差异
> "authentication failed token mismatch invalid login → 那肯定是 token 和 frpc 不一致。" — frp 连接失败的核心原因之一
> "很多人遇到的问题是:他们编辑了 `/opt/frp/frps.ini`,但 systemd service 其实加载另一个路径,例如 `/etc/frp/frps.ini`。" — frps 配置加载路径的常见陷阱
## Key Concepts
- [[内网穿透]]:通过公网服务器中转,使 NAT/防火墙后的内网服务可被外部访问的技术,本方案使用 frp 反向隧道实现
- [[反向代理]]Caddy 作为反向代理,将公网 HTTPS 请求转发到本地 frp 映射端口,提供统一的 HTTPS 入口
- [[TCP隧道]]frp 通过 TCP 协议在 frpc 客户端和 frps 服务端之间建立持久隧道,支持非 HTTP 协议(如 SSH、MySQL
- [[自动HTTPS]]Caddy 内置 Let's Encrypt 证书自动申请和续期,无需手动管理 SSL 证书
- [[DNS A记录]]Cloudflare DNS 配置,将子域名(如 nas.ishenwei.online指向 VPS 公网 IP
## Key Entities
- [[RackNerd VPS]]VPS 提供商192.227.222.142),托管 frps 服务端和 Caddy 反向代理,作为内网穿透的公网中转站
- [[Synology NAS DS718]]:内网 NAS 设备192.168.3.17),运行 frpc 客户端,通过 frp 暴露 NAS 服务5000端口 → VPS 15000、Navidrome、Calibre、WebDAV、Miniflux、Zipline、MySQL、SSH 等多个服务
- [[frp]]:开源内网穿透工具,本方案的核心,包含 frps服务端监听 7000 端口)和 frpc客户端版本 0.65.0;通过 token 认证确保连接安全
- [[Caddy]]Go 语言编写的自动 HTTPS 反向代理服务器,与 frp 配合为内网服务提供 HTTPS 域名访问;支持 `caddy validate` 命令验证配置语法
- [[Cloudflare]]:域名 DNS 托管服务商,通过 A 记录将 ishenwei.online 子域名指向 VPS 公网 IP
## Connections
- [[家庭网络环境概览_2026-04-03]] ← extends ← [[在Ubuntu上通过VPS+内网反向代理实现域名访问内网穿透]](本文是该概览中内网穿透架构的详细展开)
- [[ubuntu-安装-frp-0-65-0-x86_64-操作笔记]] ← depends_on ← [[在Ubuntu上通过VPS+内网反向代理实现域名访问内网穿透]]FRP 安装是该方案的前置步骤)
- [[mac-mini-安装-frp-0-65-0-arm64-操作笔记]] ← depends_on ← [[在Ubuntu上通过VPS+内网反向代理实现域名访问内网穿透]]Mac Mini FRP 客户端配置参考)
- [[Ubuntu Server]] ← hosts ← [[在Ubuntu上通过VPS+内网反向代理实现域名访问内网穿透]]Ubuntu Server 24.04 是本方案的目标操作系统)
## Contradictions
- 与 [[家庭监控方案-prometheus-grafana-node-exporter-cadvisor-blackbox]] 可能的差异点:
- 冲突点:监控方案中是否包含完整的公网访问配置
- 当前观点:本文提供完整公网域名访问方案,包含 HTTPS 和 SSH 穿透的详细配置
- 对方观点:监控方案侧重于 Prometheus + Grafana + exporters 的部署和告警配置,未展开公网访问细节
- 建议:在监控方案中补充指向本文内网穿透配置的外链,实现监控方案 + 公网访问的完整闭环

View File

@@ -1,40 +1,44 @@
---
title: "如何传输Docker images 并且在另一个Docker安装"
type: source
tags: []
sources: []
last_updated: 2026-04-22
---
## Source File
- [[Home Office/如何传输Docker images 并且在另一个Docker安装]]
## Summary用中文描述
- 核心主题Docker 镜像在多台机器之间的离线传输方法
- 问题域:内网环境或无 Registry 情况下的镜像迁移
- 方法/机制:三种方案——`docker save/load`tar 包)、镜像仓库推送拉取、`ctr` 直接复制
- 结论/价值:提供了完整的离线迁移工具链,适合家庭服务器集群或隔离网络环境
## Key Claims用中文描述
- `docker save` 可将镜像导出为 tar 文件,`docker load` 可在目标机器导入,无需镜像仓库中介
- `docker push/pull` 适合有镜像仓库(如 Docker Hub、私有 Harbor的场景
- `ctr -n k8s.io images import` 可直接导入镜像包,绕过 Docker 工具链
- 多架构镜像需注意 `--platform` 参数指定平台,避免在不同架构机器间混用
## Key Quotes
> "把镜像 save 成 tar 包后拷贝到新机器再 load 进去" — 最通用的离线迁移方案,适用于无网络的隔离环境
## Key Concepts
- [[Docker-Image]]容器镜像Docker 应用打包的标准格式
- [[Docker-Save]]:将镜像导出为 tar 归档文件
- [[Docker-Load]]:从 tar 文件加载镜像到本地 Docker 引擎
- [[Docker Registry]]镜像仓库用于存储和分发镜像Docker Hub / Harbor / 私有 Registry
## Key Entities
- [[Docker]]:容器化平台,本文档的操作环境
## Connections
- [[如何在Ubuntu Server安装 Docker & Docker Compose]] ← extends ← [[如何传输Docker images 并且在另一个Docker安装]]
## Contradictions
- (无已知冲突)
---
title: "如何传输Docker images 并且在另一个Docker安装"
type: source
tags: []
sources: []
last_updated: 2026-05-30
---
## Source File
- [[Home Office/如何传输Docker images 并且在另一个Docker安装]]
## Summary用中文描述
- 核心主题Docker 镜像在两台 Docker 环境之间的离线传输方法
- 问题域:无镜像仓库的内网环境或离线场景下的镜像迁移
- 方法/机制:`docker save` 导出为 tar → 上传目标机器 → `docker load` 导入
- 结论/价值:提供了无需镜像仓库的离线迁移标准流程,适用于家庭 NAS 与工作设备之间的镜像同步
## Key Claims用中文描述
- `docker pull` 从远程仓库拉取镜像到本地 Docker 环境
- `docker save -o <output.tar> <image>` 将镜像导出为 tar 归档文件,可离线拷贝
- `docker load < <input.tar` 在目标机器从 tar 文件加载镜像,无需网络连接
- 上传 tar 包到目标机器后,可在 Container Manager 等 Web UI 中直接看到已导入的镜像
## Key Quotes
> "cd 到 xiaoya.tar 存放的路径之后运行以下命令 docker load < xiaoya.tar" — 在 Synology NAS 上通过 SSH 执行镜像导入
> "再进入 NAS 的 Container Manager 界面后在 image 里就可以看到 xiaoya/alist 这个 image 了" — 验证镜像导入成功的方式
## Key Concepts
- [[Docker-Image]]容器镜像Docker 应用打包的标准格式
- [[Docker-Save]]`docker save` 命令将镜像导出为 tar 归档文件
- [[Docker-Load]]`docker load` 命令从 tar 文件加载镜像到本地 Docker 引擎
- [[Docker-Registry]]:镜像仓库(本文未使用,但提及作为替代方案)
## Key Entities
- [[Docker]]:容器化平台,本文的操作基础环境
- [[Synology-NAS]]:群晖 NAS运行 DockerContainer Manager本文镜像迁移的目标端
- [[Alist]]开源网盘聚合工具xiaoyaliu/alist本文操作的示例镜像
## Connections
- [[如何在Ubuntu Server安装 Docker & Docker Compose]] ← extends ← [[如何传输Docker images 并且在另一个Docker安装]]
- [[在Synology NAS上安装CloudDrive2]] ← related_to ← [[如何传输Docker images 并且在另一个Docker安装]](同为 Synology NAS Docker 操作场景)
## Contradictions
- (无已知冲突)

View File

@@ -1,59 +1,49 @@
---
title: "如何在Ubuntu Server上通过NFS挂载Synology NAS上的共享文件夹"
type: source
tags: [nas, nfs, synology, ubuntu]
date: 2025-12-29
---
## Source File
- [[raw/Home Office/如何在Ubuntu Server上通过NFS挂载Synology NAS上的共享文件夹.md]]
## Summary (用中文描述)
- 核心主题:在 Ubuntu Server 上通过 NFS 协议挂载 Synology NAS 共享文件夹,实现服务器到 NAS 的自动化备份存储
- 问题域:Samba 挂载丢失 Linux 文件权限信息导致 Docker 卷恢复失败NFS 相比 Samba 完美保留文件所有权、性能更强
- 方法/机制:
1. Synology NAS DSM 控制面板 → 共享文件夹 → NFS 权限配置关键Squash 设为"映射所有用户为 admin"
2. Ubuntu 安装 nfs-commonmount -t nfs 挂载
3. /etc/fstab 写入永久挂载配置关键参数_netdev、timeo=900retrans=5
4. sudo mount -a 测试后再重启
5. 备份脚本前加挂载点检查防止数据写入本地磁盘
6. systemctl enable remote-fs.target 解决 nfs-common 启动慢问题
- 结论/价值NFS 是 Linux 服务器备份到 NAS 的最佳方案,配合 rsync + Cron 实现全自动化备份
## Key Claims (用中文描述)
- **NFS 相比 Samba 的核心优势**NFS 原生保留 Linux 文件所有权信息,避免 Docker 卷恢复时的权限报错
- **Synology NFS Squash 关键配置**:必须选择"映射所有用户为 admin",否则 Ubuntu 端 root 发起的备份请求会在 NAS 端遭遇权限校验失败
- **fstab _netdev 参数的作用**:告知系统这是网络设备,等网络服务完全启动后再尝试挂载,防止开机卡死
- **永远不要直接重启测试**/etc/fstab 写错会导致系统无法正常启动,必须先用 sudo mount -a 验证
## Key Quotes
> "NFS 会完美保留文件所有权信息Samba 则会丢失 Linux 的文件所有权,导致恢复 Docker 卷时权限报错。" — NFS 相比 Samba 的优势说明
> "_netdev: **关键参数**。告诉系统这是一个网络设备,务必等到网络服务完全启动后再尝试挂载,防止开机过程因找不到网络而卡死。" — fstab 参数解析
> "千万不要直接重启!如果 `/etc/fstab` 写错了,系统可能无法正常启动。" — 配置验证警告
> "如果在执行了上述操作后重启依然不生效,通常是因为 Ubuntu 的 `nfs-common` 服务启动慢于 `mount -a` 的执行。" — nfs-common 启动时序问题
## Key Concepts
- [[NFS]]Network File SystemLinux/Unix 系统的网络文件系统协议Ubuntu 备份到 NAS 的推荐协议
- [[永久挂载]]:通过 /etc/fstab 配置实现开机自动挂载,配合 _netdev 参数确保网络设备就绪后再挂载
- [[挂载点检查]]:备份脚本执行前的安全验证,使用 mountpoint -q 命令检查挂载点有效性
- [[NFS网络备份]]:通过 NFS 协议将备份数据存储到网络存储设备(与本文 Ubuntu rsync 备份场景互补)
## Key Entities
- [[Synology NAS DS718]]:群晖 NAS 设备192.168.3.17),通过 DSM 控制面板配置 NFS 权限,作为 Ubuntu Server 的备份存储目标
- [[Ubuntu Server]]Linux 服务器发行版,运行 rsync 备份脚本,将数据写入 NAS 的 NFS 挂载点
- [[rsync]]:增量文件同步工具,与 NFS 永久挂载配合实现 Ubuntu Server 到 NAS 的自动化日常备份
## Connections
- [[Ubuntu Server]] ← runs ← [[rsync]] (备份工具)
- [[rsync]] ← writes to ← [[永久挂载]] (NFS 挂载点 /mnt/nas_backup)
- [[永久挂载]] ← depends on ← [[NFS]] (NFS 协议)
- [[Synology NAS DS718]] ← serves ← [[NFS]] (NFS 服务端)
- [[挂载点检查]] ← guards ← [[rsync]] (备份安全前置检查)
- [[Cron定时任务]] ← schedules ← [[rsync]] (定时触发备份)
- [[NFS网络备份]] ← uses ← [[NFS]] (两者同属 NFS 存储应用场景)
## Contradictions
- 无冲突
---
title: "如何在Ubuntu Server上通过NFS挂载Synology NAS上的共享文件夹"
type: source
tags: [nas, nfs, synology, ubuntu]
date: 2025-12-29
---
## Source File
- [[Home Office/如何在Ubuntu Server上通过NFS挂载Synology NAS上的共享文件夹.md]]
## Summary用中文描述
- 核心主题:通过 NFS 协议 Synology NAS 共享文件夹挂载到 Ubuntu Server实现永久性网络存储挂载
- 问题域:Ubuntu 服务器与 Synology NAS 之间的网络存储集成,适用于备份场景
- 方法/机制:
- Synology DSM 控制面板配置 NFS 权限IP白名单、Squash 映射为 admin、_netdev 参数
- Ubuntu 安装 `nfs-common`,使用 `mount -t nfs` 临时挂载
- 通过 `/etc/fstab` 配置永久挂载,含 `timeo=900``retrans=5``_netdev` 等参数
- rsync 脚本中加入挂载点检测保护,防止 NAS 掉线时数据写入本地
- 结论/价值:相比 SambaNFS 能保留 Linux 文件权限uid/gid避免 Docker 卷恢复时的权限报错,是 Linux 服务器挂载 NAS 的标准方案
## Key Claims用中文描述
- Synology NAS 的 Squash 设置"映射所有用户为 admin",可将 Ubuntu 端 root 请求在 NAS 端以 admin 身份执行,绕过 Linux 权限校验
- `/etc/fstab` 中的 `_netdev` 参数可防止开机时网络未就绪导致系统挂起
- NFS 相比 Samba 在处理 Docker 配置文件(大量小文件)时性能更强
- rsync 脚本中加入挂载点检查,可在 NAS 掉线时主动终止备份,防止数据写入本地目录
## Key Quotes
> "NFS 能完美保留Linux 文件所有权信息),而 Samba 会丢失,导致恢复 Docker 卷时权限报错" — NFS 相对 Samba 的核心优势说明
> "_netdev告诉系统这是一个网络设备务必等到网络服务完全启动后再尝试挂载防止开机过程因找不到网络而卡死" — fstab 中 _netdev 参数的关键作用
> "如果 `sudo mount -a` 没有报错,且 `df` 能看到 NAS 空间,那么以后重启服务器,挂载都会自动生效" — 永久挂载验证方法
## Key Concepts
- [[NFS]]Network File SystemLinux/Unix 标准的网络文件系统协议,支持保留原始 uid/gid 权限
- [[/etc/fstab]]Linux 文件系统表,用于配置开机自动挂载;`_netdev` 参数确保网络设备就绪后再挂载
- [[rsync]]:增量备份工具,可配合 NFS 挂载点实现服务器到 NAS 的自动化备份
- [[Squash]]NFS 权限设置中的用户映射选项,"映射所有用户为 admin" 可简化跨平台权限问题
## Key Entities
- [[Synology NAS]]:群晖网络附加存储设备,提供 DSM 管理界面和 NFS 共享服务;本文示例 IP192.168.3.17,挂载路径:/volume2/backup
- [[Ubuntu Server]]Linux 服务器操作系统,本文版本为 Ubuntu 24.04;示例 IP192.168.3.47,挂载点:/mnt/nas_backup
## Connections
- [[Ubuntu服务器通过rsync实现日常增量备份]] ← depends_on ← [[如何在Ubuntu Server上通过NFS挂载Synology NAS上的共享文件夹]]rsync 备份依赖 NFS 挂载的 NAS 存储)
- [[群晖NAS科学上网方法]] ← related ← [[如何在Ubuntu Server上通过NFS挂载Synology NAS上的共享文件夹]](同为 Synology NAS 相关配置文档)
## Contradictions
- 无已知冲突

View File

@@ -1,101 +1,56 @@
---
title: "家庭网络环境概览"
type: source
tags: [home-office, nas, synology, ubuntu, vps]
date: 2026-04-03
---
## Source File
- [[raw/Home Office/家庭网络环境概览_2026-04-03.md]]
## Summary (用中文描述)
- **核心主题**:星曜家庭网络基础设施的完整架构图谱涵盖5大节点1个公网VPS + 1个Mac Mini + 1个Synology NAS + 2个Ubuntu Server近50个Docker应用服务的部署现状、端口映射与公网访问方案。
- **问题域**如何将分散在多个物理位置和内网的服务通过FRP内网穿透 + Caddy反向代理 + Cloudflare DNS实现统一的HTTPS公网访问
- **方法/机制**
- **FRP**frps/frpc在内网各节点部署frpc客户端公网VPS运行frps服务端通过TCP隧道将内网端口映射到公网
- **Caddy**在公网VPS上运行自动申请Let's Encrypt证书根据域名将请求反向代理到对应的FRP映射端口
- **Cloudflare**:托管 ishenwei.online 域名的DNS解析将子域名A记录指向VPS公网IP
- **Docker Compose**各节点上的服务通过Docker Compose管理独立部署、版本隔离。
- **结论/价值**:该架构实现了"零静态IP依赖"的公网访问方案,所有内网服务均可通过 *.ishenwei.online 子域名从公网访问,同时保持了内网服务的隐私性和低带宽成本。
## Key Claims (用中文描述)
- VPS192.227.222.142通过FRP Server端口7000+ Caddy Web服务器为全网内网服务提供统一的HTTPS公网入口。
- Mac Mini M4192.168.3.189作为主控节点运行OpenClaw AI助手框架、vaultwarden密码管理器及STQ项目管理系统
- Synology NAS DS718192.168.3.17托管了媒体服务Jellyfin/Navidrome、监控栈Prometheus/Alertmanager/node_exporter、密码管理vaultwarden、云盘挂载CloudDrive2等核心应用。
- Ubuntu Server 1192.168.3.47承担监控可视化Grafana/Superset、个人导航Homarr、BT下载Transmission等面向公网的服务。
- Ubuntu Server 2192.168.3.45运行n8n工作流自动化、Gitea自建Git服务及TikTok项目管理系统DEV环境
- 科学上网代理SOCKS5: 10808在Mac mini、ubuntu1、ubuntu2上均正常仅NAS端口20170仅本机监听。
## Key Quotes
> "Caddy — 现代化 Web 服务器,自带 HTTPS 自动化证书申请,常作为前置反向代理处理业务流量。" — 域名映射表说明
> "FRP Server — 高性能内网穿透服务端frps负责将内网 NAS 或本地开发环境的服务暴露至公网访问。端口 7000" — VPS应用说明
> "n8n 已迁移至 Ubuntu2Mac Mini 不再暴露 n8n 端口" — Mac Mini FRP配置说明
## Key Concepts
- [[内网穿透]]通过FRP反向隧道将内网服务暴露至公网访问的完整方案包含frps服务端和frpc客户端两个组件。
- [[反向代理]]通过Caddy根据域名将公网HTTPS请求反向代理到内网FRP映射端口的机制。
- [[HTTPS自动化证书]]Caddy自动申请和管理Let's Encrypt SSL证书的机制。
- [[Docker Compose]]各节点服务通过YAML文件声明式定义和管理的多容器编排工具。
- [[时序数据库]]Prometheus作为监控数据的时序数据库用于采集和存储node_exporter/cAdvisor/blackbox_exporter的指标。
- [[告警管理]]Alertmanager处理Prometheus告警的分组、抑制、静默和多通道路由。
- [[SOCKS5代理]]本地科学上网代理协议监听127.0.0.1:10808。
- [[DNS托管]]Cloudflare免费提供域名DNS解析服务含CDN和SSL。
## Key Entities
- [[RackNerd]]VPS提供商托管公网VPS1192.227.222.142提供frps和Caddy服务。
- [[Mac Mini M4]]Apple Silicon Mac Mini作为家庭服务器主控节点192.168.3.189运行OpenClaw、vaultwarden、STQ项目等应用。
- [[Synology NAS DS718]]群晖NAS设备192.168.3.17运行DSM管理界面及Calibre/MinIO/Zipline/Navidrome/Jellyfin等Docker应用。
- [[Ubuntu Server]]两个内网Ubuntu服务器节点Ubuntu1: 192.168.3.47, Ubuntu2: 192.168.3.45),承担监控/导航/下载/工作流/Git等服务。
- [[Caddy]]公网VPS上的自动HTTPS反向代理服务器绑定*.ishenwei.online域名。
- [[frp]]内网穿透工具frps/frpc v0.65.0实现内网端口到公网端口的TCP隧道映射。
- [[Prometheus]]时序数据库监控系统在NAS和Ubuntu1上运行采集node_exporter/cAdvisor/blackbox_exporter指标。
- [[Grafana]]监控可视化平台Ubuntu1:13000通过Dashboard ID导入官方模板。
- [[vaultwarden]]轻量级Bitwarden密码管理器服务端在Mac Mini和NAS上均有部署。
- [[Jellyfin]]开源媒体服务器在NAS上运行端口8096公网通过FRP+Caddy访问。
- [[Navidrome]]开源音乐流媒体服务器Subsonic API兼容在NAS上运行端口4533
- [[Transmission]]BT下载客户端在Ubuntu1上运行端口9091公网通过FRP+Caddy访问。
- [[n8n]]工作流自动化平台已从Mac Mini迁移至Ubuntu2端口5678公网通过FRP+Caddy访问。
- [[Portainer]]Docker容器可视化管理界面在NAS、Ubuntu1、Ubuntu2上均有部署。
- [[Homarr]]:个人导航页面/仪表板在Ubuntu1上运行端口7575公网通过FRP+Caddy访问。
- [[Apache Superset]]开源BI平台在Ubuntu1上运行端口8777公网通过FRP+Caddy访问。
- [[Zipline]]自托管图床应用在NAS上运行端口3333后端为PostgreSQL。
- [[MinIO]]S3兼容对象存储在NAS上运行端口9001作为Zipline的存储后端。
- [[Cloudflare]]DNS托管服务商免费提供CDN和SSL证书托管ishenwei.online域名。
- [[OpenClaw]]AI助手框架在Mac Mini上运行端口8080星曜的主要运行环境。
- [[Calibre]]电子书库管理工具在NAS上运行端口8083公网通过FRP+Caddy访问。
- [[v2rayA]]V2Ray图形化代理客户端在NAS上运行端口2017SOCKS5仅本机监听。
- [[CloudDrive2]]多云盘挂载工具在NAS上运行端口19798支持阿里云盘等。
- [[Alertmanager]]Prometheus告警分发组件在NAS和Ubuntu1上运行端口9093
- [[node_exporter]]Prometheus官方主机指标采集器以host network模式运行。
- [[cAdvisor]]Google开源容器资源监控工具挂载Docker socket采集容器级指标。
- [[blackbox_exporter]]Prometheus官方黑盒探测exporter支持HTTP/TCP/ICMP/DNS/TLS探测。
- [[nginx-proxy-manager]]反向代理管理工具在Ubuntu1上运行端口81
- [[Gitea]]自建Git服务在Ubuntu2上运行端口3000
- [[Draw.io]]在线图表编辑器在Ubuntu2上运行端口8085公网通过FRP+Caddy访问。
- [[it-tools]]开源开发者工具集合在Ubuntu1和Ubuntu2上运行端口8999提供URL编解码、UUID生成、哈希计算等100+工具。
## Connections
- [[Caddy]] ← 反向代理 ← [[frp]]Caddy将HTTPS请求代理到FRP映射端口
- [[Cloudflare]] ← DNS托管 ← [[Caddy]]DNS A记录指向VPS公网IP
- [[Prometheus]] ← 指标采集 ← [[node_exporter]] + [[cAdvisor]] + [[blackbox_exporter]]
- [[Grafana]] ← 数据源 ← [[Prometheus]]Grafana消费Prometheus指标
- [[Alertmanager]] ← 告警路由 ← [[Prometheus]]Prometheus触发告警后发送至Alertmanager
- [[Zipline]] ← 存储后端 ← [[MinIO]]Zipline使用MinIO存储图片
- [[Zipline]] ← 数据库 ← [[PostgreSQL]]NAS上zipline_postgres容器
- [[Jellyfin]] ← 下载来源 ← [[Transmission]](下载→整理→播放工作流)
- [[Navidrome]] ← 同 ← [[Jellyfin]](均为媒体服务,下载→播放工作流)
- [[OpenClaw]] ← 运行平台 ← [[Mac Mini M4]]OpenClaw的主要运行环境
- [[n8n]] ← 数据存储 ← [[PostgreSQL]]Ubuntu2上n8n_postgres容器
- [[Cloudflare]] ← DNS ← [[RackNerd]]VPS IP: 192.227.222.142
- [[frp]] ← 客户端节点 ← [[Mac Mini M4]] + [[Synology NAS DS718]] + [[Ubuntu Server 1]] + [[Ubuntu Server 2]]4个frpc客户端
- [[frp]] ← 服务端 ← [[RackNerd]]VPS运行frps服务端
- [[Docker Compose]] ← 部署载体 ← [[Prometheus]] + [[Grafana]] + [[Jellyfin]] + [[Navidrome]] + [[n8n]] + [[Zipline]] + [[MinIO]] + [[v2rayA]] + [[vaultwarden]] + [[Portainer]] + [[Homarr]] + [[Apache Superset]] + [[Gitea]] + [[it-tools]]所有Docker应用均通过Docker Compose部署
## Contradictions
- 与 [[ubuntu-server科学上网]] 冲突:
- **冲突点**NAS上v2rayA的SOCKS5代理端口20170状态为"仅本机监听"而ubuntu-server科学上网方案强调Docker Daemon也需要代理配置。
- **当前观点**v2rayA在NAS上运行但仅本机监听Docker pull仍可能受限。
- **对方观点**Ubuntu Server可通过ProxyChains/Docker Daemon Proxy显式配置代理覆盖终端和Docker Daemon两层。
- **Resolution**v2rayA仅覆盖NAS本身NAS上Docker pull可能还需配置Docker Daemon Proxy参考[[群晖NAS科学上网]]方案)。
---
title: "家庭网络环境概览"
type: source
tags: [home-office, nas, synology, ubuntu, vps, home-lab]
date: 2026-04-03
---
## Source File
- [[Home Office/家庭网络环境概览_2026-04-03.md]]
## Summary用中文描述
- 核心主题:个人家庭网络的完整基础设施架构文档记录了从公网VPS到内网各服务器的完整拓扑、应用部署和域名映射
- 问题域:家庭服务器集群的规划、部署与公网访问方案;多设备、多服务的管理与监控
- 方法/机制:通过 FRP 内网穿透 + Caddy 反向代理实现公网访问;使用 Docker 容器化部署各类服务Cloudflare DNS 托管
- 结论/价值:构建了一套完整的自托管服务生态,覆盖开发、媒体、监控、自动化等多个场景
## Key Claims用中文描述
- FRPFast Reverse Proxy通过公网VPS中转实现了内网设备的无公网IP公网访问
- Caddy 作为前置反向代理,通过 *.ishenwei.online 子域名自动申请 HTTPS 证书
- Synology NAS DS718 是家庭媒体中心,运行 Jellyfin、Navidrome、Calibre-web 等多媒体服务
- Ubuntu1 运行 Grafana + Prometheus 监控栈,收集所有服务器的指标数据
- Ubuntu2 承载 n8n 工作流自动化平台和 Gitea 自建 Git 服务
- Mac Mini M4 作为主控节点,运行 OpenClaw AI 助手框架及 STQ 项目管理系统
## Key Quotes
> "Caddy — 现代化 Web 服务器,自带 HTTPS 自动化证书申请,常作为前置反向代理处理业务流量" — 文档中定义
> "FRP Server — 高性能内网穿透服务端frps负责将内网 NAS 或本地开发环境的服务暴露至公网访问" — 文档中定义
> "域名 DNS 托管于 Cloudflare提供免费 CDN 与 SSL 证书" — 基础设施说明
## Key Concepts
- [[FRP 内网穿透]]:通过 Fast Reverse Proxy 在公网VPS和内网设备之间建立反向隧道实现内网服务公网访问
- [[Caddy 反向代理]]:现代化 Web 服务器,自动管理 HTTPS 证书,通过子域名路由内网服务
- [[Docker 容器化]]:所有应用服务均以 Docker 方式部署,便于管理和迁移
- [[Home Lab]]:个人自托管服务器集群,包含媒体、监控、开发、自动化等多种服务
- [[Prometheus 监控]]:使用 Prometheus + Grafana + Node Exporter + cAdvisor 构建完整监控体系
## Key Entities
- [[RackNerd VPS]]公网服务器IP: 192.227.222.142),运行 Caddy 和 FRP Server是内网穿透的核心节点
- [[Mac Mini M4]]家庭主控节点内网IP: 192.168.3.189),运行 OpenClaw AI助手、vaultwarden、STQ项目管理系统
- [[Synology NAS DS718]]家庭媒体中心内网IP: 192.168.3.17),运行 Jellyfin、Navidrome、Calibre等多媒体服务
- [[Ubuntu1]]监控与开发服务器内网IP: 192.168.3.47),运行 Grafana、Superset、Homarr导航面板
- [[Ubuntu2]]自动化与代码服务器内网IP: 192.168.3.45),运行 n8n 工作流自动化、Gitea 自建Git服务
- [[Cloudflare]]提供免费DNS托管、CDN加速和SSL证书
## Connections
- [[RackNerd VPS]] ← provides_public_ip ← [[Home Lab]]
- [[Mac Mini M4]] ← hosts ← [[OpenClaw]]
- [[Synology NAS DS718]] ← hosts ← [[Jellyfin]]
- [[Synology NAS DS718]] ← hosts ← [[Navidrome]]
- [[Ubuntu1]] ← hosts ← [[Grafana]]
- [[Ubuntu2]] ← hosts ← [[n8n 工作流自动化]]
- [[Home Lab]] ← uses ← [[FRP 内网穿透]]
- [[Home Lab]] ← uses ← [[Caddy 反向代理]]
## Contradictions
- 与其他文档暂无已知冲突

View File

@@ -1,62 +1,70 @@
---
title: "开发经验与项目规范整理文档"
type: source
tags: [vibe-coding, software-engineering, best-practices, coding-standards]
sources: []
last_updated: 2025-12-30
---
## Source File
- [[Vibe Coding/开发经验与项目规范整理文档]]
## Summary用中文描述
- 核心主题Vibe Coding 环境下的开发经验与项目规范最佳实践涵盖编码规范、系统架构原则、程序设计思想及基础设施微服务、Redis、消息队列
- 问题域:如何建立可持续维护的 AI 辅助开发项目;如何制定团队编码规范;如何通过规范提升 AI 生成的代码质量
- 方法/机制:
- 变量名维护方案(统一变量索引文件)
- 文件结构与命名规范(小写英文 + 下划线/小驼峰)
- 编码规范单一职责、DRY、模块化
- 系统架构原则(先梳理架构、小步迭代
- 程序设计核心思想(从问题出发、清晰命名、测试优先
- 微服务拆分原则(独立开发/部署/扩容
- Redis 缓存策略(提升读性能、降低 DB 压力
- 消息队列异步通信(解耦、削峰、异步任务
- 结论/价值:为 AI 辅助开发项目提供系统化规范框架,强调从问题出发而非代码出发,提升代码可维护性和团队协作效率
## Key Claims用中文描述
- 统一变量索引文件能降低命名冲突和语义不清晰带来的风险
- 编码规范中的「消费端 → 生产端 → 状态 → 变换」模型能清晰划分系统行为边界
- 系统开发应遵循「先理解需求 → 保持简单 → 测试驱动 → 小步迭代」的严谨流程
- 编程第一步永远是「你要解决什么问题」,而非直接写代码
- 注释解释「为什么」,而非「怎么做」
## Key Quotes
> "编程的第一步永远是:你要解决什么问题?" — 从问题出发而非代码
> "你写的代码是给别人理解的,不是来炫技的。" — 代码可读性优先
> "注释解释'为什么',不是'怎么做'。" — 合理注释原则
> "未测试的代码迟早会出问题。" — 测试优先
## Key Concepts
- [[单一职责原则]]:每个文件、类、函数应只负责一件事
- [[DRY原则]]Don't Repeat Yourself避免重复代码提炼公共逻辑
- [[模块化编程]]:将系统分解为独立模块,提高复用价值
- [[微服务架构]]:将系统拆解为独立开发、部署、扩容的服务
- [[Redis缓存]]:作为缓存提升系统读性能,降低数据库压力
- [[消息队列]]:用于服务之间的异步通信,实现解耦和削峰填谷
- [[输入-处理-输出模型]]:明确区分消费端(接收数据)、生产端(生成数据)、状态(存储信息)、变换(处理逻辑
- [[并发编程]]:区分共享资源、数据竞争、锁机制与异步处理的差异
## Key Entities
- 无特定实体提及,本文档为方法论文档
## Connections
- [[Vibe Coding]] ← 相关领域 ← 本文:提供 AI 辅助开发的项目规范框架
- [[单一职责原则]] ← 编码规范核心 ← [[DRY原则]] ← 模块化基础
- [[微服务架构]] ← 服务拆分原则 ← [[Redis缓存]] ← 性能优化手段
- [[消息队列]] ← 异步通信基础设施 ← 微服务间通信机制
## Contradictions
- 与传统软件开发方法冲突:
- 冲突点:传统强调"先理解代码再修改",本文强调"从问题出发而非代码出发"
- 当前观点Vibe Coding 环境下AI 生成代码量大,应先明确问题再让 AI 生成,而非逐步理解 AI 生成的代码
- 对方观点:传统软件工程强调对代码的深度理解是维护和修改的前提
---
title: "开发经验与项目规范整理文档"
type: source
tags: [vibe-coding, software-engineering, best-practices, coding-standards, microservices, redis, message-queue]
sources: []
last_updated: 2025-12-30
---
## Source File
- [[Vibe Coding/开发经验与项目规范整理文档]]
## Summary用中文描述
- 核心主题Vibe Coding 环境下的开发经验与项目规范最佳实践涵盖编码规范、系统架构原则、程序设计思想及基础设施微服务、Redis、消息队列
- 问题域:如何建立可持续维护的 AI 辅助开发项目;如何制定团队编码规范;如何通过规范提升 AI 生成的代码质量
- 方法/机制:
- 变量名维护方案(统一变量索引文件,格式:变量名 | 变量注释 | 出现位置 | 出现频率
- 文件结构与命名规范(子文件夹含 agents + claude.md文件命名小写英文 + 下划线/小驼峰)
- 编码规范单一职责、DRY、模块化;消费端/生产端/状态/变换模型
- 并发编程规范(共享资源、数据竞争、锁机制、并发 vs 异步区分
- 系统架构原则(先梳理架构 → 理解需求 → 保持简单 → 自动化测试 → 小步迭代
- 程序设计核心思想(从问题出发、清晰命名、单一职责、可读性优先、合理注释、测试优先
- 微服务拆分原则(独立开发/部署/扩容,服务间通过 API 通信
- Redis 缓存策略(提升读性能、降低 DB 压力、提供计数/锁/队列/Session 能力
- 消息队列异步通信(解耦、削峰填谷、异步任务处理)
- 结论/价值:为 AI 辅助开发项目提供系统化规范框架,强调从问题出发而非代码出发,提升代码可维护性和团队协作效率
## Key Claims用中文描述
- 统一变量索引文件能降低命名冲突和语义不清晰带来的风险,实现 AI 与团队全局命名一致性管理
- 编码规范中的「消费端 → 生产端 → 状态 → 变换」模型能清晰划分系统行为边界,明确输入→处理→输出各环节
- 系统开发应遵循「先理解需求 → 保持架构与代码简单 → 写可维护的自动化测试 → 小步迭代,不做大爆炸开发」的严谨流程
- 编程第一步永远是「你要解决什么问题」,复杂问题拆解为可独立完成的小单元,减少复杂度、魔法代码、晦涩技巧
- 注释解释「为什么」,而非「怎么做」;代码可读性优先,写的代码是给别人理解的,不是来炫技的
- 未测试的代码迟早会出问题,调试是程序员核心技能,永远不要把代码只放本地
- 微服务将系统拆解为多个独立开发、独立部署、独立扩容的服务,服务间通过 API 通信HTTP、RPC、MQ 等)
- Redis 通过缓存提升系统读性能、降低数据库压力并提供计数、锁、队列、Session 等扩展能力
- 消息队列实现服务间的异步通信,带来解耦、削峰填谷、异步任务处理等系统稳定性与吞吐收益
## Key Quotes
> "编程的第一步永远是:你要解决什么问题?" — 从问题出发而非代码
> "你写的代码是给别人理解的,不是来炫技的。" — 代码可读性优先
> "注释解释'为什么',不是'怎么做'。" — 合理注释原则
> "未测试的代码迟早会出问题。" — 测试优先
> "永远不要把代码只放本地。" — 调试是必修课
## Key Concepts
- [[单一职责原则]]每个文件、类、函数应只负责一件事提炼公共逻辑避免重复代码DRY
- [[DRY原则]]Don't Repeat Yourself避免重复代码提高复用价值
- [[模块化编程]]:将系统分解为独立模块,提高复用价值,函数化、类化、模块化
- [[输入-处理-输出模型]]:明确区分消费端(接收外部数据)、生产端(生成数据/输出结果)、状态(存储当前系统信息)、变换(处理状态/改变数据的逻辑)
- [[并发编程]]:区分共享资源、数据竞争、必要时加锁或使用线程安全结构,区分"并发处理"和"异步处理"的差异
- [[微服务架构]]:将系统拆解为独立开发、部署、扩容的服务,服务间通过 API 通信
- [[Redis缓存]]:作为缓存提升系统读性能,降低数据库压力,提供计数/锁/队列/Session 能力
- [[消息队列]]:用于服务之间的异步通信,实现解耦、削峰填谷、异步任务处理
- [[系统架构梳理]]:模块划分、输入输出、数据流向、服务边界、技术栈、依赖关系在写代码前先明确
## Key Entities
- 无特定商业实体提及,本文档为方法论文档,涵盖软件工程通用规范框架
## Connections
- [[Vibe Coding]] ← 相关领域 ← 本文:提供 AI 辅助开发的项目规范框架
- [[单一职责原则]] ← 编码规范核心 ← [[DRY原则]] ← 模块化基础
- [[微服务架构]] ← 服务拆分原则 ← [[Redis缓存]] ← 性能优化手段
- [[消息队列]] ← 异步通信基础设施 ← 微服务间通信机制
- [[输入-处理-输出模型]] ← 系统行为划分 ← [[系统架构梳理]] ← 开发前置工作
## Contradictions
- 与传统软件开发方法冲突:
- 冲突点:传统强调"先理解代码再修改",本文强调"从问题出发而非代码出发"
- 当前观点Vibe Coding 环境下AI 生成代码量大,应先明确问题再让 AI 生成,而非逐步理解 AI 生成的代码
- 对方观点:传统软件工程强调对代码的深度理解是维护和修改的前提

View File

@@ -1,49 +1,86 @@
---
title: "用Docker安装Apache Superset"
type: source
tags: [apache, bi, docker, mysql, superset]
date: 2026-04-14
---
## Source File
- [[raw/Home Office/用Docker安装Apache Superset.md]]
## Summary (用中文描述)
- 核心主题:通过 Docker 快速部署 Apache Superset 开源 BI 平台,包含镜像拉取、容器启动、管理员账户创建、数据库迁移、示例数据加载等完整 6 步初始化流程
- 问题域Home Server 场景下自托管 BI 可视化平台的 Docker 容器化部署
- 方法/机制:使用 Docker Hub 官方镜像 `apache/superset:GHA-19524015706`GHA 构建版本),通过 `docker pull` + `docker run` + `docker exec` 初始化三步骤完成部署,端口映射 8777:8088数据库使用内置 SQLite
- 结论/价值:提供一套可快速落地的自托管 BI 平台部署方案,适合家庭服务器场景的轻量级数据可视化
## Key Claims (用中文描述)
- Apache Superset 通过 Docker 容器化部署可实现一键启动,是 Home Server 场景下的轻量级 BI 可视化方案
- 通过 `superset fab create-admin` 命令行交互式创建首个管理员账户(用户名/邮箱/密码)
- 通过 `superset db upgrade` 执行数据库迁移,确保 Superset 元数据存储就绪
- 通过 `superset load_examples` 加载示例数据集,新用户快速熟悉 BI 平台功能
- 通过 `superset init` 完成初始化,使平台进入可用状态
## Key Quotes
> "docker run -d -p 8777:8088 -e \"SUPERSET_SECRET_KEY=*** --name superset apache/superset:GHA-19524015706"
> — 容器启动命令8777 映射到容器内 8088设置了安全密钥环境变量
> "docker exec -it superset superset fab create-admin --username admin --firstname Superset --lastname Admin --email admin@superset.com --password admin"
> — 管理员账户创建命令,通过 flask-appbuilder (fab) CLI 创建首个 admin 用户
## Key Concepts
- [[BI平台]]Business Intelligence 平台提供数据可视化、仪表盘构建、SQL 查询等功能
- [[Docker容器化部署]]:通过 Docker 镜像封装应用依赖,实现环境一致性和快速部署
- [[Flask-AppBuilder]]Superset 的 Web 框架,基于 Flask 的认证和权限管理组件
- [[数据库迁移]]:通过 `db upgrade` 命令初始化或升级 Superset 元数据数据库
## Key Entities
- [[Apache Superset]]Apache 软件基金会旗下的开源 BI 平台,支持多样化图表和仪表盘构建
- [[Docker]]容器化平台Superset 的部署底座
- [[MySQL]]Superset 支持的外部数据库后端(标签提及),默认使用 SQLite
## Connections
- [[Apache Superset]] ← deployed_by ← [[Docker]]
- [[Home Server Automation]] ← part_of ← [[家庭网络环境概览]]
- [[Apache Superset]] ← use_case ← [[数据可视化]]
- [[Portainer]] ← alternative_admin_ui ← [[Docker]]
## Contradictions
- 无冲突
---
title: "用Docker安装Apache Superset"
type: source
tags: [apache, bi, docker, mysql, superset]
date: 2026-04-14
---
## Source File
- [[raw/Home Office/用Docker安装Apache Superset.md]]
## Summary用中文描述
- **核心主题**:通过 Docker 容器快速部署 Apache Superset BI 平台
- **问题域**:数据可视化与 BI 工具的本地化安装
- **方法/机制**:使用 Docker Hub 官方镜像 `apache/superset`,通过 docker exec 进入容器执行初始化命令
- **结论/价值**:提供一套标准化、可复现的 Superset 部署流程,适合开发测试环境快速搭建
## Key Claims用中文描述
- Docker 容器化部署可将 Superset 安装时间压缩至分钟级别
- 通过 `superset fab create-admin` 命令创建管理员账户是初始化第一步
- `superset db upgrade` 确保数据库 Schema 与当前版本同步
- `superset load_examples` 加载示例数据集,便于新用户快速上手
- `superset init` 完成权限和缓存的初始化
## Key Quotes
> `docker pull apache/superset:GHA-19524015706` — 拉取 GitHub Actions 构建版本的 Apache Superset 官方镜像
>
> `docker run -d -p 8777:8088 -e "SUPERSET_SECRET_KEY=*** --name superset apache/superset:GHA-19524015706` — 容器启动命令,将宿主机的 8777 端口映射到容器的 8088 端口Superset 默认 Web UI 端口),设置 SECRET_KEY 环境变量
>
> `docker exec -it superset superset fab create-admin --username admin --firstname Superset --lastname Admin --email admin@superset.com --password admin` — 管理员账户创建命令,用于首次登录系统
## Key Concepts
- [[Docker]]容器化平台Superset 的部署底座
- [[Docker-Image]]`apache/superset` 官方镜像
- [[容器初始化]]docker exec 进入运行中的容器执行初始化命令的流程
- [[BI平台]]Business Intelligence 平台Superset 属于开源 BI 工具
- [[数据可视化]]:将数据库数据转化为图表/仪表盘的技术
## Key Entities
- [[Apache Superset]]:开源 BI 和数据探索平台,由 Apache 软件基金会维护,支持 SQL 查询、可视化仪表盘和数据源连接
- [[MySQL]]关系型数据库,在 Superset 中作为可选元数据存储(默认使用 SQLite
- [[Docker Hub]]:官方镜像仓库,`apache/superset` 的托管位置
## Connections
- [[Docker]] ← uses ← [[Apache Superset]]
- [[MySQL]] ← stores ← [[Apache Superset 元数据]]
- [[Docker]] ← extends ← [[Docker Compose]](生产环境推荐多容器协同)
- [[Apache Superset]] ← depends_on ← [[Flask]]Web 框架)
- [[Apache Superset]] ← depends_on ← [[SQLAlchemy]](数据库 ORM
## Contradictions
- 与 [[install-apache-superset-in-docker]] 无冲突:
- 两篇文档内容高度一致,均使用 `docker run` 单容器模式 + GHA 构建版本镜像,适合快速尝鲜
- 与 [[用docker安装portainer]] 同属 Home Office Docker 部署系列,可作为参考对照
## 安装步骤速查
```bash
# 1. 拉取镜像
docker pull apache/superset:GHA-19524015706
# 2. 运行容器
docker run -d -p 8777:8088 \
-e "SUPERSET_SECRET_KEY=***" \
--name superset \
apache/superset:GHA-19524015706
# 3. 创建管理员账户
docker exec -it superset superset fab create-admin \
--username admin \
--firstname Superset \
--lastname Admin \
--email admin@superset.com \
--password admin
# 4. 数据库迁移
docker exec -it superset superset db upgrade
# 5. 加载示例数据
docker exec -it superset superset load_examples
# 6. 初始化
docker exec -it superset superset init
```
访问地址:`http://localhost:8777`
默认凭据:`admin / admin`