ducktape
一个基于Bazel的个人基础设施配置管理仓库,统一管理多设备与服务的开发环境。
安装使用
复制下面这段提示词发给你的 AI(Claude / Cursor / TRAE / Codex / WorkBuddy 等),它会自动帮你完成安装:
帮我安装这个 AI Skill:ducktape。 它的用途是:一个基于Bazel的个人基础设施配置管理仓库,统一管理多设备与服务的开发环境。 完整的 Skill 内容见:https://321skill.com/skills/ducktape/raw/index.md 请读取该页面内容,如果是 SKILL.md 格式直接安装,如果是 README 提炼核心 prompt 后安装。
提示词包含完整的 Skill 内容链接,AI 读取后即可完成安装。你也可以 查看完整内容 确认无误。
使用示例
“我想在我的GPD Win Max 2上部署ducktape管理的点文件配置。”,它会引导你查看`nix/README.md`,并使用`home-manager switch`进行部署。或者
对AI说:“为我的新Python工具添加requests依赖。”,它会指导你修改`pyproject.toml`、生成Bazel锁文件并在BUILD中正确引用`@pypi//requests`。
介绍
Ducktape 是一个个人基础设施配置的单一代码仓库,旨在解决开发者管理多台设备(如个人笔记本、便携设备、VPS服务器)和复杂服务(如Kubernetes集群)时配置分散、环境不一致的问题。它通过Bazel作为统一的构建系统,集成了Python、Rust等语言的依赖管理和构建流程,并利用BuildBuddy实现远程缓存与构建执行,大幅提升构建速度。
使用上,开发者主要通过Bazel命令(如bb run)进行构建、测试和代码生成。配置变更(如添加依赖)遵循特定流程:修改pyproject.toml或Cargo.toml后,需通过文档指引重新生成锁文件,再由Bazel统一管理。点文件(dotfiles)通过Nix home-manager管理,禁止手动修改。
该仓库非常适合需要维护个人或小型团队多套开发环境、追求构建可重复性和效率的全栈开发者、运维工程师或智能体开发者。它尤其适合那些已经或计划使用Bazel、Nix,并希望将基础设施代码化的技术爱好者。
使用建议:初次接触需仔细阅读仓库内的README和链接文档,特别是关于锁文件生成、Gazelle使用以及RBE配置的部分。注意区分bb run与bbr命令的使用场景,并严格遵守点文件的管理规范,避免环境混乱。
核心特点
核心区别在于将Bazel构建系统深度应用于个人基础设施管理,实现了跨语言(Python/Rust)依赖与构建的绝对统一,并通过BuildBuddy RBE提供生产级远程缓存与构建能力,使个人项目的构建体验达到团队协作水平。
注意事项
不适合不熟悉Bazel、Nix等高级构建和配置管理工具的新手,或仅需管理单一简单项目的场景。
常见问题
如何添加一个新的Python依赖?
编辑`pyproject.toml`添加依赖,然后按照`devinfra/docs/lockfiles.md`文档重新生成锁文件`requirements_bazel.txt`,最后在BUILD文件中使用`@pypi//pkg`引用。
点文件(如.bashrc)在哪里修改?
点文件由Nix home-manager在`nix/home/`目录下管理,绝对不要直接在`~/`目录下编辑,部署方法见`nix/README.md`。
给 AI 助手的安装指引
如果你的 AI 编程助手(Claude Code、Cursor、TRAE 等)能看到这个页面,把下面这段发给它即可自动完成安装:
请访问 https://321skill.com/skills/ducktape/raw/index.md 读取 ducktape 的原始 Skill 定义(Markdown 格式),按其中说明在我的环境里完成安装和配置。
AI 可直接读取的原始 Markdown 地址:/skills/ducktape/raw/index.md(查看排版版本)