Skip to content

DBvc/dotfiles

Repository files navigation

dbvc/dotfiles

这是一个个人 dotfiles 仓库,用来管理、复现和演进我的开发环境。

v0.1 的目标不是一次性接管整台机器,而是先建立一个安全、保守、可审计的基础骨架。真实配置会在人工 review 后逐步迁移。

这是 dbvc 的个人配置仓库。其他人可以 fork 或参考结构,但不要在未审查内容前直接 apply 到自己的 $HOME

Quick Start

第一次运行最终的 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_worksurge/ 会暂时保留。

它们在 v0.1 中只作为历史参考,不会被 chezmoi apply 到 $HOME。后续可以用单独 commit 把它们模板化或迁移到新的结构中。

Dry-run 命令

只想检查状态、不写入任何文件时,可以单独运行:

bash scripts/doctor.sh
bash scripts/bootstrap-macos.sh --dry-run
bash scripts/backup-existing.sh --dry-run
bash scripts/import-existing.sh --dry-run

第一次应用前必读

chezmoi 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 配置。

Homebrew

检查 Brewfile 中的工具是否已经安装:

brew bundle check --file Brewfile

需要明确确认后再安装缺失工具:

bash scripts/bootstrap-macos.sh --yes

bootstrap-macos.sh 不会静默安装 Homebrew,也不会覆盖真实 dotfiles。

chezmoi

在现有电脑上使用时,先完成上面的备份步骤。

预览将要应用的配置:

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.md
  • docs/decisions.md
  • docs/machine-policy.md

后续路线图

  • 迁移并模板化现有 .gitconfig*
  • 改造 surge/
  • 补充 Ghostty 真实配置
  • 加入 VS Code / Cursor 配置
  • 加入 Tmux、Starship 或 Neovim
  • 增加 AI Coding helper scripts
  • 增加 Linux、VPS、Codespaces 支持
  • 探索 public / private 拆分

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors