男孩,我已经厌倦了这个话题。我有gitlab CI,本地环境,钥匙串,keepass,gcp,aws和一堆其他地方,这些地方存储了我的一些env变量。此外,例如,Expo应用程序无法提取.env文件,因此我必须编写bash脚本才能创建js文件。这伤了我的大脑。
我希望有一个舒适的地方,可以在每个项目的每个环境中安全地存储所有变量和秘密。我想与我的团队,CI服务器等共享它。我只想指定一个密钥:environemnt标题。并且所有变量都应该从某个地方提取。在github或Internet上的任何地方都有这样的工具吗?
不确定此问题是否适合stackoverflow,请引导我进入正确的stackexchange论坛。
答案 0 :(得分:0)
逐个文件加密文件和部署脚本,然后将它们推送回购。每当您需要切换环境时,只需使用名称中的环境关键字解密文件即可:
Encrypt.sh
# sh encrypt.sh ./config.production.js passwordhere
echo "encrypting $1"
openssl enc -aes-128-cbc -a -salt -pass pass:$2 -in $1 -out $1.enc
rm $1
mv $1.enc $1
echo "done"
decrypt.sh:
# sh decrypt.sh production passwordhere
echo "decrypting $1 environment"
for file in $(find . -not -path "*/node_modules/*" -name "*.$1*")
do
echo "decrypting $file to ${file//.$1}"
openssl enc -aes-128-cbc -a -d -salt -pass pass:$2 -in $file -out "${file//.$1}"
done