harmonic / laravel-envcoder
:描述
Requires
- defuse/php-encryption: ^2.2
- illuminate/support: ~8
Requires (Dev)
- mockery/mockery: ^1.1
- orchestra/testbench: ~6.0
- phpunit/phpunit: ^9.3.0
- sempro/phpunit-pretty-print: ^1.0
This package is auto-updated.
Last update: 2024-09-15 10:26:41 UTC
README
加密您的Laravel .env文件,以便它可以安全地存储在源代码管理中并通过密码解密。
它被编写用于快速轻松地在源代码管理中共享.env变量,而不是手动传递变量或在不同第三方服务中查找它们。
该包的一些亮点包括
- 将加密版本的.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。有关更多信息,请参阅 许可文件。