はじめに
自宅にNASを持っている方も最近は多いかもしれません。Googleフォトのサービスが有料になったりするなど、クラウドのサービスもいつどうなるか分からないため、自分でデータは管理したいと言われる方も多いでしょう。
今回はNASの中でも使いやすいSynology社のNASにGrowiというWikiサイトを立ち上げる方法を紹介したいと思います。
社内や家庭で情報を共有したい方は、便利ですので、興味があれば試してみてください。
今回Growi自体の使い方は載せていませんので、詳しくは下記の公式ページをご覧ください。
SynologyのNASでの設定
1.Gitコマンドを使えるようにする。
- Synologyのパッケージセンターの「設定」>「パッケージソース」に以下を追加する。
synocommunity:http://packages.synocommunity.com/
- Synologyのパッケージセンターの「設定」>「全般」のトラストレベルに以下の設定を行う。
☑Synology Inc.および信用された製造元
2.SSHでつながるように設定する。
1.Synologyのコントロールパネルの「端末とSNMP」>ターミナルに以下の設定を行う。
☑SSHサービスを有効にする。
3.Dockerをインストールする。
1.Synologyのパッケージセンターより、「Docker」を検索し、インストールする。
4.Docker-ComposeでGrowiをインストールする。
- SSHで繋げ、管理者権限でログインする。
sudo su -
2.Gitのプロキシ設定を行う。(プロキシーサーバがある方のみ)
git config --global http.proxy XXX.XXX.XXX.XXX:yyyy
git config --global https.proxy XXX.XXX.XXX.XXX:yyyy
3.Growiのインストール
cd /volume1/docker
git clone https://github.com/weseek/growi-docker-compose.git growi
4.growiフォルダのDockerfileを編集する。(プロキシーサーバがある方のみ)
RUN ES_JAVA_OPTS="-DproxyHost=XXX.XXX.XXX.XXX-DproxyPort=yyyy -Dhttps.proxyHost=1XXX.XXX.XXX.XXX -Dhttps.proxyPort=yyyy" bin/elasticsearch-plugin install analysis-kuromoji
RUN ES_JAVA_OPTS="-DproxyHost=XXX.XXX.XXX.XXX -DproxyPort=yyyy -Dhttps.proxyHost=XXX.XXX.XXX.XXX -Dhttps.proxyPort=yyyy" bin/elasticsearch-plugin install analysis-icu
5.growiフォルダのdocker-compose.ymlを編集する。
①.ポートを変更
services:
app:
ports:
- 3000:3000
②.パスワード
XXXXXのところは、自分でパスワードを決めてください。
- PASSWORD_SEED=XXXXX
③.ファイルのアップロード設定
- FILE_UPLOAD=local
④.数式有効
- MATHJAX=1
⑤.elasticsearchのプロキシ設定(プロキシーサーバがある方のみ)
environment:
- "ES_JAVA_OPTS=-Xms256m -Xmx256m -DproxyHost=XXX.XXX.XXX.XXX -DproxyPort=yyyy"
6.elasticsearchフォルダのDockerfileを編集する。
RUN ES_JAVA_OPTS="-DproxyHost=XXX.XXX.XXX.XXX -DproxyPort=yyyy -Dhttps.proxyHost=XXX.XXX.XXX.XXX -Dhttps.proxyPort=yyyy" bin/elasticsearch-plugin install analysis-kuromoji
RUN ES_JAVA_OPTS="-DproxyHost=XXX.XXX.XXX.XXX -DproxyPort=yyyy -Dhttps.proxyHost=XXX.XXX.XXX.XXX -Dhttps.proxyPort=yyyy" bin/elasticsearch-plugin install analysis-icu
7.実行
cd growi
docker-compose up -d
8.動作確認
docker ps
Growiのバックアップ設定
何かあった時の為にバックアップは取りたいですよね。下記のように設定してバックアップも実現することが出来ます。
1.バックアップスクリプト作成
vi growi_backup.sh
#!/bin/sh
BKDIR=/volume1/Backup
docker exec -d growi_mongo_1 mongodump --archive=mongodb.archive
docker cp growi_mongo_1:mongodb.archive $BKDIR/$(date --date '1 day ago' "+%Y%m%d%s_4.4_mongodb.archive")
find $BKDIR -mtime +6 | xargs rm -rf
2.コントロールパネルのタスクスケジューラに以下を登録
[タスク設定]
sh /volume1/docker/growi/growi_backup.sh
※名前などは適当でよい。
バックアップデータからの復元方法
1.復元したいファイルをカレントディレクトリにコピーする。(例では、mongodb.archive)
2.下記のコマンドで復元する。
docker cp mongodb.archive growi_mongo_1:/
docker exec -d growi_mongo_1 mongorestore --drop --archive=mongodb.archive
番外編
停止コンテナ、イメージ、ボリューム、ネットワークの削除
1.コンテナの停止
docker-compose stop
2.全て削除する。
docker container prune
docker image prune
docker volume prune
docker network prune
ボリュームでのバックアップ(ローカルに保存している場合)
1.以下のコマンドで、「CONTAINER ID」を確認しておく。
docker ps
2.コンテナの停止
docker-compose stop
3.カレントディレクトリに「backup」を作成する。
4.バックアップファイルを作成する。
# mongoDB
> docker run --volumes-from <CONTAINER ID> --mount type=bind,src="$(pwd)/backup",dst=/backup -it mongo:3.4 tar cvf /backup/growi_mongo_db.tar /data/db
# growi
> docker run --volumes-from <CONTAINER ID> --mount type=bind,src="$(pwd)/backup",dst=/backup -it growi_app tar cvf /backup/growi_growi_data.tar /data
Dockerにログインしたい場合
docker exec -it growi_app_1 sh
まとめ
いかがだったでしょうか?
私のメモとして書いている為、ちょっと分かりにくいところもあると思います。大変申し訳ございませんが、その場合は、ググって他のページなどを参考にされると良いと思います。
コメント