我正在开发一个Rails应用程序,并准备将其开源。
我正在将它部署到VPS服务器上,配置了nginx和unicorn,遵循this RailsCast。
为了让Capistrano,Nginx和Unicorn正常工作,我不得不在我的config/
文件夹中添加一些服务器配置文件,比如deploy.rb
,nginx.conf
,unicorn.rb
和unicorn_init.sh
。
我使用的是git存储库,所有工作都在master
分支下进行。换句话说,Capistrano从中提取并部署到服务器上,而且,这也是我即将开源的分支。
但是,我不希望我的服务器配置文件公开。
最好的解决方案是什么?
我是否应该派生一个仓库作为官方公共仓库,另一个作为我自己的版本,并将官方仓库设置为我的上游?
或者,最好将我的配置参数设置为环境变量,并将配置文件留在存储库中?
发布于 2013-04-29 15:48:43
这个解决方案是我为这个问题找到的最好的方案(也是我个人使用的方案)。
你应该把你的配置文件放在
/path/to/deployed_app/shared
然后在capistrano任务中,sym链接到这些文件:
namespace :deploy do
task :symlink_shared do
run "ln -s #{shared_path}/database.yml #{release_path}/config/"
end
end
before "deploy:restart", "deploy:symlink_shared"
发布于 2013-04-29 15:50:27
这两种方法我都做过,但由于寻找环境变量并不那么吸引人,所以我最终选择了:
在我的存储库中具有原始yml文件以提供预期格式的
config.yml_example
)yml
文件发布于 2013-04-29 15:51:48
如果你愿意,你仍然可以只开源当前的存储库,除非你想让它用另一个名字,比如一个将要托管的组织(即rails/rails)。除此之外,您还需要从git历史记录中删除这些文件,因为听起来您不希望它们公开,有关详细信息,请参阅:https://help.github.com/articles/remove-sensitive-data。
使用这些配置的最佳方法是在服务器上设置一个共享目录,然后对其进行符号链接。请参阅:Where do you put your app-config-files when deploying rails with capistrano and svn
https://stackoverflow.com/questions/16282607
复制相似问题