えいのうにっき

a-knowの日記です

Discourse を立ててみた

立ててみた。Discourse ってのは、......なんかフォーラムみたいなやつ?

www.discourse.org

↑は Discourse というプロダクト全般に関するサイト。マネージドな Discourse を有償で提供してるようだ。

で、Discourse 自体は OSS なので、マネージドのものでなくてよければ・自分で運用するならば、費用なしで持てる。

github.com

なので、立ててみた。

f:id:a-know:20171014175121p:plain

https://discourse.a-know.me/discourse.a-know.me

(※2018-02-14 追記:上記インスタンスは停止しました。)

なんのついてのフォーラムだかサッパリだと思うけど(僕もそう)、まぁなんか面白そうなのでしばらく飼ってみるか。というかんじ。

今回も CloudGarage の DAP を利用してるインスタンスに立ててるので、かかってるコストも基本的にはなし。いつもありがとうございます。

blog.a-know.me

構築方法とか

公式の提供している構築手順がしっかりしまくっていて、書いてあるとおりにすればいい。Docker コンテナとして動くようにちゃんとされてる。

github.com

おおまかな流れとしては、

  1. Discourse をセットアップしたいサーバーを用意する(Ubuntu 16.04 LTS x64 がオススメらしい)
  2. Docker / Git をインストールする
  3. https://github.com/discourse/discourse_docker を clone する
  4. clone したところで ./discourse-setup する

というかんじ。この手順の詳細がここに書いてある。Let's Encrypt を用いての TLS/SSL化も ./discourse-setup で標準サポートされていてすごい。

一点、上述の ./discourse-setup すると、途中でメールの配信方法について聞かれる。ユーザー登録などのフローでメールが使われるからだ。

これは僕は、以前にマストドンを立てたときSparkPostのアカウントを作っていたので、今回もそれを利用した。そこらへんについては以下の記事を参照。

blog.a-know.me

オマケ

Discourse のコンテナとこれをのせてるサーバのモニタリングを Mackerel でやっちゃいましょう。エージェントもコンテナとして動かす。

mackerel.io

# docker run -h `hostname` \
>   -v /var/run/docker.sock:/var/run/docker.sock \
>   -v /var/lib/mackerel-agent/:/var/lib/mackerel-agent/ \
>   -e 'apikey=<api_key>' \
>   -e 'enable_docker_plugin=1' \
>   -e 'auto_retirement=0' \
>   -e 'opts=-v' \
>   --name mackerel-agent \
>   -d \
>   mackerel/mackerel-agent
Unable to find image 'mackerel/mackerel-agent:latest' locally
latest: Pulling from mackerel/mackerel-agent
d9aaf4d82f24: Pull complete 
d90fab5aee99: Pull complete 
268501f72e72: Pull complete 
ae8b36a5eded: Pull complete 
b957c192581a: Pull complete 
Digest: sha256:6c953bfd0184ab392657a0cb8facdf029014196e04b65cd7485c49ce68a722e6
Status: Downloaded newer image for mackerel/mackerel-agent:latest
6477ae9f27e298769ca03f954b4ab315cb09c879e9802361b7106d0ac91e2cc4
root@discourse:~# docker ps
CONTAINER ID        IMAGE                     COMMAND             CREATED             STATUS              PORTS                                      NAMES
6477ae9f27e2        mackerel/mackerel-agent   "/startup.sh"       53 seconds ago      Up 52 seconds                                                  mackerel-agent
84328ac19482        local_discourse/app       "/sbin/boot"        About an hour ago   Up About an hour    0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   app

f:id:a-know:20171014175656p:plain

とりあえずはエージェントを入れるだけでできる死活監視と、URL を指定しての外形監視だけ。その他の監視ルールについては、しばらく運用してみてから設定してみることにする。



follow us in feedly