我正在开发Rails应用程序,并且打算将其开源.
在this RailsCast之后,我将其部署到配置了nginx和unicorn的VPS服务器.
为了使Capistrano,Nginx和Unicorn正常工作,我必须在config /文件夹中添加一些服务器配置文件,例如deploy.rb,nginx.conf,unicorn.rb和unicorn_init.sh.
我正在使用git存储库,并且一切都在master分支下进行.换句话说,Capistrano从中获取了部署到服务器上的机会,这也是我要开源的分支.
但是我不希望我的服务器配置文件是公共可用的.
最好的解决方案是什么?
我应该分叉它并将一个存储库设置为官方公共存储库,并使用另一个存储库作为我自己的版本,并将该官方存储库设置为我的上游存储库吗?
还是将我的配置参数设置为环境变量,然后将配置文件保留在存储库中会更好?
解决方法:
此解决方案是我针对此问题找到的最佳解决方案(也是我个人使用的解决方案).
您应该将配置文件放在
/path/to/deployed_app/shared
然后在capistrano任务中,符号链接到这些文件:
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"