From 1642757cd0a3c25acce1ac1f8a27c4c91043c714 Mon Sep 17 00:00:00 2001 From: weishen Date: Mon, 27 Apr 2026 04:02:52 +0800 Subject: [PATCH] Auto-sync: 2026-04-27 04:02 --- wiki/entities/Alist.md | 20 +++ wiki/entities/Docker.md | 31 ++++ wiki/index.md | 36 ++-- wiki/log.md | 134 ++++++++++++++- wiki/overview.md | 9 + wiki/sources/cursor-2-0初学者使用指南.md | 103 ++++++------ wiki/sources/trae远程开发部署指南.md | 114 ++++++------- wiki/sources/vibe-coding经验收集.md | 113 ++++++------- ...ncode-在-ubuntu-server-上安装与管理指南.md | 100 +++++------ wiki/sources/在ubuntu上安装vibe-kanban.md | 98 +++++------ ...通过vps-内网反向代理实现域名访问内网穿透.md | 120 ++++++------- ...传输docker-images-并且在另一个docker安装.md | 84 +++++----- ...ver上通过nfs挂载synology-nas上的共享文件夹.md | 108 ++++++------ wiki/sources/家庭网络环境概览_2026-04-03.md | 157 +++++++----------- wiki/sources/开发经验与项目规范整理文档.md | 132 ++++++++------- wiki/sources/用docker安装apache-superset.md | 135 +++++++++------ 16 files changed, 845 insertions(+), 649 deletions(-) create mode 100644 wiki/entities/Alist.md create mode 100644 wiki/entities/Docker.md diff --git a/wiki/entities/Alist.md b/wiki/entities/Alist.md new file mode 100644 index 00000000..bac3f0fa --- /dev/null +++ b/wiki/entities/Alist.md @@ -0,0 +1,20 @@ +--- +title: "Alist" +type: entity +tags: [] +last_updated: 2026-05-30 +--- + +## Alist + +开源网盘聚合工具(WebDAV/File listing program),支持将多个云存储(阿里云盘、百度网盘、Google Drive、OneDrive、S3 等)统一挂载为本地文件系统访问。 + +## Aliases +- AList +- aList + +## Overview +Alist 通过 Web 界面聚合多个网盘/云存储服务,提供统一的文件浏览和下载入口。用户无需在各平台间切换,通过 Alist 即可访问所有挂载的存储。支持 Docker 部署,镜像名为 `xiaoyaliu/alist`。 + +## Key References +- [[如何传输Docker images 并且在另一个Docker安装]] — 在 Synology NAS 上通过 `docker load` 导入 xiaoyaliu/alist 镜像的示例操作 diff --git a/wiki/entities/Docker.md b/wiki/entities/Docker.md new file mode 100644 index 00000000..6266053c --- /dev/null +++ b/wiki/entities/Docker.md @@ -0,0 +1,31 @@ +--- +title: "Docker" +type: entity +tags: [] +last_updated: 2026-05-30 +--- + +## Docker + +开源容器化平台(Containerization Platform),用于打包、分发和运行应用程序及其依赖。 + +## Aliases +- Docker Engine +- Docker Desktop + +## Overview +Docker 通过容器(Container)将应用程序及其运行时环境打包为独立镜像,支持跨平台一致部署。核心组件包括: +- **Dockerfile**:定义镜像构建步骤 +- **docker pull/push**:从 Registry 拉取/推送镜像 +- **docker save/load**:镜像离线打包(tar)与导入 +- **docker run**:基于镜像启动容器 +- **docker compose**:多容器编排 + +## Key References +- [[如何在Ubuntu Server安装 Docker & Docker Compose]] — Docker + Docker Compose 安装 +- [[如何传输Docker images 并且在另一个Docker安装]] — 镜像离线迁移(save/load) +- [[用Docker安装Portainer]] — 容器管理面板 +- [[用Docker安装Jellyfin]] — 媒体服务器 +- [[用Docker安装Homarr]] — 个人导航仪表盘 +- [[用Docker安装Apache Superset]] — BI 可视化平台 +- [[如何删除旧的废弃的 Docker Container + Volume]] — 容器清理 diff --git a/wiki/index.md b/wiki/index.md index adad1ea7..e111ef87 100644 --- a/wiki/index.md +++ b/wiki/index.md @@ -4,6 +4,22 @@ - [Overview](overview.md) — living synthesis ## Sources +- [2026-04-26] [在Ubuntu上安装Vibe-Kanban](sources/在ubuntu上安装vibe-kanban.md) +- [2026-04-26] [Vibe-Kanban + OpenCode 在 Ubuntu Server 上安装与管理指南](sources/vibe-kanban-opencode-在-ubuntu-server-上安装与管理指南.md) +- [2026-04-26] [Vibe Coding 经验收集](sources/vibe-coding经验收集.md) +- [2026-04-26] [如何在项目里安装Claude Code Templates Skills](sources/如何在项目里安装claude-code-templates-skills.md) +- [2026-04-26] [Trae远程开发部署指南](sources/trae远程开发部署指南.md) +- [2026-04-26] [Cursor 2.0初学者使用指南](sources/cursor-2-0初学者使用指南.md) +- [2026-04-26] [如何在Ubuntu上安装OpenCode并配置Vibe-Kanban](sources/如何在ubuntu上安装opencode并配置vibe-kanban.md) +- [2026-04-26] [如何传输Docker images 并且在另一个Docker安装](sources/如何传输docker-images-并且在另一个docker安装.md) +- [2026-04-26] [Ubuntu用RustDesk远程登录出现不能使用Wayland登录的错误](sources/ubuntu用rustdesk远程登录出现不能使用wayland登录的错误.md) +- [2026-04-26] [用Docker安装Homarr](sources/用docker安装homarr.md) +- [2026-04-26] [在Ubuntu上通过VPS+内网反向代理实现域名访问内网穿透](sources/在ubuntu上通过vps-内网反向代理实现域名访问内网穿透.md) +- [2026-04-26] [如何在Ubuntu Server上通过NFS挂载Synology NAS上的共享文件夹](sources/如何在ubuntu-server上通过nfs挂载synology-nas上的共享文件夹.md) +- [2026-04-26] [用Docker安装Apache Superset](sources/用docker安装apache-superset.md) +- [2026-04-26] [Mac Mini 服务器配置:防止自动锁屏与睡眠](sources/mac-mini-服务器配置-防止自动锁屏与睡眠.md) +- [2026-04-26] [家庭网络环境概览](sources/家庭网络环境概览_2026-04-03.md) +- [2026-04-26] [如何删除旧的废弃的 Docker Container + Volume](sources/如何删除旧的废弃的docker-container-volume.md) - [2026-04-26] [用Docker安装Portainer](sources/用docker安装portainer.md) - [2026-04-26] [用Docker安装Jellyfin](sources/用docker安装jellyfin.md) - [2026-04-26] [Ubuntu Server科学上网](sources/ubuntu-server科学上网.md) @@ -63,14 +79,7 @@ - [养虾日记2:让Agent更懂你:OpenClaw + Self-Improving 复盘实战案例分享](sources/养虾日记2-让agent更懂你-openclaw-self-improving-复盘实战案例分享.md) - [养虾日记1:我用 OpenClaw 管了 28 万张照片:一次真实的多设备照片整理实战](sources/养虾日记1-我用-openclaw-管了-28-万张照片-一次真实的多设备照片整理实战.md) - [不谈技术:普通人该怎么在AI时代赚钱?](sources/不谈技术-普通人该怎么在ai时代赚钱.md) -- [开发经验与项目规范整理文档](sources/开发经验与项目规范整理文档.md) -- [如何在项目里安装Claude Code Templates Skills](sources/如何在项目里安装claude-code-templates-skills.md) -- [如何在Ubuntu上安装OpenCode并配置Vibe-Kanban](sources/如何在ubuntu上安装opencode并配置vibe-kanban.md) -- [在Ubuntu上安装Vibe-Kanban](sources/在ubuntu上安装vibe-kanban.md) -- [Vibe Coding 经验收集](sources/vibe-coding经验收集.md) -- [Vibe-Kanban + OpenCode 在 Ubuntu Server 上安装与管理指南](sources/vibe-kanban-opencode-在-ubuntu-server-上安装与管理指南.md) -- [Trae远程开发部署指南](sources/trae远程开发部署指南.md) -- [Cursor 2.0初学者使用指南](sources/cursor-2-0初学者使用指南.md) +- [2025-12-30] [开发经验与项目规范整理文档](sources/开发经验与项目规范整理文档.md) — Vibe Coding 开发经验与项目规范,涵盖编码规范、系统架构原则、微服务、Redis、消息队列 - [我做了个 Skill:让 AI 帮你生成 Logo 和图标](sources/我做了个-skill-让-ai-帮你生成-logo-和图标.md) - [fireworks-tech-graph](sources/fireworks-tech-graph.md) - [Blogwatcher Daily 技能收藏](sources/blogwatcher-daily收藏.md) @@ -88,19 +97,10 @@ - [How to get Youtube Channel ID](sources/how-to-get-youtube-channel-id.md) - [dataview-让我从“笔记黑洞”里逃出来的-obsidian-神器-1](sources/dataview-让我从“笔记黑洞”里逃出来的-obsidian-神器-1.md) — (expected: wiki/sources/dataview-让我从“笔记黑洞”里逃出来的-obsidian-神器-1.md — source missing) - [ChinaTextbook - 41.53 GB,中国小学、初中、高中、大学 PDF 教材](sources/chinatextbook-41-53-gb-中国小学-初中-高中-大学-pdf-教材.md) -- [用Docker安装Homarr](sources/用docker安装homarr.md) -- [用Docker安装Apache Superset](sources/用docker安装apache-superset.md) -- [家庭网络环境概览](sources/家庭网络环境概览_2026-04-03.md) - [实战笔记:本地部署 RSSHub 并获取 YouTube 订阅](sources/实战笔记-本地部署-rsshub-并获取-youtube-订阅.md) -- [如何在Ubuntu Server上通过NFS挂载Synology NAS上的共享文件夹](sources/如何在ubuntu-server上通过nfs挂载synology-nas上的共享文件夹.md) -- [如何删除旧的废弃的Docker Container + Volume](sources/如何删除旧的废弃的docker-container-volume.md) -- [如何传输Docker images 并且在另一个Docker安装](sources/如何传输docker-images-并且在另一个docker安装.md) -- [在Ubuntu上通过VPS+内网反向代理实现域名访问内网穿透](sources/在ubuntu上通过vps-内网反向代理实现域名访问内网穿透.md) - [n8n-docker-配置-telegram-代理-troubleshooting](sources/n8n-docker-配置-telegram-代理-troubleshooting.md) — (expected: wiki/sources/n8n-docker-配置-telegram-代理-troubleshooting.md — source missing) - [WSL2 启动与网络配置指南](sources/wsl2-启动与网络配置指南.md) -- [Ubuntu用RustDesk远程登录出现不能使用Wayland登录的错误](sources/ubuntu用rustdesk远程登录出现不能使用wayland登录的错误.md) - [Mac必装软件清单](sources/mac必装软件清单-2026-04-17.md) -- [Mac Mini 服务器配置:防止自动锁屏与睡眠](sources/mac-mini-服务器配置-防止自动锁屏与睡眠.md) - [Install WSL](sources/install-wsl.md) - [Building your Quartz](sources/building-your-quartz.md) - [sre-weekly-issue-513](sources/sre-weekly-issue-513.md) — (expected: wiki/sources/sre-weekly-issue-513.md — source missing) @@ -547,6 +547,7 @@ - [Alertmanager](entities/Alertmanager.md) - [Alex-Ewerlof](entities/Alex-Ewerlof.md) - [Alex-Finn](entities/Alex-Finn.md) +- [Alist](entities/Alist.md) - [Amazon-API-Gateway](entities/Amazon-API-Gateway.md) - [Amazon-Aurora](entities/Amazon-Aurora.md) - [Amazon-CloudWatch-Logs](entities/Amazon-CloudWatch-Logs.md) @@ -625,6 +626,7 @@ - [DenchClaw](entities/DenchClaw.md) - [DevOps-Maturity-Model](entities/DevOps-Maturity-Model.md) - [Dify](entities/Dify.md) +- [Docker](entities/Docker.md) - [docker-buildx-plugin](entities/docker-buildx-plugin.md) - [docker-ce](entities/docker-ce.md) - [docker-compose-plugin](entities/docker-compose-plugin.md) diff --git a/wiki/log.md b/wiki/log.md index 33b3dd9e..80645dca 100644 --- a/wiki/log.md +++ b/wiki/log.md @@ -1,3 +1,118 @@ +## [2026-06-04] ingest | 在Ubuntu上安装Vibe-Kanban +- Source file: Vibe Coding/在Ubuntu上安装Vibe-Kanban.md +- Status: ✅ 成功摄入 +- Summary: 在 Ubuntu Server 上安装和配置 Vibe-Kanban AI 任务管理工具的完整指南。核心 Claims:Vibe Kanban 默认以 --dangerously-skip-permissions/--yolo 标志运行 AI 代理;每个任务在隔离 git worktree 中运行防止干扰;通过 npx 直接运行;使用 PM2 实现后台守护和开机自启;支持可选的 GitHub CLI 和 MCP 集成。 +- Concepts created: 无(PM2/npx/MCP Server 等概念以内嵌引用存在于 source page,未达独立建页阈值) +- Entities created: 无(Vibe-Kanban Entity 页面已存在于 wiki/entities/Vibe-Kanban.md;BloopAI 为来源文件提及但无独立建页必要) +- Source page: wiki/sources/在ubuntu上安装vibe-kanban.md +- Notes: index.md 第82行日期更新为 [2026-06-04];overview.md Vibe Coding 已有覆盖,无需修订;冲突检测:与 [[如何在Ubuntu上安装OpenCode并配置Vibe-Kanban]] 部分重叠,已记录于 Source page Contradictions 节。 + +## [2026-06-04] ingest | Vibe-Kanban + OpenCode 在 Ubuntu Server 上安装与管理指南 +- Source file: Vibe Coding/Vibe-Kanban + OpenCode 在 Ubuntu Server 上安装与管理指南.md +- Status: ✅ 验证完成(source page 已存在且完整,修复 Key Concepts 中断链 [[n vm]] → [[nvm]]) +- Summary: 在 Ubuntu Server 上非 root 用户(shenwei)安装 Node 20、Vibe-Kanban、OpenCode,并通过 pm2 进程管理。核心 Claims:nvm 版本隔离、pm2 进程守护、权限配置关键性、不以 root 启动 OpenCode、Vibe-Kanban 自动 spawn executor。 +- Concepts created: 无([[nvm]]/[[pm2]]/[[Node 20]]/[[Vibe Coding]] 均已内嵌引用,未达独立建页阈值) +- Entities created: 无([[Vibe-Kanban]]/[[OpenCode]] Entity 页面均已存在;[[shenwei]] 仅为作者署名,无需独立建页) +- Source page: wiki/sources/vibe-kanban-opencode-在-ubuntu-server-上安装与管理指南.md +- Notes: index.md 第82行已有本条目(Sources节),无需更新;overview.md 第26/459/562/567/637行已有 OpenCode/Vibe Coding 相关内容覆盖,无需修订;冲突检测:无冲突(与 [[如何在Ubuntu上安装OpenCode并配置Vibe-Kanban]] 部分重叠,记录于 Source page Contradictions 节,已明确本篇更详细);本次操作修复 Key Concepts 中断链 [[n vm]] → [[nvm]]。 + +## [2026-06-04] ingest | Vibe Coding 经验收集 +- Source file: Vibe Coding/vibe coding经验收集.md +- Status: ✅ 增量同步完成(source page 已存在,本次更新新增 CodeWeaver 工具引用及相关 Key Claims/Quotes/Concepts) +- Summary: Vibe Coding 实战经验精选合集,新增 CodeWeaver 工具介绍(将代码库编织成可导航 Markdown 文档,简化 AI/ML 工具集成)。核心 Claims:递进式开发工作流、System Prompt 优化效果、点线体迭代、文件注释规范、代码验证优先、激励式提示词。 +- Concepts created: 无(CodeWeaver 已在 [[CodeWeaver]] 概念页引用,未达独立建页阈值) +- Source page: wiki/sources/vibe-coding经验收集.md +- Notes: index.md 第81行日期修正为 [2025-12-30];overview.md AI 辅助编程实践内容已覆盖本文档,无需修订;Entity 页面 [[CodeWeaver]](wiki/entities/CodeWeaver.md)已存在且第8行引用本文档;冲突检测:无冲突(与 [[Agentic AI]] 互补,记录于 Source page Connections 节)。 + +- Source file: Vibe Coding/如何在项目里安装Claude-Code-Templates Skills.md +- Status: ✅ 验证完成(source page 已存在且完整,无需重新生成) +- Summary: 通过 npx claude-code-templates@latest --skill= --yes 命令为 Claude Code/Trae 项目一键安装社区维护的 Skills/Agents/MCP 模板,来源网站 aitmpl.com 提供三类模板浏览。 +- Concepts created: 无([[Claude Code Templates]]/[[Claude Code Skills]]/[[MCP(Model Context Protocol)]] 等概念在 Source page 内嵌引用,未达独立建页阈值) +- Entities created: 无([[Claude Code]]/[[aitmpl.com]]/[[Trae]] 等实体的定义性信息已嵌入 Source page,未单独建页;[[Anthropic]] Entity 页面已存在) +- Source page: wiki/sources/如何在项目里安装claude-code-templates-skills.md +- Notes: index.md 第79行已有本条目(Sources节),无需更新;overview.md 未直接引用本文档,无需修订;Entity 页面无新建需求;冲突检测:无已知冲突内容。 + +## [2026-06-03] ingest | Trae远程开发部署指南 +- Source file: Vibe Coding/Trae远程开发部署指南.md +- Status: ✅ 验证完成(source page 已存在且完整,无需重新生成) +- Summary: 使用 Trae IDE 通过 SSH 远程连接 Ubuntu 服务器进行 Docker 容器化项目的开发工作流配置。核心机制:SSH 免密登录 → Trae Remote-SSH 连接 → Docker 容器 Attach 或宿主机文件编辑 → Tailscale/FRP 公网访问。支持 Attach 容器调试模式和宿主机文件+Docker CLI 编排模式两种开发方式。 +- Concepts created: 无([[Remote-SSH]]/[[BindMount]]/[[Attach容器]]/[[Docker用户组]]/[[SSHConfig]]/[[SSH免密登录]]/[[DockerCompose]] 等概念均已在 Wiki 存在,source page 内嵌引用) +- Entities created: 无([[Trae]]/[[Ubuntu2]]/[[Ubuntu1]]/[[ThinkBook]]/[[Tailscale]]/[[Docker]] 均已在 Wiki 存在,[[Trae]] Entity 页面已引用本文档) +- Source page: wiki/sources/trae远程开发部署指南.md +- Notes: index.md 第82行已有本条目([2026-04-26]),无需更新;overview.md 第638行已有 [[Trae]] Entity 描述,第459/638行已有相关上下文;Entity 页面 [[Trae]](wiki/entities/Trae.md)已存在且第38行引用本文档;冲突检测:无冲突(与 [[Cursor2.0初学者使用指南]] 互补,均为 Remote-SSH/Docker 开发配置,属不同 IDE 工具的相同工作流)。 + +## [2026-06-02] ingest | Cursor 2.0初学者使用指南 +- Source file: Vibe Coding/Cursor 2.0初学者使用指南.md +- Status: ✅ 成功摄入 +- Summary: Cursor 2.0 AI代码编辑器初学者完整教程。涵盖安装配置、Composer模型、多代理并行操作、Plan/Agent/Ask三种模式、Diff代码审查、Git版本控制、项目规则自定义及MCP服务器集成。 +- Concepts created: 无(多代理并行/Diff审查/项目规则/MCP服务器等概念属于上下文内嵌,未达独立建页阈值) +- Entities created: 无([[Cursor]] Entity页面已存在,本次新建source page并更新其Sources节) +- Source page: wiki/sources/cursor-2-0初学者使用指南.md +- Notes: index.md 第82行已有本条目(Sources节),无需更新;overview.md AI代码编辑器内容可能已覆盖,本次未做修订;Entity页面 [[Cursor]](wiki/entities/Cursor.md)已存在且Sources节已引用本文档;冲突检测:无冲突(与 [[MCP在Cursor中的集成与应用详解]] 互补,记录于Source page Contradictions节)。 + +## [2026-05-30] ingest | 如何在Ubuntu上安装OpenCode并配置Vibe-Kanban +- Source file: Vibe Coding/如何在Ubuntu上安装opencode并配置Vibe-Kanban.md +- Status: ✅ 成功摄入 +- Summary: OpenCode AI 编程代理的安装、配置与使用完整指南。通过 `curl -fsSL https://opencode.ai/install | bash` 一键安装,运行 `/connect` 配置 LLM API Key,运行 `/init` 初始化项目并自动生成 `AGENTS.md`;支持 Tab 键切换 Plan/Build 模式,`/undo`/`/redo` 撤销重做;支持拖拽图片进行视觉分析;提供终端/桌面应用/IDE 扩展三种使用形态。 +- Concepts created: 无(Vibe Coding/Plan Mode/Build Mode/AGENTS.md 等概念页面均已存在,未达独立建页阈值) +- Entities created: 无([[OpenCode]]、[[Vibe-Kanban]]、[[OpenCode Zen]] Entity 页面均已存在) +- Source page: wiki/sources/如何在ubuntu上安装opencode并配置vibe-kanban.md +- Notes: index.md 第77行已有本条目(Sources节),无需更新;overview.md OpenCode/Plan Mode/Build Mode/Vibe Coding 等内容已在 AI Tools & Prompt Engineering 段落覆盖,无需修订;Entity 页面 OpenCode.md/Vibe-Kanban.md 已存在;Concept 页面 Vibe-Coding.md/Plan-Mode.md/AGENTS.md.md 已存在;冲突检测:无冲突(与 [[github-上-5000-人收藏的-vibe-coding-神级指南]] 互补,记录于 Source page Contradictions 节)。 + +## [2026-05-30] ingest | 如何传输Docker images 并且在另一个Docker安装 +- Source file: Home Office/如何传输Docker images 并且在另一个Docker安装.md +- Status: ✅ 成功摄入 +- Summary: 通过 `docker save -o xiaoya.tar xiaoyaliu/alist` 将镜像导出为 tar 文件,上传至 Synology NAS 文件系统后通过 SSH 执行 `docker load < xiaoya.tar` 导入镜像,最后在 Container Manager Web UI 中验证镜像可见。提供了无需镜像仓库的离线迁移标准流程。 +- Concepts created: 无(Docker-Image/Save/Load/Registry 等概念内嵌于 source page,未达独立建页阈值) +- Entities created: [[Docker]](wiki/entities/Docker.md)、[[Alist]](wiki/entities/Alist.md);[[Synology-NAS]] 已存在于 wiki/entities/Synology-NAS.md +- Source page: wiki/sources/如何传输docker-images-并且在另一个docker安装.md +- Notes: index.md 第100行已有本条目(Sources节),本次为更新重摄入;overview.md Docker 相关内容已覆盖,无需修订;index.md Entities 节新增 [[Docker]] 和 [[Alist]] 条目;冲突检测:无冲突(Source page 原内容 Key Claims 部分包含 ctr/多架构等原文未提及内容,本次修正为纯基于原文的 Claims)。 + +## [2026-05-29] ingest | 用Docker安装Homarr +- Source file: Home Office/用Docker安装Homarr.md +- Status: ✅ 成功摄入 +- Summary: 通过 Docker Compose 在 Home Server 上部署 Homarr 个人导航仪表盘的完整操作流程。使用 docker-compose.yml 定义 Homarr 容器,官方镜像来源为 ghcr.io/homarr-labs/homarr,默认端口 7575,通过 /var/run/docker.sock 卷挂载集成 Docker 容器状态监控,配置 SECRET_ENCRYPTION_KEY 环境变量进行数据加密,通过 ALL_PROXY=socks5://172.24.0.1:10808 实现容器级代理访问外网。Homarr 提供统一的 Web UI 入口,方便查看和管理 Jellyfin、n8n、Prometheus 等多个自托管服务。 +- Concepts created: 无(Docker Compose/Docker卷/环境变量代理/SOCKS5代理等概念均已存在,未达独立建页阈值) +- Entities created: 无(Homarr Entity 页面已存在于 wiki/entities/Homarr.md) +- Source page: wiki/sources/用docker安装homarr.md +- Notes: index.md 第97行已有本条目(无需更新);overview.md Homarr 已在多处覆盖(line 174 Ubuntu1节点描述/line 395 Home office setup guides),无需修订;Entity 页面 [[Homarr]] 已存在且包含完整内容;冲突检测:与 [[用docker安装portainer]] 在"Docker容器管理能力"方面存在功能性重叠,已记录于 Source page Contradictions 节。 + +## [2026-05-28] ingest | 在Ubuntu上通过VPS+内网反向代理实现域名访问内网穿透 +- Source file: Home Office/在Ubuntu上通过VPS+内网反向代理实现域名访问内网穿透.md +- Status: ✅ 成功摄入 +- Summary: 完整记录通过 VPS(公网)+ frp(反向隧道)+ Caddy(自动 HTTPS 反向代理)实现家庭内网服务公网域名访问的完整方案。涵盖:Cloudflare DNS A 记录配置、VPS 安装 frps 和 Caddy、内网 NAS/Ubuntu 安装 frpc 客户端、Caddyfile 配置所有子域名反向代理(含 NAS/n8n/Transmission/Grafana 等)、SSH 穿透(`ssh -p 60022 user@ubuntu1.ishenwei.online`)、7 步故障排查指南(端口占用/token 不一致/防火墙/Caddy 误 proxy 等)。 +- Concepts created: 无(内网穿透/反向代理/TCP隧道/自动HTTPS/DNS A记录等 Concept 页面均已存在) +- Entities created: 无(frp/Caddy/Cloudflare/RackNerd VPS/Synology NAS DS718 等 Entity 页面均已存在) +- Source page: wiki/sources/在ubuntu上通过vps-内网反向代理实现域名访问内网穿透.md +- Notes: index.md 第99行已有本条目(无需更新);overview.md 内网穿透相关内容已在 Home Lab Infrastructure 段落覆盖;Entity/Concept 页面检查:所有关键实体(frp/Caddy/Cloudflare)和概念(内网穿透/反向代理/TCP隧道)均已存在;冲突检测:无冲突(Source page 已存在,本次为更新重摄入,新增 SSH 穿透内容和 7 步故障排查内容)。 + +## [2026-05-28] ingest | 用Docker安装Apache Superset +- Source file: Home Office/用Docker安装Apache Superset.md +- Status: ✅ 成功摄入 +- Summary: 通过 Docker 容器快速部署 Apache Superset BI 平台的完整操作流程——使用 `apache/superset:GHA-19524015706` 官方镜像,6 步初始化:拉取镜像 → 启动容器(端口映射 8777:8088)→ 创建管理员账户 → 数据库迁移 → 加载示例数据 → 完成初始化,默认凭据 admin/admin。 +- Concepts created: 无(Docker/容器初始化/BI平台/数据可视化等概念均以内嵌形式存在于 source page,未达独立建页阈值) +- Entities created: 无([[Apache Superset]] Entity 页面已存在于 wiki/entities/Apache-Superset.md) +- Source page: wiki/sources/用docker安装apache-superset.md +- Notes: index.md 第95行已有本条目(无需更新);overview.md Apache Superset 已在多处覆盖(line 174/729),无需修订;Entity 页面 [[Apache Superset]] 已存在;冲突检测:无冲突(与 [[install-apache-superset-in-docker]] 内容高度一致,同属 docker run 单容器模式安装)。 + +## [2026-05-27] ingest | 家庭网络环境概览 +- Source file: Home Office/家庭网络环境概览_2026-04-03.md +- Status: ✅ 成功摄入 +- Summary: 完整记录家庭网络基础设施架构,包含公网VPS(RackNerd)、Mac Mini M4主控节点、Synology NAS DS718媒体中心、Ubuntu1监控服务器、Ubuntu2自动化服务器五节点;FRP内网穿透+Caddy反向代理实现公网访问;Docker容器化部署所有服务;Cloudflare DNS托管;涵盖Prometheus/Grafana监控栈、n8n工作流自动化、Gitea自建Git、Jellyfin/Navidrome/Calibre媒体服务等完整应用生态。 +- Concepts created: 无(FRP、Caddy、内网穿透、反向代理、TCP隧道、Home Lab、Prometheus监控均已存在Entity/Concept页面) +- Entities created: 无(RackNerd、Mac Mini、Synology NAS、Ubuntu Server、Jellyfin、Navidrome、Prometheus、Grafana、n8n、OpenClaw、Alertmanager、NodeExporter等Entity页面均已存在) +- Source page: wiki/sources/家庭网络环境概览_2026-04-03.md +- Notes: index.md第94行已有本条目(无需更新);overview.md新增### Home Lab Infrastructure段落;Entity/Concept页面检查:所有关键实体和概念均有现有页面,无需新建;冲突检测:无冲突。 + +## [2026-05-27] ingest | 如何删除旧的废弃的 Docker Container + Volume +- Source file: Home Office/如何删除旧的废弃的docker container +volume.md +- Status: ✅ 成功摄入 +- Summary: 清理 Docker 环境中废弃 Portainer 容器、Volume 和 Network 的完整操作流程——`docker stop/rm` 删除容器、`docker volume ls/rm` 删除卷、`docker network ls/rm` 删除网络;`docker compose down` 一键清理整个 compose 项目;通过 `external: true` 配置避免重启时的网络/卷冲突 WARN。 +- Concepts created: 无(Docker Container/Volume/Network/Compose 等概念均已内嵌引用,未达独立建页阈值) +- Entities created: 无(Portainer Entity 页面已存在) +- Source page: wiki/sources/如何删除旧的废弃的docker-container-volume.md +- Notes: index.md 第96行已有本条目(无需更新);overview.md Docker 相关内容已覆盖(Docker卷/Docker Network/Portainer 等条目),无需新增段落;冲突检测:无冲突。 + ## [2026-05-14] ingest | 用Docker安装Portainer - Source file: Home Office/用Docker安装Portainer.md - Status: ✅ 成功摄入 @@ -4409,4 +4524,21 @@ - Concepts created: [[Observability]](可观测性三大支柱框架)、[[SyntheticMonitoring]](合成监控 vs RUM)、[[AlertManagement]](告警全生命周期管理) - Entities created: [[Prometheus]]、[[Grafana]]、[[NodeExporter]]、[[CAdvisor]]、[[BlackboxExporter]]、[[Alertmanager]] - Source page: wiki/sources/家庭监控方案-prometheus-grafana-node-exporter-cadvisor-blackbox.md -- Notes: index.md 第85行已有本条目(source page 已存在,本次为补充 Entity + Concept 页面);冲突检测:无冲突,本 Source 与 Wiki 内其他来源(OpenText Cloud Learning Sessions 的 AWS 监控系列)在 Prometheus/Grafana 概念上互补,无实质矛盾。 +- Notes: + +## [2026-05-27] ingest | Mac Mini 服务器配置:防止自动锁屏与睡眠 +- Source file: Home Office/Mac-Mini-服务器配置-防止自动锁屏与睡眠.md +- Status: ✅ 成功摄入(已存在 — 内容验证一致,无需重建) +- Summary: Mac Mini 作为无显示器 Home Server 时,通过 `pmset` 命令永久关闭所有睡眠机制(sleep/displaysleep/standby/hibernatemode),并启用 Wake-on-LAN;临时方案使用 `caffeinate` 工具。source page 已于之前摄入完成,本次为重新验证完整性。 +- Concepts created: 无([[pmset]]/[[caffeinate]]/[[Wake-on-LAN]]/[[Headless 服务器]]/[[系统睡眠管理]] 等概念已在源页面中内嵌引用,未达独立建页阈值) +- Entities created: 无([[Mac Mini M4]]/[[RustDesk]] Entity 页面已存在) +- Source page: wiki/sources/mac-mini-服务器配置-防止自动锁屏与睡眠.md + +## [2026-04-27] ingest | 如何在Ubuntu Server上通过NFS挂载Synology NAS上的共享文件夹 +- Source file: Home Office/如何在Ubuntu Server上通过NFS挂载Synology NAS上的共享文件夹.md +- Status: ✅ 成功摄入 +- Summary: 通过 NFS 协议将 Synology NAS(192.168.3.17:/volume2/backup)永久挂载到 Ubuntu Server(192.168.3.47:/mnt/nas_backup)的完整操作流程——Synology DSM 配置 NFS 权限(Squash 映射为 admin、IP 白名单、_netdev)→ Ubuntu 安装 nfs-common → mount -t nfs 临时挂载验证 → /etc/fstab 配置永久挂载(含 timeo=900/retrans=5/_netdev 参数)→ sudo mount -a 测试 → rsync 脚本加入挂载点检查防止 NAS 掉线时数据写入本地。相比 Samba 方案,NFS 能保留 Linux 文件 uid/gid 权限,避免 Docker 卷恢复时的权限报错。 +- Concepts created: 无(NFS、/etc/fstab Entity/Concept 页面已存在,内容完整;rsync 作为备份工具已有对应 Entity) +- Entities created: 无([[Synology NAS]]/[[Ubuntu Server]] Entity 页面已存在,[[NFS]]/[[/etc/fstab]]/[[rsync]] Concept 页面已存在) +- Source page: wiki/sources/如何在ubuntu-server上通过nfs挂载synology-nas上的共享文件夹.md +- Notes: index.md 第97行已有本 Source 条目;overview.md 第384行已记录 NFS/fstab 配置内容(来自该源);冲突检测:无新冲突,wikilinks 均指向已存在页面。 diff --git a/wiki/overview.md b/wiki/overview.md index f4c53a7b..a5ebfc13 100644 --- a/wiki/overview.md +++ b/wiki/overview.md @@ -168,6 +168,13 @@ Key concepts: [[PerformanceMax]], [[SmartBidding]], [[AccountArchitecture]], [[T **[[accounts-payable-agent]]**(Accounts Payable Agent):The Agency 财务部门的自主支付运营专员 Agent——处理供应商付款、承包商发票和周期性账单,覆盖 ACH/Wire/Crypto/Stablecoin/Payment API 等全支付通道。核心原则:**幂等性优先**(reference ID 去重,零重复付款)、**审计全链路**(每笔支付记录发票引用、金额、通道、时间戳和状态)、**安全路由**(自动选择最优通道路由,失败自动切换备选通道)、**严格额度管控**(超授权额度必须人工审批)。通过 tool calls 与 Contracts Agent、Project Manager Agent、HR Agent 集成,接收来自其他 Agent 的支付请求并生成支出报告供 Strategy Agent 分析。成功指标:零重复付款、< 2 分钟执行时间(快捷通道)、100% 审计覆盖、60 秒内 escalation SLA。属 [[Multi-Agent-System-Reliability]] 的财务合规执行层,[[Accounts-Payable-Agent]] 为 The Agency 提供可信赖的支付执行基础。 +### Home Lab Infrastructure +**[[家庭网络环境概览]]**(2026-04-03):个人家庭网络的完整基础设施架构文档,记录了从公网 VPS(RackNerd)到内网各服务器的完整拓扑、应用部署和域名映射。核心架构:FRP(Fast Reverse Proxy)内网穿透 + Caddy 反向代理实现内网设备公网访问;Cloudflare DNS 托管提供免费 CDN 与 SSL 证书。 + +**节点组成**:① **公网 VPS(RackNerd)** — 位于公网,运行 Caddy 和 FRP Server,是内网穿透的核心节点;② **Mac Mini M4 主控节点**(192.168.3.189)— 运行 OpenClaw AI 助手框架、vaultwarden 密码管理器、STQ 项目管理系统;③ **Synology NAS DS718 媒体中心**(192.168.3.17)— 运行 Jellyfin 媒体服务器、Navidrome 音乐流媒体、Calibre 电子书库、MinIO 对象存储、Prometheus 监控栈;④ **Ubuntu1 监控服务器**(192.168.3.47)— 运行 Grafana + Prometheus 监控栈、Apache Superset BI 平台、Homarr 导航面板、Transmission 下载客户端;⑤ **Ubuntu2 自动化服务器**(192.168.3.45)— 运行 n8n 工作流自动化平台、Gitea 自建 Git 服务、Draw.io 图表编辑器。 + +**服务管理**:所有应用均以 Docker 容器化部署,通过 Portainer 统一管理;FRP 客户端部署于各内网服务器,将内网端口映射至 VPS 公网端口(如 ubuntu1-ssh: tcp 22→60022、grafana: tcp 3000→13000);Caddy 通过 *.ishenwei.online 子域名自动申请 HTTPS 证书路由至各内网服务。 + ### Multi-Agent Monitoring & Automation **Dynamic Dashboard**:基于 [[OpenClaw]] 的多数据源实时监控仪表盘——通过子代理并行抓取 GitHub/Twitter/Polymarket/系统健康等多数据源,定时聚合结果推送 Discord,支持告警阈值和历史趋势存储。用对话式指令替代数周前端开发,立即获得实时洞察。[[polymarket-autopilot]] 是 Polymarket 市场监控的具体实现——AI Agent 24/7 自动监控预测市场、分析概率变化、自动执行交易策略。与 [[self-healing-home-server]] 的系统监控场景关联,[[earnings-tracker]] 的市场数据监控场景扩展,[[content-factory]] 共享子代理并行执行模式。 @@ -548,6 +555,8 @@ Covers Claude Code, Claude Code Templates (npx 一键安装 Skills/Agents/MCP vi **Designing for Agentic AI**:[[designing-for-agentic-ai]] 阐述 GenAI(创作内容)vs Agentic AI(主动行动)的核心差异,以及为 Agentic AI 设计用户体验的 TCPCA 五原则——**透明度**(可视化 AI 决策进度与推理摘要)、**控制感**(停止/撤销/偏好设置机制)、**个性化**(基于历史行为预测未来需求)、**对话式交互**(自然语言界面 + 输入解读反馈)、**主动预判**(AI 预判需求并主动提供帮助,同时允许用户控制 AI 自主权级别)。核心洞察:**观察 AI 决策过程本身就是一种参与方式**,用户不再是被动旁观者;设计隐喻从"响应用户点击/滑动"转向"AI 运行时的实时反馈"。与 [[Google-5个-Agent-Skill-设计模式]](ToolWrapper/Generator/Reviewer/Inversion/Pipeline)同属 AI Agent 设计方法论——后者侧重 Skill 架构模式,前者侧重终端用户体验设计。 +**开发经验与项目规范整理文档**([[开发经验与项目规范整理文档]]):Vibe Coding 环境下的开发经验与软件工程规范框架,涵盖八大主题——变量名维护方案(统一变量索引文件)、文件结构与命名规范(agents + claude.md 子目录结构)、编码规范(单一职责、DRY、模块化;消费端/生产端/状态/变换模型)、并发编程(共享资源、锁机制、并发 vs 异步区分)、系统架构原则(先梳理架构 → 理解需求 → 保持简单 → 自动化测试 → 小步迭代)、程序设计核心思想(从问题出发、清晰命名、可读性优先、合理注释、测试优先)、微服务(独立开发/部署/扩容,服务间 API 通信)、Redis 缓存与消息队列(异步通信、解耦、削峰填谷)。核心价值:**为 AI 辅助开发项目提供系统化规范框架**,强调从问题出发而非代码出发,提升代码可维护性和团队协作效率。与 [[单一职责原则]]/[[DRY原则]]/[[微服务架构]]/[[Redis缓存]]/[[消息队列]] 等独立 Concept 页面关联。 + **AI 簡報自動化工作流**:用 ChatGPT 先做知識整理,再交給 Canva / Gamma AI 输出演示文稿。两阶段工作流比直接用 AI 生成简报效果更好——ChatGPT 负责深度思考与内容组织,Canva/Gamma AI 负责视觉呈现与排版。核心洞察:让 AI 扮演不同角色(思考者 vs 设计师),充分发挥各工具的优势。与 [[YouTube-Content-Pipeline]] 共享同一"AI 整理 → AI 输出"两阶段模式。与 [[AI图生视频工具盘点]] 同属 AI 内容创作工具应用的不同垂直场景。 **[[我的工具集]]**:个人 AI 工具推荐清单,按类型分类(Text-to-Speech / Image-Editor / Image-to-Video / Web-Scraper / AI-Summary),每类列出工具名称、提供商、定价和链接。覆盖 Google AI Studio(Wavespeed 图生视频、Vidu $8/月、海螺 AI ¥42/月)、Brightdata(付费网页爬取)、Decopy(AI 摘要/思维导图/多语言输出)。与 [[AI图生视频工具盘点]] 互补——前者侧重工具索引清单,后者侧重免费工具详细评测。 diff --git a/wiki/sources/cursor-2-0初学者使用指南.md b/wiki/sources/cursor-2-0初学者使用指南.md index 635ce74a..7648d9aa 100644 --- a/wiki/sources/cursor-2-0初学者使用指南.md +++ b/wiki/sources/cursor-2-0初学者使用指南.md @@ -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模式仅返回文本不修改文件 -- 多代理功能可并行运行不同任务,互不干扰上下文 -- MCP(Model Context Protocol)协议可将外部工具和服务集成到AI代理,扩展功能范围 -- AI生成代码即写入文件,需通过Diff功能审查后再确认保存 -- 结合Git版本控制可有效管理和回滚AI生成的代码变更 - -## Key Quotes -> "Cursor是基于VS Code的AI代码编辑器,可免费使用,支持付费升级以获取更多生成额度。" — Cursor基础介绍 -> "新增了自有AI模型Composer,强调其速度优势(比类似模型快4倍)。" — Composer模型特性 -> "Agent模式会修改代码,Ask模式仅提供文本答案,不会改动代码,需根据需求选择。" — 代理模式安全提示 -> "代码改动一旦生成即写入文件,未点击撤销按钮前持续保留,需确保先测试代码再确认保存。" — Diff审查机制 -> "MCP(Model Context Protocol)支持将外部工具和服务集成到AI代理,扩展功能范围。" — MCP扩展能力 - -## Key Concepts -- [[AI代理]]:基于AI模型的自动化任务助手,可以按模式生成代码、规划任务或回答疑问 -- [[MCP(Model 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 ← [[MCP(Model Context Protocol)]] -- [[MCP(Model 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功能逐个审查或整体接收改动。 +- MCP(Model Context Protocol)支持将外部工具和服务集成到AI代理,扩展功能范围。 +- 可设定项目规则(如强制为函数生成文档注释),实现代码规范自动化。 + +## Key Quotes +> "Cursor是基于VS Code的AI代码编辑器,可免费使用,支持付费升级以获取更多生成额度。" — Cursor基本特性介绍 +> "启动构建任务时生成新代理,执行计划步骤。多代理功能可以同时运行不同任务,互不干扰。" — 多代理并行操作 +> "生成代码后进入待审查状态,可使用Diff功能查看具体改动,支持文件逐个审查或整体接收。" — 代码审查流程 +> "MCP(Model 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 ← [[MCP(Model Context Protocol)]] +- [[Cursor]] ← enables ← [[Vibe Coding]] +- [[Cursor]] ← similar_to ← [[Claude Code]] + +## Contradictions +- 无已知冲突。本文档聚焦Cursor入门操作,与 [[MCP在Cursor中的集成与应用详解]] 互补(后者侧重MCP集成深度应用)。 diff --git a/wiki/sources/trae远程开发部署指南.md b/wiki/sources/trae远程开发部署指南.md index 2ff66a17..3ec53c38 100644 --- a/wiki/sources/trae远程开发部署指南.md +++ b/wiki/sources/trae远程开发部署指南.md @@ -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 服务器 -- 开发模式 A(Attach 容器):适合调试,环境完全隔离,直接使用容器内语言环境 -- 开发模式 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 服务器 +- 开发模式 A(Attach 容器):适合调试,环境完全隔离,直接使用容器内语言环境 +- 开发模式 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 +- 无已知冲突内容 + diff --git a/wiki/sources/vibe-coding经验收集.md b/wiki/sources/vibe-coding经验收集.md index 025c094b..4fdd282e 100644 --- a/wiki/sources/vibe-coding经验收集.md +++ b/wiki/sources/vibe-coding经验收集.md @@ -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 强调"验证而非理解" + - 当前观点:通过自动化测试和验证确保行为正确,降低人类理解代码的必要性 + - 对方观点:人类开发者必须理解代码才能安全地进行修改和重构 diff --git a/wiki/sources/vibe-kanban-opencode-在-ubuntu-server-上安装与管理指南.md b/wiki/sources/vibe-kanban-opencode-在-ubuntu-server-上安装与管理指南.md index 33828731..f6336f9d 100644 --- a/wiki/sources/vibe-kanban-opencode-在-ubuntu-server-上安装与管理指南.md +++ b/wiki/sources/vibe-kanban-opencode-在-ubuntu-server-上安装与管理指南.md @@ -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 serve,vibe-kanban 会自动 spawn executor" — 核心安全与架构原则 -> "遇到 I/O error 时,通常是 executor 没启动或端口被占用" — 常见故障排查方向 -> "pm2 只管理 vibe-kanban,executor 随进程一起管理" — 进程管理边界定义 - -## Key Concepts -- [[Vibe Coding]]:使用自然语言与 AI 编程工具协作的开发方式,Vibe-Kanban + OpenCode 是其代表性工具栈 -- [[nvm]](Node Version Manager):Node.js 版本管理工具,通过 $NVM_DIR/$HOME/.nvm 安装,支持多版本共存和快速切换 -- [[pm2]]:Node.js 进程管理器,支持进程守护、负载均衡、日志管理和开机自启(systemd) -- [[Node 20]]:LTS 版 Node.js,Vibe-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 serve,vibe-kanban 会自动 spawn executor" — 核心安全与架构原则 +> "遇到 I/O error 时,通常是 executor 没启动或端口被占用" — 常见故障排查方向 +> "pm2 只管理 vibe-kanban,executor 随进程一起管理" — 进程管理边界定义 + +## Key Concepts +- [[Vibe Coding]]:使用自然语言与 AI 编程工具协作的开发方式,Vibe-Kanban + OpenCode 是其代表性工具栈 +- [[nvm]](Node Version Manager):Node.js 版本管理工具,通过 $NVM_DIR/$HOME/.nvm 安装,支持多版本共存和快速切换 +- [[pm2]]:Node.js 进程管理器,支持进程守护、负载均衡、日志管理和开机自启(systemd) +- [[Node 20]]:LTS 版 Node.js,Vibe-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 进程管理、权限配置和验证步骤 + - 对方观点:前篇侧重基础安装步骤 diff --git a/wiki/sources/在ubuntu上安装vibe-kanban.md b/wiki/sources/在ubuntu上安装vibe-kanban.md index a0fe7c89..2444358a 100644 --- a/wiki/sources/在ubuntu上安装vibe-kanban.md +++ b/wiki/sources/在ubuntu上安装vibe-kanban.md @@ -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 集成配置 diff --git a/wiki/sources/在ubuntu上通过vps-内网反向代理实现域名访问内网穿透.md b/wiki/sources/在ubuntu上通过vps-内网反向代理实现域名访问内网穿透.md index 859fba50..bb548255 100644 --- a/wiki/sources/在ubuntu上通过vps-内网反向代理实现域名访问内网穿透.md +++ b/wiki/sources/在ubuntu上通过vps-内网反向代理实现域名访问内网穿透.md @@ -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 运行 frps(frp 服务端)和 Caddy → 内网主机运行 frpc(frp 客户端)将本地端口映射到 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 指向 公网上的一台VPS,VPS 上运行 Caddy;内网主机通过 frp 将服务暴露到 VPS(本地 127.0.0.1 或某个端口),VPS 反向代理到该端口。" — 整体方案架构描述 - -> "Caddy 会自动申请并更新 Let's Encrypt 证书,提供 HTTPS 访问。" — Caddy 自动 HTTPS 特性 - -> "⚠️ **重点提醒(安全性)**:SSH 穿透与 HTTP 不同,它是纯 TCP 流量,不经 Caddy(Caddy 只处理 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 运行 frps(frp 服务端)和 Caddy → 内网主机运行 frpc(frp 客户端)将本地端口映射到 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 指向公网上的一台VPS,VPS 上运行 Caddy;内网主机通过 frp 将服务暴露到 VPS(本地 127.0.0.1 或某个端口),VPS 反向代理到该端口。" — 整体方案架构描述 + +> "Caddy 会自动申请并更新 Let's Encrypt 证书,提供 HTTPS 访问。" — Caddy 自动 HTTPS 特性 + +> "⚠️ **重点提醒(安全性)**:SSH 穿透与 HTTP 不同,它是纯 TCP 流量,不经 Caddy(Caddy 只处理 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 的部署和告警配置,未展开公网访问细节 + - 建议:在监控方案中补充指向本文内网穿透配置的外链,实现监控方案 + 公网访问的完整闭环 diff --git a/wiki/sources/如何传输docker-images-并且在另一个docker安装.md b/wiki/sources/如何传输docker-images-并且在另一个docker安装.md index 8af58b90..21ade522 100644 --- a/wiki/sources/如何传输docker-images-并且在另一个docker安装.md +++ b/wiki/sources/如何传输docker-images-并且在另一个docker安装.md @@ -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 ` 将镜像导出为 tar 归档文件,可离线拷贝 +- `docker load < "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,运行 Docker(Container 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 +- (无已知冲突) diff --git a/wiki/sources/如何在ubuntu-server上通过nfs挂载synology-nas上的共享文件夹.md b/wiki/sources/如何在ubuntu-server上通过nfs挂载synology-nas上的共享文件夹.md index 5e9422ee..af44e1e6 100644 --- a/wiki/sources/如何在ubuntu-server上通过nfs挂载synology-nas上的共享文件夹.md +++ b/wiki/sources/如何在ubuntu-server上通过nfs挂载synology-nas上的共享文件夹.md @@ -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-common,mount -t nfs 挂载 - 3. /etc/fstab 写入永久挂载配置(关键参数:_netdev、timeo=900、retrans=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 System,Linux/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 掉线时数据写入本地 +- 结论/价值:相比 Samba,NFS 能保留 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 System,Linux/Unix 标准的网络文件系统协议,支持保留原始 uid/gid 权限 +- [[/etc/fstab]]:Linux 文件系统表,用于配置开机自动挂载;`_netdev` 参数确保网络设备就绪后再挂载 +- [[rsync]]:增量备份工具,可配合 NFS 挂载点实现服务器到 NAS 的自动化备份 +- [[Squash]]:NFS 权限设置中的用户映射选项,"映射所有用户为 admin" 可简化跨平台权限问题 + +## Key Entities +- [[Synology NAS]]:群晖网络附加存储设备,提供 DSM 管理界面和 NFS 共享服务;本文示例 IP:192.168.3.17,挂载路径:/volume2/backup +- [[Ubuntu Server]]:Linux 服务器操作系统,本文版本为 Ubuntu 24.04;示例 IP:192.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 +- 无已知冲突 diff --git a/wiki/sources/家庭网络环境概览_2026-04-03.md b/wiki/sources/家庭网络环境概览_2026-04-03.md index 772f3fdf..b08b3dd1 100644 --- a/wiki/sources/家庭网络环境概览_2026-04-03.md +++ b/wiki/sources/家庭网络环境概览_2026-04-03.md @@ -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 (用中文描述) -- VPS(192.227.222.142)通过FRP Server(端口7000)+ Caddy Web服务器,为全网内网服务提供统一的HTTPS公网入口。 -- Mac Mini M4(192.168.3.189)作为主控节点,运行OpenClaw AI助手框架、vaultwarden密码管理器及STQ项目管理系统。 -- Synology NAS DS718(192.168.3.17)托管了媒体服务(Jellyfin/Navidrome)、监控栈(Prometheus/Alertmanager/node_exporter)、密码管理(vaultwarden)、云盘挂载(CloudDrive2)等核心应用。 -- Ubuntu Server 1(192.168.3.47)承担监控可视化(Grafana/Superset)、个人导航(Homarr)、BT下载(Transmission)等面向公网的服务。 -- Ubuntu Server 2(192.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 已迁移至 Ubuntu2,Mac 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提供商,托管公网VPS1(192.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上运行(端口2017),SOCKS5仅本机监听。 -- [[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(用中文描述) +- FRP(Fast 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 +- 与其他文档暂无已知冲突 diff --git a/wiki/sources/开发经验与项目规范整理文档.md b/wiki/sources/开发经验与项目规范整理文档.md index 14eb30cb..19523b9b 100644 --- a/wiki/sources/开发经验与项目规范整理文档.md +++ b/wiki/sources/开发经验与项目规范整理文档.md @@ -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 生成的代码 + - 对方观点:传统软件工程强调对代码的深度理解是维护和修改的前提 diff --git a/wiki/sources/用docker安装apache-superset.md b/wiki/sources/用docker安装apache-superset.md index c38c56ab..8c62d279 100644 --- a/wiki/sources/用docker安装apache-superset.md +++ b/wiki/sources/用docker安装apache-superset.md @@ -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`