0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

社内でGrowiを立ち上げてみた(補足その1)

Last updated at Posted at 2024-08-12

はじめに

でGrowiによるWikiサーバーの運用を始めてみると分からないことだらけでした。初心者向けの説明が見つからなくて試行錯誤しましたので、まとめておこうと思います。
前提としてLinux(Ubuntu)の基本的な操作はOKとします。

  • Ubuntu ServerのCLI操作(起動・停止・ツールの導入・アップデート等)
  • ファイル、ディレクトリツリー、管理者権限、パーミッションなどの理解
  • ファイル編集

Growiの設定

公式の説明はかなりあっさりしているので自分が戸惑ったところを補足します。
/opt/growi の下にソースコードをGitHubからcloneしてきた前提です。

Dockerコンテナ

Growiは3つのコンテナを起動して動作します。

  • Growi
  • Elasticsearch
  • mongoDB

Growiのバージョン指定は
/opt/growi/Dockerfileに記載されている

ARG version=7

です。現時点(2024/8/12)ではGrowi v7.0.xはまだ不安定なのでv6.3を利用する方が無難と公式が書いているので、業務利用であればv7.1.xがリリースされるまではここは

ARG version=6

にした方がいいのでしょう。(v6.3.xが起動します)

/opt/growi/docker-compose.yml の修正箇所ですが、まずローカルPC以外からアクセスする場合は

    ports:
      - 127.0.0.1:3000:3000    # localhost only by default

    ports:
      - 3000:3000    # accessible from any host

に変更します。また、アップロードしたファイルをmongoDBに一緒に保存するなら

    environment:
      - MONGO_URI=mongodb://mongo:27017/growi
      - ELASTICSEARCH_URI=http://elasticsearch:9200/growi
      - PASSWORD_SEED=changeme
      # - FILE_UPLOAD=mongodb   # activate this line if you use MongoDB GridFS rather than AWS
      # - FILE_UPLOAD=local     # activate this line if you use local storage of server rather than AWS

の FILE_UPLOAD=mongodbの行のコメントアウトをやめます(#を消します)

    environment:
      - MONGO_URI=mongodb://mongo:27017/growi
      - ELASTICSEARCH_URI=http://elasticsearch:9200/growi
      - PASSWORD_SEED=changeme
      - FILE_UPLOAD=mongodb   # activate this line if you use MongoDB GridFS rather than AWS
      # - FILE_UPLOAD=local     # activate this line if you use local storage of server rather than AWS

ElasticseachはGrowiの全文検索を行うツールですが、V7とV8が選べるようになっています。
/opt/growi/docker-compose.yml ファイルの中でV8を指定しているので、必要なければそのままでいいでしょう。

      context: ./elasticsearch/v8
      (skip)
       - ./elasticsearch/v8/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml

ここのv8でV8側が指定されています。
Elasticsearchの細かいバージョン指定は
/opt/growi/elasticsearch/v8/Dockerfile で指定されています。(単なる情報でここはいじりません)

ARG version=8.7.0

さて残る一つのコンテナ、mongoDBですがこれはデータベースです。
mongoDBはイメージファイルをそっくり持ってきて利用し、バージョンが固定されています。mongoDBのバージョンが変わると保管されているデータの整合が取れなくなるので、固定されているのでしょう。
/opt/growi/docker-compose.yml ファイルの中の、

  mongo:
    image: mongo:6.0

で6.0を指定しています。このバージョンは重要で、データのバックアップ・リストアを行う場合はこのバージョンが同一であることが必須です。
[補足]古いPCのCPUでAVX命令をサポートしていない場合、mongoDBの5.0以降はAVX命令が必須のため起動しません。mongoDBのバージョンアップ手順は面倒なので、できるだけ6.0で動く環境で立ち上げることをお勧めします。(古いCPUで動かすためしばらくmongoDBの4.4を使用していました)

Growiの初回起動

Growiサーバーを動かしているPCのIPアドレスが192.168.0.10で、他のPCからアクセスするならば、ブラウザから
http://192.168.0.10:3000/
でGrowiの初期設定画面が表示されるはずです。
自分のローカルのUbuntu Desktop PC上でGrowiを起動した場合は、
http://localhost:3000/
でアクセスできます。

Growiの初期設定

最初にアクセスした場合、管理者登録の画面になりますので、管理者名とパスワードを入力します。
例)管理者名:admin, パスワード:8文字以上
あとで管理者を追加することはできますが、ここで入力した管理者名とパスワードは忘れないようにしましょう。
growi_initial.png

管理者が行う設定

Growiのバージョンによって設定は変わるので、V6.3で自分が設定したところをいくつか紹介します。
growi_adminlogin.png
管理者としてログインしたらサイトURLを設定します。
url設定.png
ここで設定するURLは社内で使うならダミーで適当なものを入力すればOKです。
例)http://hoge.com
次にアプリ設定でメールアドレスを設定することができますが、IT部門の管理しているメールサーバーに登録依頼するのは面倒なのでできなさそうなので空欄のままにしました。ここでメールサーバーと連携すれば、ユーザからの各種メールが管理者に飛んでくるようにできるはずです。
その下のファイルアップロード設定は、私の場合はmonboDBを選択しました。mongoDBのデータベースをまとめてバックアップする方針です。
mail_upload.png

一般ユーザの登録

初期設定が終わってから、一般ユーザの登録方法は

  • 管理者が行う場合
  • ユーザからの申請による場合

があります。自分の部署では、使いたい人に新規ユーザ登録を申請してもらって、管理者が承認する、という手順にしています。(メールの連動設定してないので、個別に承認依頼を連絡してもらっています。)
ログイン画面の「新規登録はこちら」をクリックしてもらうと、
new_user.png
こちらの画面に切り替わるのでID,名前、メールアドレス、パスワードを入力すると新規ユーザが仮登録されます。
new_regist.png
管理者のユーザ管理画面に申請したユーザが追加されるので、そのユーザの歯車アイコンから承認すると、ユーザが正式にアクセスできるようになります。(参照したり、新規Wikiを作成したりできる)
users.png

Growiの起動・停止

Growiをdocker-composeで立ち上げた場合、コンテナの操作はdocker-composeコマンドを使用します

docker-composeコマンド

docker-composeコマンドは、それを実行するディレクトリに存在するdocker-compose.ymlファイルを元に動作しますから、まずそのディレクトリに移動してからコマンド実行するようにしましょう。
また、docker-composeコマンドは管理者権限で実行する必要がありますので、sudoをつけてください。
[補足] docker-composeコマンドですが、バージョンによってハイフンなしで実行させるものがあるようです。(V2?自分の環境はV1)
docker-compose オプション(V1の場合)
docker compose オプション(V2の場合)
ここではハイフンありで記載しました。
[補足] docker-composeがV1とV2では、生成されるコンテナ名が変わるようですので、途中でdocker-composeをバージョンアップしない方がいいです。
V1:growi_mongo_1
V2:growi-mongo-1

$ cd /opt/growi
$ sudo docker-compose ps

docker-composeでコンテナが起動している状態でdocker-compose.ymlファイルを編集することは避けてください。辻褄があわなくなり収拾に苦労します。(手動でdockerコマンドを使ってコンテナやイメージを消したりする羽目に)
なので、docker-compose.ymlをいじる時は事前にコンテナを停止・消去するのが安全です。
コンテナを消去しても、保存されているデータ自体は消えません。

コンテナ作成後起動

$ cd /opt/growi
$ sudo docker-compose up -d

コンテナが作成され、実行が始まります。-dをつけるとコマンドの実行結果の表示を行わずバックグラウンドで実行されるので、どこまで進んだかわかりません。なので一番最初の時は

$ cd /opt/growi
$ sudo docker-compose up

で実行させるのが良いのですが、この場合はフォアグラウンドで実行され、それをCtrl-Cで停止すると起動したGrowiの実行が停止します。再度実行させる場合は後述のdocker-compose startでどうぞ

起動中コンテナの表示

$ cd /opt/growi
$ sudo docker-compose ps

コンテナ停止

コンテナの実行を停止しますが、コンテナ自体はそのままです。
OSのアップデートでリブートするような時は、事前にコンテナ停止しておいてOS再起動後にコンテナ再開するのが無難?

$ cd /opt/growi
$ sudo docker-compose stop

コンテナ再開

止めていたコンテナを起動します。

$ cd /opt/growi
$ sudo docker-compose start

コンテナ停止・消去

コンテナを停止し、さらに消去します。
コンテナを消去しても、データ自体は残っているので再度コンテナ作成・起動すれば元の状態に戻ります。
コンテナを消去するのは、残っているイメージファイルを完全消去する場合が考えられます。通常は使わない?

$ cd /opt/growi
$ sudo docker-compose down

コマンドオプションの関係
docker-compose up <-> docker-compose down コンテナ作成・消去を伴う
docker-compose start <-> docker-compose stop コンテナ実行・停止のみ

その他

Growiのサーバー側の修正を行って再起動したら、ブラウザからアクセスができないことがあります。何度かトライしているとアクセスできるのですが、なかなかアクセスできない時はブラウザ側のキャッシュをクリアすると効果があるようです。

データをインポートしたりmongoDBのデータを直接書き換えたりした場合、検索ができなくなるのでElasticsearchのインデックス再構築をしてください。

0
1
0

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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?