3

私は Rails アプリケーションに取り組んでおり、それをオープンソースにしようとしています。

この RailsCastに従って、nginx と unicorn で構成された VPS サーバーにデプロイしています。

Capistrano、Nginx、および Unicorn を適切に動作させるために、、、、などのサーバー構成ファイルをフォルダーに追加する必要がconfig/ありました。deploy.rbnginx.confunicorn.rbunicorn_init.sh

私は git リポジトリを使用しており、すべてがmasterブランチの下で機能します。つまり、Capistrano はそこからプルしてサーバーにデプロイします。また、それが私がオープンソース化しようとしているブランチです。

ただし、サーバー構成ファイルを公開したくありません。

最善の解決策は何ですか?

それをフォークして、一方のリポジトリを公式の公開リポジトリとして設定し、もう一方を自分のバージョンとして使用し、公式リポジトリを私のアップストリームとして設定する必要がありますか?

それとも、構成パラメーターを環境変数として設定し、構成ファイルをリポジトリーに残したほうがよいでしょうか?

4

4 に答える 4

1

私は両方を行いましたが、環境変数を探すのはそれほどセクシーではないため、最終的には次のようになりました。

  • 私のレポで期待​​される形式を与える生のymlファイルを持っている(のように名付けられたconfig.yml_example

  • サーバー上の実際のymlファイルをシンボリックリンクされたディレクトリに置く

于 2013-04-29T15:50:27.460 に答える
1

ホストする組織 (つまり、rails/rails) などの別の名前を付けたくない場合を除き、必要に応じて現在のリポジトリをオープンソースにすることもできます。それ以外は、これらのファイルを公開したくないように聞こえるため、これらのファイルを git 履歴から削除する必要があります。詳細については、https: //help.github.com/articles/remove-sensitive-dataを参照してください。それ。

これらの構成を使用して達成するための最良の方法は、サーバー上に共有ディレクトリをセットアップしてシンボリック リンクすることです

于 2013-04-29T15:51:48.423 に答える
0

構成ファイルをバージョン管理下に置かないでください。代わりに、ファイル名のサフィックスを使用してデフォルト バージョンまたはサンプル バージョンを作成し.dist、元のファイル名を .gitignore に入れて誤ってアップロードしないようにします。ユーザーは、アプリケーションを起動する前にコピーmyconfig.conf.distする必要があります。myconfig.conf

利点

  • 構成の偶発的なアップロードはありません
  • git pullアップストリームの構成ファイルが変更されたときに構成の競合が発生しない
  • での偶発的な構成変更はありませんgit pull
  • ユーザーは、後で構成を適応させることを忘れることはできませんgit clone

短所

  • 開始またはデプロイの前に、ユーザーに追加のステップを追加します
  • ユーザーがそれについて知ることができるように、readme に文書化する必要があります。
  • readme を読まないユーザーはまだそれを見逃して、なぜアプリケーションが動作しないのか疑問に思うかもしれません

PS: これは Rails 固有のものではありませんが、構成ファイルを使用してバージョン管理されたすべてのアプリケーションにアプローチします。

于 2017-02-02T10:25:50.783 に答える