SQALEでRailsアプリのデプロイ(既にアプリを作っていた場合)


目的
AWSの前にSqaleで良いじゃない！！
詳しい情報が無いので公開しました。デプロイしたいなーでもサーバー怖いなーなこれからの方に対する共有です。(デプロイ怖いがなくなるとハッピーですね)



#ターミナルでの公開鍵の設定

1ターミナルで公開鍵のあるファイルに移動する

```
$ cd ~/.ssh => ls => [id_rsa id_rsa.pub	key_backup	known_hosts]
```

・id_rsaとid_rsa.pubに違い
公開鍵 id_rsa
秘密鍵 id_rsa.pun

2公開鍵のファイル => id_rsaを開き内容をコピー

```
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC38uTdwyOJ05DfE1w1k5BCIuH0ldeYS5y2H30pjardvxNXajtQupQmsVP/qqaebO3MPBuLrkJV3isl7ocvfFtjf09rBhIBFmo3QcoC9YGqxnRKerywzD+SsPdHRhzB6mjAIU5j67UFriWr+JoLobyOk8IdkK9ILpBdVtSHKa+mJqsoryCZyejJKhy6PqwxzgFtxyaFZNXW2WmC/8ghMnLR2pcmi4qK5VtVxQIKJ/lTUoi7Q2fmbkQmbAh22P0ztW4AEirX4L2iMDLjvnX797McpQ7mmhjaoqIfTgmkEC9KZjz8wKtTWpHSDEKloLZt0TulaSy8WA0yw436OHGTfkLN 
```

3Sqaleにログインして公開鍵の設定ページへ移動

https://sqale.jp/settings/public_keys

4クリップボードの内容(コピぺしたものを)ペーストして「登録する」ボタンを押します。
![代替テキスト](https://sqale.jp/assets/manual/public_keys_mac/ssh_keygen_10.png)

5公開鍵一覧に追加されているなら、公開鍵の登録完了!

![大体テキスト](https://sqale.jp/assets/manual/public_keys_mac/ssh_keygen_11.png)


公開鍵暗号(public key encryption system)に関して

公開鍵 公開鍵サーバーなどに登録して誰でもダウンロードできる。
秘密鍵 誰にも知らせないように保管しておく秘密の鍵

公開鍵と秘密鍵はペアの鍵で、お互いに関係はあるけれど公開鍵をいくら調べても秘密鍵がどうなっているのかわからない。
秘密鍵で暗号化した文書は公開鍵でないと元に戻せない、逆に公開鍵で暗号化することもできるけれど、それは秘密鍵でないと元に戻せないという仕組みを作っています。

参照URL http://www.infonet.co.jp/ueyama/ip/glossary/public_key.html


#新規プロジェクトを作成

1ダッシュボードから新規アプリケーションの作成
![代替テキスト](https://sqale.jp/assets/manual/getting_started/creating_apps.png)

2GitのURLをコピー
アプリケーションの作成が開始されるとダッシュボードに現在の状況が表示されます
![代替テキスト](https://sqale.jp/assets/manual/getting_started/waiting_time_for_creating_apps.png)

アプリケーションの作成が完了すると、上記のようにURLやGitの情報が表示されます。
Gitに右に表示されているCloneの値をコピーします

![代替テキスト](https://sqale.jp/assets/manual/getting_started/app_details.png)


#作成済みのアプリケーションの場合

Step1 作成したアプリケーションのディレクトリに移動

```
cd myprojects/pin_board1
```

Step2 SqaleのGit urlをリモートリポジトリとして設定するコマンドを実行

```
git remote add sqale ssh://sqale@gateway.sqale.jp:2222/rudiments/sheet.git
```

すると

```
fatal: remote sqale already exists.
```

こうなる場合があります。

なので

```
git remote rm リモートリポジトリの名前 ~> 今回はsqale
```

とすることで、現在のリモートリポジトリを削除できます。

ポイント
アプリケーション作成時の名前がそのままアドレスに使われるので不適当な名前をつけない。hogehogeなど。

Step3 GemfileをSqale用に変更する

変更前

```
gem 'sqlite3'  #これは任意のGemで良い
```

変更後

```

group :development do
  gem 'sqlite3'
end

group :production do
  gem 'mysql2'
end
```


問題発生
bundle install mysql2が通らないエラーが発生。
brew install mysqlを実行。成功！

gem 'pg'は使えないらしい、Railsチュートリアルのアプリは上げれないね。まああっちはHerokuだしいいのか。さて。


Step4 Gemfile.lockを更新してgit commitする

```
$ bundle install

$ git add Gemfile gemfile.lock

$ git commit -m "update dependency"
```


Step5 コードを保存してSqaleサーバにアップロードする

ダッシュボードのアプリケーション詳細からたどることができる共有データベース情報を確認し、データベースの情報を config/database.ymlに書き込む

database.yal形式でコピーでコピーして、自身のファイルにペースト。

![database_details.png](https://qiita-image-store.s3.amazonaws.com/0/81345/b9f3d648-6131-b9a2-8d86-b09fa8214bc7.png)


```
$ git add config/database.yml
$ git commit -m "update database configuration."
$ git push sqale master 
```


Step6 データベースのアプリケーションで必要なテーブルを作成する

```
ダッシュボードの [アプリケーション一覧](https://sqale.jp/dashboard) から作成したアプリケーションの【詳細】ボタンをクリック、その後【アプリケーションの操作】タブをクリックし、【マイグレーションの実行】の【実行する】ボタンをクリックすると、マイグレーションが実行されます。マイグレーションの実行後は【アプリケーションを再起動する】ボタンを押してアプリケーションを再起動してください。
```

Step7 ブラウザでアプリケーションにアクセスする

```
$ open "http://repogee-app-repogee.sqale.jp/"

基本形
http://アプリ名-ユーザー名.sqale.jp/
僕の場合
http://sheets-rudiments.sqale.jp/
```


Step8 確認してみる

googleしてみる。すると..


![20151001-152709.png](https://qiita-image-store.s3.amazonaws.com/0/81345/dc1eb218-f9e9-c419-e7a3-91754d2e73de.png "20151001-152709.png")

こうなります。