cd chef-repo find ./nodes -name "*.json" -type f | xargs -n 1 basename -s .json | xargs -n 1 knife solo cook
エラー監視サービス「Rollbar」を使う
エラー監視サービス「Rollbar」の設定メモです。
同種のサービスと比べて、無料なのにサイト登録数が無制限というメリットがあります。
エラー発生数によって課金されますが、監視頻度を設定することで、課金を抑えることができます。
タイムゾーンの設定
プロジェクトの Settings - General のページから。
Timezone を Asia - Tokyo に変更。Description も一応設定しておきます。
エラー監視頻度の設定
Settings - Project Access Tokens のページから。
例えば、post_server_item を 10 items every 1 minute にします。
短期間に同じエラーが大量発生して、課金されてしまう可能性を下げることができます。
通知の設定
Settings - Notifications のページから。
Email で、3 ルールだけ適用しています。
CarrierWave で ConoHa オブジェクトストレージを使う
転送量無料で 100GB あたり 450 円/月という ConoHa オブジェクトストレージ を CarrierWave から使う方法です。
公開設定にすることで、画像サーバとして使うことができます。
CarrierWave のバージョンは 0.10.0、fog のバージョンは 1.24.0 で確認しています。
公開設定でコンテナを作成する
まず、公開設定でコンテナを作成します。
ConoHa のコントロールパネルからは公開設定のコンテナを作成できませんので、プログラムで作成します。
必要な情報は、コントロールパネルの「アカウント - API」( https://cp.conoha.jp/Account/API/ ) に掲載されています。
require 'fog' CONOHA_TENANT_NAME = (テナント名) CONOHA_USERNAME = (ユーザー名) CONOHA_API_PASSWORD = (API パスワード) CONOHA_API_AUTH_URL = (API Auth URL) CONOHA_CONTAINER_NAME = (作成するコンテナ名) service = Fog::Storage.new( provider: 'OpenStack', openstack_tenant: CONOHA_TENANT_NAME, openstack_username: CONOHA_USERNAME, openstack_api_key: CONOHA_API_PASSWORD, openstack_auth_url: CONOHA_API_AUTH_URL + '/tokens', ) service.put_container(CONOHA_CONTAINER_NAME, public: true, headers: { 'X-Web-Mode' => 'true' })
CarrierWave の設定
Gemfile
gem 'carrierwave' gem 'fog' gem 'dotenv-rails'
config/initializers/carrierwave.rb
CarrierWave.configure do |config| if Rails.env.production? config.fog_credentials = { provider: 'OpenStack', openstack_tenant: ENV['CONOHA_TENANT_NAME'], openstack_username: ENV['CONOHA_USERNAME'], openstack_api_key: ENV['CONOHA_API_PASSWORD'], openstack_auth_url: ENV['CONOHA_API_AUTH_URL'] + '/tokens', } config.fog_directory = ENV['CONOHA_CONTAINER_NAME'] config.storage :fog config.asset_host = ENV['CONOHA_ASSET_HOST'] + '/' + ENV['CONOHA_CONTAINER_NAME'] else config.storage :file end end
.env
CONOHA_TENANT_NAME=(テナント名) CONOHA_USERNAME=(ユーザー名) CONOHA_API_PASSWORD=(API パスワード) CONOHA_API_AUTH_URL=(API Auth URL) CONOHA_CONTAINER_NAME=(コンテナ名) CONOHA_ASSET_HOST=(オブジェクトストレージエンドポイント)
以上で、production 環境のときは ConoHa オブジェクトストレージにデータが保存されます。
jpmobile で、スマホビューが表示されるかどうかをコントローラから調べる
jpmobile のバージョン 4.1.2 で確認しています。
lookup_context.mobile.include?('smart_phone')
Sass でレスポンシブデザイン
@mixin sp-view @media only screen and (max-width: 767px) @content
こういう mixin をつくっておくと、
.hoge @include sp-view text-align: center
で、
@media only screen and (max-width: 767px) { .hoge { text-align: center; } }
みたいに展開されて便利。
ネイキッドドメイン + Amazon S3 Static Website Hosting を、VALUE DOMAIN の DNS で実現する
会社のサイト (userfirst.co.jp) をリニューアルして、Amazon S3 で運用するようにしました。
Middleman で作って、middleman-s3_sync でアップロードしています。
基本的な方法は、以下の記事が大変参考になりました。
Middlemanで生成したサイトをAmazon S3で運用する // qnyp blog
ネイキッドドメインは Route53 が必要との噂でしたが、なんかバリュードメインの DNS でもできました。
追記(2014/10/24 15:29):
この記事の方法を使うと、メール (xxx@example.co.jp) が使えなくなりますので、ご注意ください。
メールと併用する場合は、Gehirn DNS の Apex Alias を使うのが良いと思われます。
Gehirn DNS、ホスト名無しのドメインにエイリアス機能をサポート | Gehirn News(ゲヒルンニュース)
追記ここまで
cname @ example.co.jp.s3-website-ap-northeast-1.amazonaws.com.
(最後にドットが必要です)
www つきのバケット (www.example.co.jp) も作って、Static Website Hosting の設定を Redirect all requests to another host name
にすれば、ネイキッドドメインに 301 リダイレクトできます。
www つきバケットに対する、VALUE DOMAIN の DNS 設定は以下のとおりです。
cname www www.example.co.jp.s3-website-ap-northeast-1.amazonaws.com.
Middleman で Pow を使う
試した Middleman のバージョンは 3.3.6 です。
プロジェクトディレクトリに config.ru を置く
require 'rubygems' require 'middleman/rack' run Middleman.server
Pow の設定
ln -s ~/middleman-project ~/.pow/middleman-project
基本的にはこれだけで良いのですが、なんか更新しても反映されないので、常に完全リロードするようにする
cd ~/middleman-project mkdir tmp touch tmp/always_restart.txt
ちょっと遅いけど、これで OK です。
もっと良い方法がありましたら、教えてください。