为安全优先的团队而构建
加密存储、基于角色的访问控制以及适用于每种工作流的两种编辑模式。
AES-256-GCM 加密
主密钥通过 PBKDF2 派生,迭代 100k 次。每个文件使用随机 nonce。
构建时与运行时
标记变量在构建时、运行时或两者皆可用。细粒度控制。
两种编辑模式
键值列表编辑器用于结构化编辑,原始 .env 编辑器用于批量粘贴。
自动生成 URL
数据库连接字符串自动生成(postgres://user:pass@host:port/db)。
RBAC 访问控制
查看者无法看到值。开发者可以查看。管理员可以编辑。基于角色的控制。
批量操作
单个 PUT 请求批量更新多个变量。一次导入整个 .env 文件。
工作原理
01
添加变量
键值对、粘贴 .env 文件内容,或让 sh0 从数据库自动生成连接字符串。
02
标记范围
选择每个变量在构建时、运行时还是两者都可用。构建时变量在 docker build 期间注入。
03
静态加密
AES-256-GCM 加密,每个文件使用随机 nonce。密钥永远不会以明文形式写入磁盘。解密仅在注入时进行。
04
部署时注入
变量在运行时解密并注入到容器环境中。容器内没有 .env 文件。
加密流水线
添加变量
PBKDF2 密钥派生
AES-256-GCM 加密
加密存储
部署时解密
明文仅在注入时存在于内存中 -- 永远不会以未加密形式写入磁盘
一应俱全
AES-256-GCM 加密
行业标准的认证加密。主密钥通过 PBKDF2 派生(100k 次迭代)。每个文件使用随机 nonce,每个块独立派生密钥。
默认遮蔽
变量值在仪表盘中默认隐藏。查看需要开发者或更高角色。屏幕共享时不会意外暴露。
构建与运行时分离
构建时变量在 docker build 期间可用。运行时变量注入到运行中的容器。也可同时使用。
两种编辑模式
键值编辑器用于结构化管理。原始 .env 编辑器用于粘贴整个文件。两者可自由切换。
自动生成连接字符串
部署 PostgreSQL、MySQL 或 MongoDB 数据库后,sh0 自动生成连接 URL。一键添加到您的应用中。
RBAC 访问控制
查看者只能看到变量名。开发者可以查看值。管理员可以创建、编辑和删除。细粒度的团队控制。
传统方式
- x .env 文件以明文形式放在服务器上
- x 手动在环境之间复制粘贴
- x 没有加密 -- 任何有 SSH 访问权限的人都能读取
- x 没有审计追踪谁改了什么
- x 意外提交到版本控制
- x 手动拼装数据库 URL
sh0 的方式
- AES-256-GCM 静态加密
- 批量导入和应用级范围
- RBAC 控制:查看者、开发者、管理员
- 默认遮蔽,查看需要权限
- 永不提交 -- 在仪表盘或 API 中管理
- 自动生成数据库连接 URL
常见问题
使用什么加密算法? +
AES-256-GCM(Galois/Counter Mode),主密钥使用 PBKDF2 派生,迭代 100,000 次。每个文件使用唯一的随机 nonce。这与主要云提供商使用的标准相同。
谁可以查看变量值? +
取决于您的角色。查看者可以看到变量名但看不到值。开发者可以查看值。管理员拥有完全控制权,包括创建、编辑和删除。所有访问都在服务端强制执行。
如何迁移现有的 .env 文件? +
在仪表盘中打开原始 .env 编辑器并粘贴现有 .env 内容。sh0 会解析并为每个条目创建加密变量。您也可以通过 API 使用 PUT 请求进行批量更新。
变量数量有限制吗? +
没有硬性限制。每个应用都有独立的环境变量集。实际上大多数应用使用 10-50 个变量,但 sh0 可以处理数百个。