hackardoX/openv
GitHub: hackardoX/openv
Openv 通过 1Password CLI 与 Shell Hook 自动将 .env 文件中的占位符替换为安全凭据,简化密钥管理并提升安全性。
Stars: 7 | Forks: 0
# Openv
Openv 是一个用于管理 **.env** 文件并提供额外安全功能的工具。它在底层使用 1password CLI,自动将环境变量替换为安全凭据。
它支持多种 Shell,并允许自定义命令允许/拒绝列表。该工具使用 1Password 进行安全的凭据管理。
## 目录
- [Openv](#openv)
- [目录](#table-of-contents)
- [功能](#features)
- [安装](#installation)
- [Homebrew(推荐)](#homebrew-recommended)
- [手动安装](#manual-installation)
- [1Password CLI](#1password-cli)
- [用法](#usage)
- [自动 Hook 设置(推荐)](#automatic-hook-setup-recommended)
- [手动 Hook 设置](#manual-hook-setup)
- [命令](#commands)
- [配置](#configuration)
- [配置选项](#configuration-options)
- [支持的 Shell](#supported-shells)
- [贡献](#contributing)
- [许可证](#license)
## 功能
- **命令包装**:包装 Shell 命令以使用安全凭据替换环境变量。
- **Shell 支持**:支持多种 Shell,包括 Bash、Zsh、Fish。
- **可配置**:可通过 TOML 配置文件轻松配置。
## 安装
### Homebrew(推荐)
要使用 Homebrew 安装 Openv,首先需要添加该仓库:
`brew tap andrea11/homebrew-formulas`
然后安装 Openv:
`brew install openv`
### 手动安装
要手动安装 Openv,可以从 [发布页面](https://github.com/andrea11/openv/releases) 下载二进制文件并将其放置在 PATH 包含的文件夹中(例如 `/usr/local/bin`)。
### 1Password CLI
Openv 使用 1Password CLI 获取密钥。请确保已安装并正确配置 1Password CLI。你可以在 [此处](https://developer.1password.com/docs/cli/get-started) 找到安装说明。
还建议设置 1Password 桌面应用并启用“*与 1Password CLI 集成*”选项。
否则,你需要为 1Password CLI 提供一个服务账户令牌。
## 用法
### 自动 Hook 设置(推荐)
要使用 Openv,需要为你的 Shell 设置合适的 Hook。以下是步骤:
1. **Bash**:`openv init bash`
2. **Zsh**:`openv init zsh`
3. **Fish**:`openv init fish`
### 手动 Hook 设置
如果希望手动设置 Hook,请编辑你的 Shell 配置文件(例如 `.bashrc`、`.zshrc` 或 `config.fish`),并添加以下行:
1. **Bash**:
`eval $(openv hook bash)`
2. **Zsh**:
`eval $(openv hook zsh)`
3. **Fish**:
`openv hook fish | source`
## 命令
- **execute**:执行包装了 `op run` 的命令。
- **check**:检查命令是否需要包装。
- **hook**:打印指定 Shell 的 Hook。
- **init**:为指定 Shell 设置 Hook。
## 配置
Openv 支持开箱即用的部分命令,并会自动调用 **op** CLI。但你可以使用配置文件自定义其行为。
Openv 使用 TOML 配置文件来管理所有设置。配置文件可以位于 `~/.openv.toml`(全局配置)或项目根目录(`.openv.toml`,本地配置)。
示例 `.openv.toml`:
```
allow_commands = [
"^(npm|pnpm) (run )?(start|dev|build)",
"cargo run"
]
deny_commands = [
"^python"
]
disable_masking = false
```
### 配置选项
- **allow_commands**:允许的 Shell 命令的正则表达式模式列表。
- **denyCommand**:拒绝的 Shell 命令的正则表达式模式列表。
- **disable_masking**:禁用终端输出密钥遮罩的布尔值(默认值为 `false`)。
## 支持的 Shell
Openv 支持以下 Shell:
- **Bash**
- **Zsh**
- **Fish**
## 贡献
欢迎贡献!请打开议题或提交拉取请求。
## 许可证
本项目采用 MIT 许可证。详细信息请参见 [LICENSE](LICENSE) 文件。
1Password 设置截图
标签:1Password, Bash, CLI 工具, Cutter, DevOps 工具, .env 文件, Fish, Homebrew, Python安全, SEO: 1Password CLI 集成, SEO: openv 工具, SEO: 环境变量管理, Shell 集成, TOML 配置, XML 请求, Zsh, 二进制发布, 允许/拒绝列表, 可定制策略, 命令包装, 威胁情报, 安全凭证, 安全开发, 开发者工具, 开源工具, 环境变量管理, 自动替换, 通知系统, 钩子设置