オープンソースの議論型掲示板「discourse」
最近個人的な相談があり、discourseというオープンソースの掲示板の導入を行いました。
discourseは、Ruby on Railsで開発されたフォーラム、掲示板、チャットルーム、メーリングリスト管理などの機能を備えた議論に特化したコミュニケーションツールです。リロードなくコンテンツが更新され、複数のプラットフォームに対応しています。月100ドル〜のエンタープライズ版が存在しますが、オープンソース化もされているので誰でも自分のサーバーにインストールできます。日本語化もできます。
オープンソース版のdiscourseは、Twitter社などでも導入されています。Twitter DevelopersはTwitter社が運営する公式の開発コミュニティで、このTwitter Developersもdiscourseをベースに構築されています。
https://twittercommunity.com/twittercommunity.com
discourseのソースコードはGitHubで共有されていて頻繁にアップデートされています。
discourseのインストール要件
discourseはマストドンなどのOSSと同様にDockerでのインストールが推奨されています。ハードウェア要件とソフトウェア要件は以下の通りです。
ハードウェア要件 1コアCPU以上(2コア以上推奨) メモリ1GB以上(2GB以上推奨) Kernel 3.10以降の64ビットLinux OS(Ubuntu16.04推奨) 10 GBのディスクスペース
ソフトウェア要件 Postgres 9.5以降 Redis 2.6以降 Ruby 2.3以降 (2.3.1以降推奨)
当初、Dockerを使わないインストールを試行してみたのですが、変更しなければならない箇所が多く茨の道でした。Dockerを使ってインストールしましょう。
[asin:479814102X:detail]
discourseのインストール
素のUbuntu16.04へのインストール方法です。
DockerとGitをインストールします。
sudo wget -qO- https://get.docker.com/ | sh
ディレクトリを作成してdiscourseのDockerイメージをダウンロードします。
sudo mkdir /var/discourse
sudo git clone https://github.com/discourse/discourse_docker.git /var/discourse
セットアップツールを起動させます。ここでサーバーのメモリが1GB未満だとエラーで終了します。
cd /var/discourse
sudo ./discourse-setup
ウィザードが始まり質問に答えていきます。discourseはSMTPサーバー必須です。Postfixで新規に立てるのが面倒だったので、月間6,000通までのメール送信が無料のMailjetというサービスをSMTPサーバーとして利用しました。
Hostname for your Discourse? [discourse.example.com]: Email address for admin account? [me@example.com]: SMTP server address? [smtp.example.com]: SMTP user name? [postmaster@discourse.example.com]: SMTP port [587]: SMTP password? []:
containers/app.ymlが作成されます。次にBootstrapを実行します。
sudo ./launcher bootstrap app
これでDockerイメージが準備できました。以下のコマンドでdiscourseを起動させます。
sudo ./launcher start app
ブラウザでサーバーにアクセスすると管理者ユーザーの登録画面が出てきます(最初にメール認証あり)。質問に答えながら進めていけばdiscourseを開始できます。
discourseの開始・停止・containers/app.ymlを変更してのDockerの再構成は以下のコマンドで行います。
sudo ./launcher start app sudo ./launcher stop app sudo ./launcher rebuild app
管理者の画面には詳細な分析機能もあります。
謝辞
discourseの導入を私に相談されたのは、Twitterの私のフォロワーさんです。
その方から、私が本当にピンチだった時にはてなアカウントを取って、私宛に言及記事を書かれていたことを後から伺いました。その話を聞いた時には「あの記事の!」と驚きました。
1記事だけのはてな女子。あの記事は私の宝です。ありがとうございます。あの記事のアドバイスを忘れぬように歩みます。
こういう形でお役に立てて嬉しいです。