LoginSignup
4
1

More than 3 years have passed since last update.

CentOS 7 に Discourse をインストールする

Last updated at Posted at 2019-04-12

Discourse とは


Discourse はいわゆる掲示板や電子会議室に相当するコミュニティのためのモダンなフォーラムソフトウェア。

主に以下のライブラリで構築されている。

xfs_info

xfs_info /var | grep ftype
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1

ftype=0 だと Docker の Storage Driver に OverlayFS が利用できない。

例えば お名前.com VPS のデフォルトインストールでは利用できないので「お名前.com VPS (KVM) に最新の CentOS をインストールする - Qiita」を参考に OS を再インストールする。
CentOS のデフォルトインストールであれば Storage Driver の設定に悩まず進められる。

DNS の設定

discourse    IN    A     192.0.2.1
mail         IN    A     192.0.2.1
             IN    MX    10    mail.example.jp.

mail         IN    A     192.0.2.1
@            IN    MX    10    mail.example.com.

example.jp.  IN    MX    10    mail.example.jp.

Discourse は IP アドレスでは動作しないので専用のドメインかサブドメインを用意する必要がある。ここでは discourse.example.jp として進める。
また、メールサーバーが必須なため、ここでは mail.example.jp とする。

必要パッケージのインストール

Docker のインストール

yum --assumeyes install git net-tools yum-utils && \
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo && \
yum --assumeyes install docker-ce && \
systemctl start docker && \
systemctl enable docker

git

Discrouse のダウンロードに使用する。

net-tools

./discourse-setupnetstat コマンドを使用するため net-tools パッケージをインストールする。

yum-utils

Docker 公式リポジトリの導入で yum-config-manager コマンドを使用するため yum-utils パッケージをインストールする。

docker-ce

パッケージ名に含まれる ceCommunity Edition の略。

Docker の Storage Driver の確認

Storage Driver の確認

docker info | grep Storage
Storage Driver: devicemapper

Docker の Storage Driver が devicemapper になっていると ./discourse-setup 実行時に Your Docker installation is not using a supported storage driver. If we were to proceed you may have a broken install aufs is the recommended storage driver, although zfs/btrfs/overlay and overlay2 may work as well. Other storage drivers are known to be problematic. というエラーが出力されてはじかれてしまう。

Storage Driver の変更

echo '{"storage-driver":"overlay2"}' >> /etc/docker/daemon.json
systemctl restart docker

CentOS では aufs を使用できないため overlay2 を使用する。
dockerd -s overlay2

https://docs.docker.com/v17.09/engine/userguide/storagedriver/overlayfs-driver/
https://docs.docker.com/storage/storagedriver/overlayfs-driver/

Storage Driver の再確認

docker info | grep Storage
Storage Driver: overlay2

Storage Driver が overlay2 に変わっていればよい。

Discourse のインストール

mkdir --verbose /var/discourse && \
git clone https://github.com/discourse/discourse_docker.git /var/discourse && \
cd /var/discourse && \
./discourse-setup
Hostname for your Discourse? [discourse.example.com]: discourse.example.jp
Email address for admin account(s)? [me@example.com,you@example.com]: admin@example.jp
SMTP server address? [smtp.example.com]: mail.example.jp
SMTP port? [587]:
SMTP user name? [user@example.com]: admin@example.jp
SMTP password? [pa$$word]: P@ssw0rd
Optional email address for setting up Let's Encrypt? (ENTER to skip) [me@example.com]:

後から SSL 対応にする場合

vi /var/discourse/containers/app.yml
templates:
  - "templates/web.template.yml"
  - "templates/web.ssl.template.yml"
  - "templates/web.letsencrypt.ssl.template.yml"
env:
  LETSENCRYPT_ACCOUNT_EMAIL: 'admin@example.jp'
cd /var/discourse
./launcher rebuild app

Setting up HTTPS support with Let's Encrypt - howto / sysadmin - Discourse Meta

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