LoginSignup
1
2

More than 5 years have passed since last update.

IDCF Cloud で crowi-plus を起動するまで

Last updated at Posted at 2018-01-08

linux も docker もよくわかってない人が書いた文章です

簡易概要

今回やること

IDCF Cloud を利用して、仮想マシン作ってサーバー立てて、crowi-plus を起動して
自宅、職場、実家、ネカフェで閲覧できる自分用 wiki を作成する

紹介してるページはいっぱいあるけど、全くうまくいかなかったので自分用にまとめ

IDCF Cloud とは

月 500 円からサーバーを立てられるクラウドサービス
サーバーを起動している時間でお金を取られるらしい

電気代考えたら VirtualBox よりいいだろうし
そもそも自宅 PC の VirtualBox に職場からアクセスする方法わからんし、という理由で利用
初期設定も楽なので、いろいろ設定を試してミスったら削除、が楽チンでよい

crowi-plus とは

便利な wiki である crowi をフォークした、かゆい所に手が届く wiki
本家より微妙な部分もあるけど、現状日々更新されてるっぽい
https://qiita.com/yuki-takei/items/5df9601039ccfc1df01f

手順

IDCF Cloud でサーバー借りて、ログインするまで

  1. アカウントを新規作成する
  2. コンピューティング -> 仮想マシン -> 仮想マシン作成 で設定したら作成
  3. コンピューティング -> IP アドレス -> IP アドレス で IP アドレスの確認
  4. コンピューティング -> IP アドレス -> IP アドレスの名前 -> ファイアウォール で設定
  5. コンピューティング -> IP アドレス -> IP アドレスの名前 -> ポートフォワーディング で設定
  6. 仮想マシンの起動が完了していたら、Teraterm とかで SSH 接続
    • コンピューティング -> 仮想マシン -> 仮想マシン選択 -> コンソール で起動状態確認可能

仮想マシン設定

¥500。実際安い
ただし、crowi-plus の検索用プラグインの Elasticsearch はめっちゃメモリを食うらしく、
1 GB のマシンだと、通常設定では crowi-plus が(あまり)立ち上がらない
これでかなり嵌った

- ゾーン:pascal
- マシンタイプ:¥200(1CPU * 0.8GHz、RAM 1G)
- イメージ:CentOS、Ubuntu(Debian、Redhut はわからん)
- ボリューム:¥300(ルートディスク 15GB、データディスク 未入力)
- SSH Key:
    - 初めての場合は秘密鍵を .txt として保存
      色んな環境で使うことを想定するなら Dropbox とかに置いとく
    - すでに作成済であれば普通に選択
    - 作成してるけど選択できない場合は、秘密鍵の .txt をアップロード
- 仮想マシン台数:1 台
- ネットワークインターフェース:デフォルトのものがチェックされている
- 詳細情報:仮想マシン名をつける。他チェック2つはつけたまま

秘密鍵(SSH Key)は SSH 接続で必要なので、なくさないように注意
なくしたらアクセスする手段がなくなる(と思う)
DropBox とかに保存して、自宅、職場とかで使いまわせるようにしてる
セキュリティ的にやばそうだけど、いい方法は思いつかない

IP アドレス

デフォルトで 1 個用意されてると思う
「IP アドレス+設定したポート」で SSH 接続したり、crowi-plus にアクセスする

ファイアーウォール

仮想マシンを削除しても設定は消えない
自宅、職場、実家・・・とどんどん増やしていく
セキュリティ的にはだめそう

コメント ソースCIDR タイプ ポートレンジ
自宅 My IP(を選択すると自動設定される) CustomTCP 8000-65535(開きたいポートだけを選択)
職場

ポートフォワーディング

VirtualBox とかでやるやつ
仮想マシンを削除すると設定は消える
パブリックポートに設定したポートは、ファイアウォールで設定していないといけない

コメント パブリックポート プライベートポート 仮想マシン
SSH(適当) CustomTCP 選択/9999(適当) 22 さっき作成したやつを選択
crowi-plus(適当) CustomTCP 選択/30000(適当) 3000(crowi-plus のデフォルトは 3000) さっき作成したやつを選択

SSH 接続

  1. Teraterm とか落としてきて起動
  2. ホスト: IP アドレス画面に表示されてる IP アドレス入力
  3. ポート:ポートフォワーディングで、プライベートポート 22 を設定したやつのパブリックポートの方を入力
  4. OK 押下
  5. セキュリティ警告がでたら続行押下
  6. ユーザ名:root、パスワード:空欄
  7. RSA/DSA鍵を使う:仮想マシン作成時に選択した秘密鍵の .txt を選択
  8. OK 押下で、ここまでの設定があってれば、すぐ仮想マシンに繋がる

なんか失敗したら仮想マシン削除して、もっかい作り直そう
自分の PC で VirtualBox 使うより楽チンちん

crowi-plus 導入まで

Ubuntu

必要になったら書く

CentOS

crowi-plus の起動が終わったら、プライベートポート 3000 で設定したやつのパブリックポートからアクセスできるようになる
他の人があっさり流してるこの部分で相当ハマッた

// docker、docker-compose のインストールから、普通に使用できるようにするまで
// update 長い
# yum -y update
// docker 適当にやると最新バージョンをインストールできない
# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# yum -y install docker-ce
# systemctl enable docker.service
# systemctl start docker.service
# yum info docker-ce
// docker-compose 1.11 より 1.18 とかの新しいバージョンではだめなのかわからん
# curl -L https://github.com/docker/compose/releases/download/1.11.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
# chmod 755 /usr/local/bin/docker-compose
# visudo
// /usr/local/bin 追加
(ユーザー作成後に他設定と一緒にやったほうがいいけど、docker 設定なのでこっちに記述)
Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/local/bin:/usr/bin

// ユーザー作成まで
# useradd hogeuser
# passwd hogeuser
// パスワード設定 //
# visudo
// %wheel 左のコメントアウト外す
## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL

# usermod -aG wheel hogeuser

// メモリのスワップ
# dd if=/dev/zero of=/swapfile1 bs=2M count=1024
# chmod 600 /swapfile1
# mkswap /swapfile1
# swapon /swapfile1

// crowi-plus
# su hogeuser
$ cd ~
$ git clone https://github.com/weseek/crowi-plus-docker-compose.git crowi-plus
$ cd crowi-plus
$ cp examples/https-portal/docker-compose.override.yml .
// Dockerfile の修正(コメントアウト外す)
$ vim Dockerfile

RUN echo "install plugins" \
  && npm install --save \
     crowi-plugin-lsx \
     crowi-plugin-pukiwiki-like-linker \
  && echo "done."
# you must rebuild if install plugin at least one
RUN npm build:prod

// docker-compose.dev.yml の修正
// 使用メモリを 256m とかに抑える
$ vim docker-compose.dev.yml
environment:
  - "ES_JAVA_OPTS=-Xms256m -Xmx256m"

// docker-compose.yml の修正
$ vim docker-compose.yml

// 127.0.0.1:3000:3000 の部分
ports:
  - 3000:3000
// タイムアウトを 60s から伸ばす
  - timeout 180s
// 使用メモリを(ry。docker-compose.dev.yml との違いは不明environment:
  - "ES_JAVA_OPTS=-Xms256m -Xmx256m"  # decrease amount or just comment out this line if you cannot allocate enough memory

// -d でバックグラウンド実行
$ sudo docker-compose up
// 止める場合
$ sudo docker-compose stop

解説や注意

docker のインストール
ミスるとバージョン違いで docker-compose のコマンドがうまくいかない

/usr/local/bin を追加
しないと、いちいち /usr/local/bin/docker-compose って打つ羽目になる

wheel 周りの設定
docker-compose をユーザーが使用できるようにするため(だったと思う)

cp examples/https-portal/docker-compose.override.yml .
わからん
http プロキシがどうとか
https://github.com/weseek/crowi-plus-docker-compose/tree/master/examples/https-portal

メモリのスワップ
ユーザーでなく、root でないとコマンドが実行できなかった
初回の docker-compose up 時に
Elasticsearch の部分でメモリが足りなくて途中で落ちるらしい
91% chunk asset optimization とかいう部分で止まる
ES_JAVA_OPTS で設定したメモリとは違うっぽい

メモリのオプション
Elasticsearch はデフォで 2GB 使う仕様になってるらしいし、
オプションも 2g とか書いてあって、IDCF は 1GB で借りてるんだから
そら動かんよなあ、と

メモリが足りない環境ならコメントアウトしろ、と書いてるが、
256m って書いたほうが安定して起動できてる気がする
どのくらいが最適な設定かは不明

タイムアウトを伸ばした理由
crowi-plus 起動時に
Problem with dial: dial tcp 172.18.0.4:9200: getsockopt: connection refused. Sleeping 1s
のようなログが表示されるが
Elasticsearch が起動しきるまえにタイムアウトを迎えて、crowi-plus にアクセスできなくなるため
(メモリ問題に気づく前のことなので、別にタイムアウト伸ばさなくてもいいかもしれない)

なんか途中でエラーでて止まった
初回 docker-compose up で、ProtocolException だかなんだかがでて止まった
一旦 SSH 接続切って、再接続した後もう一度 docker-compose up したら動いた
なにそれ・・・

Redmineとか動かしたら、crowi-plus 起動しなくなった
調べ中
crowi-plus だけ動かすなら、これでいけると思う

参考

一部

最強のWiki「Crowi」のフォーク、「crowi-plus」を公開した話
https://qiita.com/yuki-takei/items/5df9601039ccfc1df01f

月額500円でDockerを使ってCrowiを運用する on @Qiita
https://qiita.com/isaoshimizu/items/e3de3e6a0a3dd7602b9f

Crowi-Plusを導入する@CentOS7
https://qiita.com/fumitti/items/b7cf00cebc7d4350a1ff

crowi-plusをEC2(t2.micro)で動かす
https://qiita.com/7tsuno/items/4db90d6c5fad7388efa3

CentOSでuserをsudo可能にする on @Qiita
https://qiita.com/Esfahan/items/a159753d156d23baf180

コピペ用

yum -y update
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum -y install docker-ce
systemctl enable docker.service
systemctl start docker.service
yum info docker-ce
curl -L https://github.com/docker/compose/releases/download/1.11.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod 755 /usr/local/bin/docker-compose

useradd hogeuser
passwd hogeuser

visudo

## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL

Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/local/bin:/usr/bin

usermod -aG wheel hogeuser

dd if=/dev/zero of=/swapfile1 bs=2M count=1024
chmod 600 /swapfile1
mkswap /swapfile1
swapon /swapfile1

su hogeuser
cd ~
git clone https://github.com/weseek/crowi-plus-docker-compose.git crowi-plus
cd crowi-plus
cp examples/https-portal/docker-compose.override.yml .
vim Dockerfile

RUN echo "install plugins" \
  && npm install --save \
     crowi-plugin-lsx \
     crowi-plugin-pukiwiki-like-linker \
  && echo "done."
# you must rebuild if install plugin at least one
RUN npm build:prod

vim docker-compose.dev.yml

environment:
  - "ES_JAVA_OPTS=-Xms256m -Xmx256m"

vim docker-compose.yml

ports:
  - 3000:3000

  - timeout 180s

environment:
  - "ES_JAVA_OPTS=-Xms256m -Xmx256m"  # decrease amount or just comment out this line if you cannot allocate enough memory

sudo docker-compose up
1
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2