Ubuntu18にGrowiをインストールする

Growiをインストールしたときのメモ。

もくじ:

はじめに

別記事でCrowiやらcrowi-plus/Growiのインストール方法をメモしていますが、最近のバージョンで記載が取っ散らかってきた気がするので一旦更新しておきます。

今回も最低限の構成で実行基盤のNode.js(サーバサイドJavaScript)と、バックエンドのMongo DB (ドキュメントDB)とし、動いたやり方をメモしておきます。
面倒だったので、全文検索用のElasticSearchなどオプションの構成は省略しています。

検証した環境は次の通り。

  • Ubuntu Server 18.04 (Bionic)
  • Growi v3.2.0
  • Node.js v8 (npm 6)
  • MongoDB 4.0

今回は下記のように、(bash)スクリプトの他に設定用のファイルをサーバにコピーしておきます。

スクリプト(setup_growi.sh)

今回のスクリプトです。echoで表示させているだけの行は省略可能です。

プロキシ付きの場合はproxy_urlのところにアカウントやアドレス等を書いておきます。
後に説明するように、プロキシ設定が不要な場合は関係するブロックをコメントアウトするなどして削除して下さい。

また、Mongo shellに渡すDB名やアカウントも実際の設定に応じて書き換えて下さい。

使い方は実行権限をつけて実行するだけです。

設定ファイル

Daemonを設定するために各設定ファイルを作成する必要がありますが、面倒なので今回はスクリプト中でシステムのパスへコピーします。
手動で実施する際はvimnanoを使って直接記述してしまって構いません。

mongod

Mongo DBをDaemon化するための設定ファイルです。
スクリプト中で/lib/systemd/system/mongod.serviceへコピーします。

growid

GrowiをDaemon化するための設定ファイルです。
スクリプト中で/lib/systemd/system/growi.serviceへコピーします。

ハードコーディングしていますが、インストールパスWorkingDirectoryなどは環境に合わせて書き換えて下さい。

startgrowi.sh

サービス起動用のスクリプトです。
インストールスクリプト中でGrowiのインストール先ディレクトリへコピーします。

growid.config

GrowiのDaemon設定を書いたファイルです。
スクリプト中で/etc/systemd/system/growi.confへコピーします。

実際の環境に合わせてCrowiの起動パラメータや、Mongo DBの設定を書いておきます。

インストール手順の説明

今回は各手順をスクリプトで書いていますが、ご参考までに内容を説明しておきます。
必要に応じて組み合わせたり、手動で実行することもできると思います。

認証付きプロキシ

(認証付き)プロキシを通すために環境変数http_proxyを設定しておきます。
また、エイリアスを使うことでsudoに環境変数を引き継ぎます。

shoptの行はスクリプト中でエイリアスを展開するためのものなので、手動で実施する際は不要です。

またGrowiの場合はyarn/npmでビルドしているので、念のため環境によってはこちらにもプロキシを通します。いずれもプロキシのない環境では不要です。

Mongo DBのインストール

MongoDB 4.0を試したところ、公式の方法ではプロキシありの環境でうまく通らず。色々試してもapt-keyでコケる。--keyserver-optionを指定しても通らず。

仕方ないのでキーをcurlでダウンロードして読ませることにしました。
公開鍵をインポートしたのち、aptでインストールします。
また、設定ファイルをローカルからsystemdのパスへコピーし、systemctlを使って自動起動に設定しておきます。

Node.jsのインストール

新しめのLTSバージョンを入れるため、8.xを指定してインストールします。明示的にaptに指定しなくてもnpmは互換のバージョンが入ります。

DBの設定

Mongo shellを使ってGrowi用のDBを設定しておきます。
DB名、ユーザー名、パスワードは環境に応じて設定して下さい。

最後のadminデータベースへのアクセスは、ユーザが作成されていることを確認しているコマンドなので必須ではありません。

Growiのインストール

Githubからチェックアウトしてyarn/npmでインストールします。
下記のインストールパス(/usr/local/bin/growi)は例ですが、変更する場合はDaemon化の設定も修正して下さい。

Daemonのスタート用スクリプトは上記のように事前に作成したファイルをコピーするか、対象のファイルを編集(新規作成)して定義して下さい。

起動テスト

問題なく構築できている場合はサービスとして設定できます。

今回は使っていませんが、ファイヤウォールを設定している場合は必要なポートを許可しておいて下さい。

ブラウザでhttp://(host address):3000/にアクセスするとインストールページが表示され、管理者アカウントの設定画面になるはずです。

おわり。