首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >避免硬编码服务器配置

避免硬编码服务器配置
EN

Stack Overflow用户
提问于 2013-04-29 23:34:04
回答 4查看 137关注 0票数 3

我正在开发一个Rails应用程序,并准备将其开源。

我正在将它部署到VPS服务器上,配置了nginx和unicorn,遵循this RailsCast

为了让Capistrano,Nginx和Unicorn正常工作,我不得不在我的config/文件夹中添加一些服务器配置文件,比如deploy.rbnginx.confunicorn.rbunicorn_init.sh

我使用的是git存储库,所有工作都在master分支下进行。换句话说,Capistrano从中提取并部署到服务器上,而且,这也是我即将开源的分支。

但是,我不希望我的服务器配置文件公开。

最好的解决方案是什么?

我是否应该派生一个仓库作为官方公共仓库,另一个作为我自己的版本,并将官方仓库设置为我的上游?

或者,最好将我的配置参数设置为环境变量,并将配置文件留在存储库中?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-04-29 23:48:43

这个解决方案是我为这个问题找到的最好的方案(也是我个人使用的方案)。

你应该把你的配置文件放在

代码语言:javascript
复制
/path/to/deployed_app/shared

然后在capistrano任务中,sym链接到这些文件:

代码语言:javascript
复制
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"
票数 1
EN

Stack Overflow用户

发布于 2013-04-29 23:50:27

这两种方法我都做过,但由于寻找环境变量并不那么吸引人,所以我最终选择了:

在我的存储库中具有原始yml文件以提供预期格式的

  • (命名方式类似于config.yml_example)
  • having我的服务器上符号链接目录中的实际yml文件
票数 1
EN

Stack Overflow用户

发布于 2013-04-29 23: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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16282607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档