ConoHa VPS上にjiji環境を構築する

無料で使えるFXシステムトレードフレームワーク [Jiji](http://jiji2.unageanu.net/) をConoHa vps上でインストールした際の手順です。

mt4だとWindows環境が必要なのと、バックテストがかなり重いのでjijiのが軽いかもと期待して環境を作ってみました。

インストールの流れは以下になります。Jijiの[インストールガイド](http://jiji2.unageanu.net/install/020200_install_server_to_docker.html)で詰まった所を一部具体的に書いてます。

1. VPSでCentOS7.2のテンプレートで構築
2. Gitのインストール
3. Dockerのインストールと更新

# ConoHa VPS

ConoHaなら途中でプラン変更も出来るので、スモールスタートでメモリ 	1GB、CPU 	2コア、SSD 	50GBの月900円プランにしました。OSはCentOS Linux release 7.2.1511 (Core)です。この辺りは簡単なので省略。

https://www.conoha.jp/


# Gitのインストール

## CentOSの設定

 yum updateかけた時にエラーになったので、yumレポジトリのepel-debuginfoとepel-sourceを無効化しました。以下全てrootで作業してます。

```lang:/etc/yum.repos.d/epel.repo
[epel-debuginfo]
enabled=0
[epel-source]
enabled=0
```
## Gitのインストール
Gitで困る所はないと思います。yum installするだけです。

```
# yum install gcc
# yum install git
# git --version
git version 1.8.3.1
```
## Dockerのインストール
extrasでインストールされるDockerはバージョンが1.8.2なので、要件を満たしていません。1.9以降が必要です。一旦1.8.2をインストールした後に、バージョンアップを行います。
ここを参照しました。
http://qiita.com/Arturias/items/8c9c9321e87675c7d023

### docker1.8.2のインストール
困る所はないと思います。

```
# yum install docker
```

### docker 1.11.0のインストール
```
# git clone https://git@github.com/docker/docker
# cd docker
# make build
# docker images
docker-dev          master              69c1785ed349        4 days ago          2.065 GB
# make binary
...
# ls ./docker/bundles/latest/binary/
lrwxrwxrwx 1 root root       17 Feb 16 18:08 docker -> docker-1.11.0-dev
-rwxr-xr-x 1 root root 34678499 Feb 16 18:08 docker-1.11.0-dev
-rw-r--r-- 1 root root       52 Feb 16 18:08 docker-1.11.0-dev.md5
-rw-r--r-- 1 root root       84 Feb 16 18:08 docker-1.11.0-dev.sha256

```

### docker 1.8.2と1.11.0の差し替え
```
# systemctl stop docker.service
# mv /usr/bin/docker /usr/bin/docker-1.8.1
# cp bundles/latest/binary/docker-1.11.0-dev /usr/bin/docker

# docker version
Client:
 Version:      1.11.0-dev
 API version:  1.23
 Go version:   go1.5.3
 Git commit:   b16536a
 Built:        Tue Feb 16 09:07:27 2016
 OS/Arch:      linux/amd64

Server:
 Version:      1.11.0-dev
 API version:  1.23
 Go version:   go1.5.3
 Git commit:   b16536a
 Built:        Tue Feb 16 09:07:27 2016
 OS/Arch:      linux/amd64

# cd ..
```

## docker-composeインストール

```
# curl -L https://github.com/docker/compose/releases/download/1.6.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   600    0   600    0     0    254      0 --:--:--  0:00:02 --:--:--   254
100 7754k  100 7754k    0     0  1289k      0  0:00:06  0:00:06 --:--:-- 2881k
# chmod +x /usr/local/bin/docker-compose
# ls -la /usr/local/bin/docker-compose
-rwxr-xr-x 1 root root 7940602 Feb 16 19:00 /usr/local/bin/docker-compose

# docker-compose --version
docker-compose version 1.6.0, build d99cad6
```


## jiji2インストール
```
# git clone https://github.com/unageanu/docker-jiji2
Cloning into 'docker-jiji2'...
remote: Counting objects: 107, done.
remote: Total 107 (delta 0), reused 0 (delta 0), pack-reused 107
Receiving objects: 100% (107/107), 19.75 KiB | 0 bytes/s, done.
Resolving deltas: 100% (31/31), done.
# cd docker-jiji2
```

### 自己証明書作成
```
# openssl genrsa 2048 > server.key
# openssl req -new -key server.key > server.csr
# openssl x509 -sha256 -days 365 -req -signkey server.key < server.csr > server.crt
# vi docker-compose.yml 
- ./server.crt:/etc/nginx/cert/ssl.crt:ro
- ./server.key:/etc/nginx/cert/ssl.key:ro
```
###dockerイメージをビルド
```
# docker-compose build
```
###Dockerコンテナを作成し、起動
```
# docker-compose up -d
Pulling mongodb (mongo:3.0.7)...
3.0.7: Pulling from library/mongo
45a5ec39a81f: Pull complete
a3ed95caeb02: Pull complete
d1f83b34c8fa: Pull complete
9a6050a755e5: Pull complete
2b04fe9173a9: Pull complete
5a318f31408d: Pull complete
06ff9b82c252: Pull complete
b1d5c78e5050: Pull complete
bcbf30bf1934: Pull complete
d0450bc5c6c8: Pull complete
c185104550a9: Pull complete
Digest: sha256:01b2f2fe54240c7a8e0e9bb0ab26307e2050490dcd0b02be548503a45b1b32c4
Status: Downloaded newer image for mongo:3.0.7
Creating jiji_mongodb
Creating jiji_jiji
Creating jiji_nginx
```
###起動しているコンテナを確認
```
# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                         PORTS                           NAMES
890c7b07d74b        dockerjiji2_nginx   "nginx -g 'daemon off"   34 seconds ago      Up 33 seconds                  80/tcp, 0.0.0.0:8443->443/tcp   jiji_nginx
8b7320b80f58        dockerjiji2_jiji    "pumactl -S /var/run/"   35 seconds ago      Up 33 seconds                  8080/tcp                        jiji_jiji
40260d68dfad        mongo:3.0.7         "/entrypoint.sh mongo"   35 seconds ago      Up 34 seconds                  0.0.0.0:27018->27017/tcp        jiji_mongodb

```

###ブラウザからアクセス

IPは自分の環境で読み替えてください。

```
https://172.xxx.xxx.xxx:8443/
```

うちではVPSにプロキシ建ててからSSHでトンネリングして、プライベートIPでアクセスしています。
このあたり参照しました。
http://qiita.com/kiida/items/37557a1029788afec98a