eshlox/dvm

GitHub: eshlox/dvm

一个基于 Lima 的小型 Bash 封装工具,在 macOS 上通过一次性 Fedora 虚拟机实现开发环境的供应链隔离。

Stars: 3 | Forks: 0

# DVM 亲近你的朋友,但把你的供应链关进虚拟机里。 DVM 是一个围绕 Lima 的小型 Bash 封装工具,用于在 macOS 上创建一次性的 Fedora 开发虚拟机。 它的目的是将项目代码、包脚本、AI 工具、语言运行时、SSH/GPG 密钥以及各种随机的开发依赖与主机隔离开来。 DVM 目前主要针对 macOS。在 Linux 上,相同的虚拟机隔离理念也是有意义的,但目前尚未实现或测试对 Linux 的支持。 它有意不做成一个完整的虚拟机平台、包管理器、dotfiles 框架、机密管理器,也不在 Lima/macOS 虚拟化提供的功能之外充当硬沙箱。它的核心保持精简。项目的大部分内容是文档和示例,用于指导你配置自己的虚拟机环境。 核心理念:一个项目,一台虚拟机,一个 shell 配置。完成工作后可以随时重建或移除虚拟机。 系统要求: - macOS 13+ - Bash - Lima:`brew install lima` 核心理念: ``` dvm init myapp dvm create myapp dvm myapp ``` `dvm myapp` 默认会在虚拟机内打开 `~/code/myapp`。 每台虚拟机都有一个 shell 配置: ``` ~/.config/dvm/vms/myapp.sh ``` 示例: ``` DVM_PORTS="3000:3000" DVM_SETUP_SCRIPTS="$DVM_SETUP_SCRIPTS common.sh" dvm_vm_setup() { git clone git@github.com:you/myapp.git "$DVM_CODE_DIR" } ``` 托管型 AI CLI 是一种配置方案: ``` DVM_SETUP_SCRIPTS="$DVM_SETUP_SCRIPTS ai.sh" DVM_AI_TOOLS="claude codex opencode mistral" DVM_AI_YOLO="1" ``` 然后运行 `dvm setup myapp`,即可在虚拟机内使用 `claude`、`codex`、`opencode` 或 `vibe`。AI 包装器以 `dvm-agent` 身份运行,并默认使用 YOLO 模式。设置 `DVM_AI_YOLO="0"` 可以保留审批提示。 命令: ``` dvm init [name] dvm edit dvm create dvm setup dvm setup-all dvm upgrade dvm upgrade-all dvm enter dvm ssh [command...] dvm ssh-key dvm gpg-key dvm list dvm rm [--force] ``` 文档: - 入门:[安装](docs/install.md),[依赖项](docs/dependencies.md),[创建虚拟机](docs/create.md),[配置](docs/config.md) - 日常使用:[命令](docs/commands.md),[配置方案](docs/recipes.md),[更新](docs/updates.md),[网络](docs/networking.md),[版本发布](docs/releases.md) - 配置示例:[语言](docs/languages/README.md),[Node 供应链加固](docs/languages/node-security.md),[Dotfiles](docs/dotfiles/README.md),[SSH、GPG 和签名](docs/keys.md) - 服务与 AI:[AI](docs/ai/README.md),[服务](docs/services/README.md) - 项目:[扩展 DVM](docs/extending.md),[卸载](docs/uninstall.md)
标签:AI编程助手, Bash, DNS解析, Fedora, GPG密钥, Lima, SamuraiWTF, SSH管理, 内存分配, 容器化替代, 应用安全, 开发环境, 开发环境配置, 开源项目, 数字取证, 本体建模, 沙箱隔离, 生成式AI安全, 自动化脚本, 虚拟机, 轻量级虚拟机, 隔离环境