对于rails来说,我是新的,开源的,很快就可以部署到生产环境中了,我有一些安全考虑。
如何处理database.yml已经很好了,how-to-manage-rails-database-yml
但是从我的观点来看,在普通的rails应用程序中有更多的配置设置不应该托管在公共github存储库中并部署到生产中。
config.pepper
向.gitignore添加config /*/*不仅可以防止新开发人员捆绑安装、db:create、db:migrate、rails服务器,而且如果安装了带有初始化器的新gem,还可以保持生产配置的最新更新。
另一种可能是添加一个具有敏感配置的environment.yml,比如database.yml,其中初始化器中的敏感配置将被覆盖?
这将使您在完成一个干净的结帐后能够很容易地起床和运行,并且生产环境也会很容易维护。
有什么办法解决我上面的问题吗?
发布于 2010-12-10 19:23:24
我通常将“安全”数据放在这些文件中,这些文件通常用于开发目的。但是在生产过程中,我将文件与capistrano的其他位置进行符号链接,如下所示:
invoke_command "ln -sf #{shared_path}/database.yml #{release_path}/config/database.yml"因此,在生产服务器中,我有一堆文件覆盖源代码管理中的文件。我甚至不使用database.yml.example,只是开发人员同意在开发和测试中使用的一些正常的默认database.yml。
对于单个设置,比如API键,我通常创建一个config/settings.yml并从初始化器内部读取它们:
SETTINGS = YAML.load(IO.read(Rails.root.join("config", "settings.yml")))
YourApp::Application.config.secret_token = SETTINGS["secret_token"]https://stackoverflow.com/questions/4412406
复制相似问题