背景とか
APIを使って開発する際に、仲間同士でAPI定義を共有できるプライベートな場所が欲しかった。
モックまで作ってくれるapiary.ioもいいけど、いかんせん有料だ(使ってみたい・・・)
そこでCarteを使ってみることにした。
マークダウン書いてpushするだけで覚えることほとんどない。
今回は手軽に作りたかったので、常時起動させている必要もないし、herokuで作ることにした。
プライベートな場所にするためベーシック認証をつける
Carteをgitからクローン
git clone https://github.com/Wiredcraft/carte.git
Gemfileの作成/編集
touch Gemfile
Gemfile
source 'https://rubygems.org'
ruby '2.1.0'
gem 'bundler'
gem 'jekyll'
gem 'rack-jekyll'
bundle
_config.yml編集
_config.yml
exclude: ['config.ru', 'Gemfile', 'Gemfile.lock', 'vendor']
config.ru編集
config.ru
require 'rack/jekyll'
run Rack::Jekyll.new
ベーシック認証
以下を追加する
config.ru
use Rack::Auth::Basic, "Restricted Area" do |username, password|
[username, password] == [ENV['BASIC_AUTH_USERNAME'], ENV['BASIC_AUTH_PASSWORD']]
end
herokuには以下の設定を行う
heroku config:add BASIC_AUTH_USERNAME="user"
heroku config:add BASIC_AUTH_PASSWORD="pass"
herokuの準備
heroku create nameofyourblog --buildpack https://github.com/andycroll/heroku-buildpack-jekyll.git
すでにアプリが作成されている場合
cd my-project/
git init
heroku git:remote -a myapp
heroku buildpacks:set https://github.com/andycroll/heroku-buildpack-jekyll.git
確認
git add .
git commit -m 'first commit'
git push heroku master
heroku open
仲間同士でAPI定義
ソース管理をbitbucketに変更
git remote add origin git@bitbucket.org:xxx/yyy
werckerでビルドとHerokuへのデプロイを行う
werckerでの設定は以下のとおり
- Application settingsにてAddDeployTargetよりcustom deployを選択
- Deploy target nameにherokuと入力
- Auto deployをチェック
- branch nameにmasterと入力
- SAVEする
Deploy pipelineより変数を設定する
- HEROKU_KEY (Herokuで発行する)
- HEROKU_USER (Herokuで設定したメールアドレス)
- HEROKU_APP_NAME (Herokuでのアプリ名)
- SAVEする
wercker.ymlは以下のとおりにする
wercker.yml
box: ruby:2.1.8
build:
steps:
- bundle-install
deploy:
steps:
- heroku-deploy:
key: $HEROKU_KEY
user: $HEROKU_USER
app-name: $HEROKU_APP_NAME
あとはみんなでpushし合えばOK