patternables.comはEC2上にWebサーバを立てて動かしているが、これまでは特にGitなどでコードを管理していなかった。
EC2にGitを入れてバージョン管理(更新管理)するようにしたのでその手順を記録しておく。
EC2上にバージョン管理用のベアリポジトリを作る。
Server
$ mkdir patternables.git
$ cd patternables.git
$ git init --bare
次に、ローカルPCで上のgitフォルダをクローンする。
Client
$ git clone ssh://[email protected]:/home/ec2-user/path/to/patternables.git
もしpermissionが無いと言われた場合は以下。
$ ssh-agent bash -c 'ssh-add /path/to/pem_file; git clone ssh://[email protected]:/home/ec2-user/path/to/patternables.git'
これで作業ディレクトリができるのでここにコードを置いたり更新したりしていく。
ローカルの作業ディレクトリの更新が終わったら、リモートにpushする。
Client
$ git add .
$ git commit -m "message"
$ git push origin master
この段階でリモート上にはベアリポジトリ(作業ディレクトリ無し、更新ログのみ)しかないので、webサーバとして動かす為に実際のコードをクローンする。
Server
$ git clone patternables.git
これで最新のコードがEC2上に上がったことになる。
あとはサーバをRunするだけ。npm installなど必要な処理をした上で、以下のようにサーバを動かす。
Server
$ cd
$ sudo service nginx start
$ cd patternables
$ forever start ./bin/www
詳しくはここ。
Client
$ git add .
$ git commit -m "message"
$ git push origin master
Server
$ cd patternables
$ git pull origin master
Server
$ cd patternables
$ git add .
$ git commit -m "message"
$ git push origin master
Client
$ git pull origin master
$ ssh-agent bash -c 'ssh-add /path/to/pem_file; git push origin master'
$ ssh-agent bash -c 'ssh-add /path/to/pem_file; git clone ssh://[email protected]:/home/ec2-user/path/to/patternables.git'
$ ssh-agent bash -c 'ssh-add /path/to/pem_file; git pull origin master'