Projects: アプリを選択的に起動する
Hanamiでは、Monolith-First原則に従ってプロジェクトを構築できます。 プロジェクトにコードを追加するにつれて、プロジェクトを複数のHanamiアプリに分割することで、それを有機的拡張できます。
実際のHanamiプロジェクトでは、同じプロジェクト内に多数のHanamiアプリ(たとえば、フロントエンド用のweb、管理用のadmin、JSON API用のAPIなど)を持つことができます。
それらはすべて同じプロジェクトの一部ですが、異なるサーバーにデプロイしたいかもしれません。
たとえば、ほとんどのサーバーはwebアプリ(サイトの顧客用)に、いくつかはapi(おそらくモバイルアプリを使用する顧客用)に使用し、そして、単一のサーバーでadminアプリを実行することもできます。これは他の2つよりもトラフィックが少なくなる可能性があるためです。
選択的起動 でこれをサポートします:
# config/environment.rb
# ...
Hanami.configure do
if Hanami.app?(:web)
require_relative '../apps/web/application'
mount Web::Application, at: '/'
end
if Hanami.app?(:api)
require_relative '../apps/api/application'
mount Api::Application, at: '/api'
end
if Hanami.app?(:admin)
require_relative '../apps/admin/application'
mount Admin::Application, at: '/admin'
end
endHANAMI_APPS環境変数を使用して、使用するアプリを宣言できます。
単一のアプリ、または複数のアプリ(コンマで結合)を指定できます:
$ HANAMI_APPS=web,api bundle exec hanami serverThis would start only the web and api applications.