这是一个个人 dotfiles 仓库,用来管理、复现和演进我的开发环境。
v0.1 的目标不是一次性接管整台机器,而是先建立一个安全、保守、可审计的基础骨架。真实配置会在人工 review 后逐步迁移。
这是 dbvc 的个人配置仓库。其他人可以 fork 或参考结构,但不要在未审查内容前直接 apply 到自己的 $HOME。
第一次运行最终的 chezmoi apply 前,先检查 dot_config/git/config.tmpl。当前文件仍使用占位用户名和邮箱。
已有 shell、Git、终端配置时,先看风险,再备份,再应用:
bash scripts/doctor.sh
bash scripts/backup-existing.sh --dry-run
bash scripts/backup-existing.sh --yes
chezmoi diff --source "$PWD"
chezmoi apply --source "$PWD"新机器上先检查工具链,再安装 Brewfile 中缺失的 CLI,再应用 dotfiles:
bash scripts/doctor.sh
bash scripts/bootstrap-macos.sh --dry-run
bash scripts/bootstrap-macos.sh --yes
chezmoi diff --source "$PWD"
chezmoi apply --source "$PWD"bootstrap-macos.sh --yes 只会运行 Homebrew bundle,不会 apply dotfiles,也不会覆盖现有 $HOME 配置。
如果 chezmoi 还不可用,先运行 bash scripts/bootstrap-macos.sh --yes 安装 Brewfile 中的基础工具,再回到 chezmoi diff。
chezmoi 会把仓库里的源文件映射到 $HOME:
| 仓库文件 | 本地目标 |
|---|---|
dot_zshrc |
~/.zshrc |
dot_config/git/config.tmpl |
~/.config/git/config |
dot_config/git/ignore |
~/.config/git/ignore |
dot_config/mise/config.toml |
~/.config/mise/config.toml |
dot_config/ghostty/config |
~/.config/ghostty/config |
README、docs、scripts、Brewfile、legacy .gitconfig* 和 surge/ 不会被 chezmoi apply 到 $HOME。
- Git 全局配置模板和全局 ignore
- Zsh 基础配置
- Homebrew
Brewfile - mise 配置占位
- Ghostty 配置占位
- macOS bootstrap 检查脚本
- doctor、backup、import 辅助脚本
- 安全规则、设计决策和机器策略文档
- 真实 secrets、API key、token、SSH private key
- 项目级
.env - 公司内部配置、内部域名、内部 registry
- 浏览器 profile 和登录态
- 完整系统镜像
- Nix / nix-darwin / Ansible / Docker
- 大型 Neovim、VS Code、Cursor 配置
- macOS defaults 全量管理
根目录里的 .gitconfig、.gitconfig_personal、.gitconfig_work 和 surge/ 会暂时保留。
它们在 v0.1 中只作为历史参考,不会被 chezmoi apply 到 $HOME。后续可以用单独 commit 把它们模板化或迁移到新的结构中。
只想检查状态、不写入任何文件时,可以单独运行:
bash scripts/doctor.sh
bash scripts/bootstrap-macos.sh --dry-run
bash scripts/backup-existing.sh --dry-run
bash scripts/import-existing.sh --dry-runchezmoi apply 不是配置合并工具。它会根据仓库里的源文件生成目标文件,并把结果写到 $HOME 对应路径。
如果目标路径已经有本地文件,例如 ~/.zshrc 或 ~/.config/git/config,应用后它可能会被仓库生成的版本替换。第一次在现有电脑上使用时,先备份、再预览、最后再应用:
bash scripts/backup-existing.sh --dry-run
bash scripts/backup-existing.sh --yes
chezmoi diff --source "$PWD"
chezmoi apply --source "$PWD"如果现有本地配置里有 token、API key 或代理等敏感内容,chezmoi diff 可能会把这些内容显示在终端里。不要把未经审查的 diff 输出贴到公开位置或发给外部工具。
当前 dot_config/git/config.tmpl 仍使用占位用户名和邮箱。第一次 apply 前先改成合适的公开信息,或者先不要应用 Git 配置。
检查 Brewfile 中的工具是否已经安装:
brew bundle check --file Brewfile需要明确确认后再安装缺失工具:
bash scripts/bootstrap-macos.sh --yesbootstrap-macos.sh 不会静默安装 Homebrew,也不会覆盖真实 dotfiles。
在现有电脑上使用时,先完成上面的备份步骤。
预览将要应用的配置:
chezmoi diff --source "$PWD"确认模板和内容都安全后再应用:
chezmoi apply --source "$PWD"本仓库的 .chezmoiignore 会排除 README、文档、脚本、Brewfile、legacy 配置和 surge/,只让 v0.1 的 dotfile 源进入 chezmoi 目标状态。
dot_config/git/config.tmpl:先替换 Git 用户名、邮箱和 editor placeholder。dot_zshrc:公共 shell 习惯放这里,私人或机器特定内容放~/.zshrc.local。dot_config/ghostty/config:v0.1 只保留占位,真实偏好下个版本再整理。dot_config/mise/config.toml:当前只是未来使用 mise 的轻量入口,不强制安装 runtime。Brewfile:只放通用 CLI,大型应用先保持注释。
- 默认 dry-run 或只展示计划
- 不盲目覆盖已有文件
- 写入动作需要
--yes - 真实配置先导入 review 目录,再人工清理
- 不提交 secrets 或公司内部配置
- 公开仓库前先运行安全检查
更多细节见:
docs/safety.mddocs/decisions.mddocs/machine-policy.md
- 迁移并模板化现有
.gitconfig* - 改造
surge/ - 补充 Ghostty 真实配置
- 加入 VS Code / Cursor 配置
- 加入 Tmux、Starship 或 Neovim
- 增加 AI Coding helper scripts
- 增加 Linux、VPS、Codespaces 支持
- 探索 public / private 拆分