harmonic/laravel-envcoder

v1.0.9 2021-06-09 07:41 UTC

README

Latest Version on Packagist Total Downloads Build Status StyleCI

加密您的Laravel .env文件,以便它可以安全地存储在源代码管理中并通过密码解密。

它被编写用于快速轻松地在源代码管理中共享.env变量,而不是手动传递变量或在不同第三方服务中查找它们。

Envcoder-Demo

该包的一些亮点包括

  • 将加密版本的.env提交到源代码管理中,以便与团队共享
  • 编写用于在各种自动化部署流程中使用(密码可以存储在本地,冲突解决)
  • 可以配置为覆盖、合并或在.env和.env.enc之间交互式地决定如何处理合并冲突
  • 不需要对您的项目进行任何更改即可检索.env变量
  • 只需像平常一样编辑您的.env文件(并在准备共享时加密它们)
  • 比较加密的.env与当前的.env,看看有什么不同

安装

通过Composer

$ composer require harmonic/laravel-envcoder --dev

发布配置文件(可选)

php artisan vendor:publish --provider="harmonic\LaravelEnvcoder"

配置

发布配置后,您可以在config/envcoder.php中更改默认的环境变量冲突解决行为。

  • 'merge' => 将合并两个文件中的更改,并用.env.enc中的内容覆盖重复项(默认)
  • 'prompt' => 将提示您每个在.env.enc和.env中值不同或在两个文件中都不存在的值
  • 'overwrite' => 将完全用加密版本中的内容覆盖您的.env
  • 'ignore' => 将忽略加密的.env中的任何更改(即不会解密)

有关更多详细信息,请参阅config/envcoder.php。

使用方法

加密您的.env

从项目根目录运行

php artisan env:encrypt

您将被提示输入密码,如果您希望从命令行输入,可以使用

php artisan env:encrypt --password=password

(将密码替换为您的密码)

加密另一个.env文件

如果您有多个.env文件,您可以在加密命令中添加选项(--s或--source)来告诉Envcoder加密该文件。Envcoder将创建一个具有相同名称并附加 .enc 的加密文件。

php artisan env:encrypt -s .env.testing

解密您的.env

从项目根目录运行

php artisan env:decrypt

您将被提示输入密码,如果您希望从命令行输入,可以使用

php artisan env:decrypt --password=password

(将第二个密码替换为您的密码)

加密另一个.env文件

如果您用不同的名称(如.env.testing)加密了.env文件,您可以在解密命令中添加选项(--s或--source)来告诉Envcoder解密该文件。

php artisan env:decrypt --source .env.testing.enc

这将生成一个.env.testing文件。

.env.enc与.env(差异)比较

您可以查看当前.env和加密的.env之间的任何更改

php artisan env:compare --password=password

(将第二个密码替换为您的密码)

在.env文件中包含密码

您可以在.env文件中添加一个变量,变量名为ENV_PASSWORD。这将从加密版本中删除,但允许在开发中进行简单的编码/解码,无需密码。只需添加到您的.env

ENV_PASSWORD=passwordHere

(将passwordHere替换为您的密码)

这样,您每次加密/解密.env文件时都不会被提示输入密码。

一些使用建议

您可能希望在每次部署时删除服务器上的.env.enc文件。

如果您将密码包含在本地开发的.env文件中,您可以将env:decrypt命令添加到composer post-install部分,以在每次进行composer install时自动更新您的.env文件,例如。

"scripts": {
	"post-install-cmd": [
		"@php artisan env:decrypt"
	]
}

变更日志

请参阅变更日志以获取有关最近更改的更多信息。

测试

$ phpunit

贡献

请参阅 contributing.md 以获取详细信息和学习清单。

安全性

由于使用方便和安全(请参阅 安全细节),我们选择了 defuse\php-encryption 包来处理 .env 文件的加密和解密。尽管如此,将加密的 .env 文件存储在源代码控制中比完全不存储它要安全一些。我们只是略微相信这一点,但权衡安全与便利并作出决定取决于您自己的项目。

如果您发现任何与安全相关的问题,请通过电子邮件 craig@harmonic.com.au 联系,而不是使用问题跟踪器。

鸣谢

许可协议

MIT。有关更多信息,请参阅 许可文件