立ててみた。Discourse ってのは、......なんかフォーラムみたいなやつ?
↑は Discourse というプロダクト全般に関するサイト。マネージドな Discourse を有償で提供してるようだ。
で、Discourse 自体は OSS なので、マネージドのものでなくてよければ・自分で運用するならば、費用なしで持てる。
なので、立ててみた。
https://discourse.a-know.me/discourse.a-know.me
(※2018-02-14 追記:上記インスタンスは停止しました。)
なんのついてのフォーラムだかサッパリだと思うけど(僕もそう)、まぁなんか面白そうなのでしばらく飼ってみるか。というかんじ。
今回も CloudGarage の DAP を利用してるインスタンスに立ててるので、かかってるコストも基本的にはなし。いつもありがとうございます。
構築方法とか
公式の提供している構築手順がしっかりしまくっていて、書いてあるとおりにすればいい。Docker コンテナとして動くようにちゃんとされてる。
おおまかな流れとしては、
- Discourse をセットアップしたいサーバーを用意する(Ubuntu 16.04 LTS x64 がオススメらしい)
- Docker / Git をインストールする
- https://github.com/discourse/discourse_docker を clone する
- clone したところで
./discourse-setup
する
というかんじ。この手順の詳細がここに書いてある。Let's Encrypt を用いての TLS/SSL化も ./discourse-setup
で標準サポートされていてすごい。
一点、上述の ./discourse-setup
すると、途中でメールの配信方法について聞かれる。ユーザー登録などのフローでメールが使われるからだ。
これは僕は、以前にマストドンを立てたときにSparkPostのアカウントを作っていたので、今回もそれを利用した。そこらへんについては以下の記事を参照。
オマケ
Discourse のコンテナとこれをのせてるサーバのモニタリングを Mackerel でやっちゃいましょう。エージェントもコンテナとして動かす。
# 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
とりあえずはエージェントを入れるだけでできる死活監視と、URL を指定しての外形監視だけ。その他の監視ルールについては、しばらく運用してみてから設定してみることにする。