Ubuntu14.04にDiscourseをインストールする方法
警告:この記事は古く、機能しなくなりました。 代わりに、更新された談話記事をお読みください。
談話からの記事
序章
Discourse は、インターネットの次の10年のために構築されたオープンソースのディスカッションプラットフォームです。 DigitalOceanDropletでDiscourseを実行するために必要なすべての手順を説明します。
前提条件
始める前に、最初に設定する必要があることがいくつかあります。
2GB以上のRAMを搭載したUbuntu14.04ドロップレット(64ビット)。 この部分についてサポートが必要な場合は、このチュートリアルを使用して開始できます。
Discourseは、小規模なコミュニティには1 GBのRAMを、大規模なコミュニティには2GBのRAMを推奨しています。 1 GBのRAMを使用している場合は、スワップファイルも必要です。 従来の回転式ハードドライブを使用するシステムでは一般にスワップが推奨されますが、SSDでスワップを使用すると、時間の経過とともにハードウェアの劣化の問題が発生する可能性があります。 この考慮事項のため、DigitalOceanまたはSSDストレージを利用するその他のプロバイダーでスワップを有効にすることはお勧めしません。 そうすることは、あなたとあなたの隣人のための基礎となるハードウェアの信頼性に影響を与える可能性があります。 したがって、DigitalOceanドロップレットでDiscourseを実行するには、最低2GBのRAMをお勧めします。 スワップの使用方法の詳細については、 Ubuntu14.04でスワップを追加する方法を参照してください。
サーバーのパフォーマンスを向上させる必要がある場合は、Dropletをアップグレードすることをお勧めします。 これにより、一般的に良い結果が得られ、サービスに影響を与える可能性のあるハードウェアの問題に寄与する可能性が低くなります。
- テスト用のドメインとしてIPアドレスを使用できますが、運用サーバーの場合は、Dropletに解決されるドメインが必要です。 このチュートリアルが役立ちます。
- sudo権限を持つroot以外のユーザー( Ubuntu 14.04 を使用した初期サーバーセットアップでは、これをセットアップする方法について説明しています。)
- マンドリルおよびSMTPクレデンシャルの取得の無料アカウント。 Discourseで初めて使用できますが、これらの資格情報の有効性を事前にテストしても問題はありません。
このチュートリアルのすべてのコマンドは、root以外のユーザーとして実行する必要があります。 コマンドにルートアクセスが必要な場合は、その前にsudo
が付きます。 Ubuntu 14.04を使用したサーバーの初期設定では、ユーザーを追加してsudoアクセスを許可する方法について説明しています。
ステップ1—Gitをインストールする
このセクションでは、 Git をインストールして、Discourseソースファイルをダウンロードします。 Gitは、オープンソースの分散バージョン管理およびソースコード管理システムです。
始める前に、システムが最新であることを確認することを強くお勧めします。 rootユーザーとしてDropletにSSHで接続します。
ssh sammy@your-server-ip
ドロップレットで次のコマンドを実行して、システムを更新します。
sudo apt-get update sudo apt-get upgrade
それが完了したら、次のコマンドを実行してGitをインストールします。
sudo apt-get install git
ステップ2—Dockerをインストールします
このセクションでは、 Docker をインストールして、Discourseが実行するための分離された環境を持つようにします。 Dockerは、軽量のコンテナーで任意のアプリケーションをパック、出荷、実行できるオープンソースプロジェクトです。 Dockerの概要については、このチュートリアルを参照してください。
Dockerは、Dockerをインストールするためのパブリックスクリプトを提供します。
wget -qO- https://get.docker.io/ | sh
このユーザーとしてDockerコンテナーを実行できるようにするには、root以外のユーザーをdocker
グループに追加する必要があります。
sudo usermod -aG docker sammy
また、変更を有効にするには、そのユーザーとしてログアウトしてから再度ログインする必要があります。
exit su - sammy
ステップ3—談話をダウンロードする
このセクションでは、Discourseをダウンロードします。
/ var / discourse フォルダーを作成します。このフォルダーには、すべてのDiscourse関連ファイルがあります。
sudo mkdir /var/discourse
公式のDiscourseDockerイメージをこの/var /discourseフォルダーにクローンします。
sudo git clone https://github.com/discourse/discourse_docker.git /var/discourse
ステップ4—談話を構成する
このセクションでは、初期の談話設定を構成します。
/ var /discourseディレクトリに切り替えます。
cd /var/discourse
samples /Standalone.ymlファイルをcontainers
フォルダーにapp.yml
としてコピーします。
sudo cp samples/standalone.yml containers/app.yml
app.yml
ファイルの談話構成を編集します。
sudo nano containers/app.yml
設定ファイルがnanoテキストエディタで開きます。
env セクションを見つけて、以下に示すように、カスタムの電子メール、ドメイン、およびSMTPサーバー情報で更新します。 個々の行は、サンプルブロックの後に説明されています。
app.yml
... env: LANG: en_US.UTF-8 ## TODO: How many concurrent web requests are supported? ## With 2GB we recommend 3-4 workers, with 1GB only 2 #UNICORN_WORKERS: 3 ## ## TODO: List of comma delimited emails that will be made admin and developer ## on initial signup example '[email protected],[email protected]' DISCOURSE_DEVELOPER_EMAILS: '[email protected]' ## ## TODO: The domain name this Discourse instance will respond to DISCOURSE_HOSTNAME: 'discourse.example.com' ## ## TODO: The mailserver this Discourse instance will use DISCOURSE_SMTP_ADDRESS: smtp.mandrillapp.com # (mandatory) DISCOURSE_SMTP_PORT: 587 # (optional) DISCOURSE_SMTP_USER_NAME: [email protected] # (optional) DISCOURSE_SMTP_PASSWORD: 9gM5oAw5pBB50KvjcwAmpQ # (optional) ## ## The CDN address for this Discourse instance (configured to pull) #DISCOURSE_CDN_URL: //discourse-cdn.example.com ...
変更が必要な個々の行は次のとおりです。
- 管理者メールを設定する
Discourse管理者アカウントに使用する電子メールアドレスを選択します。 これは、Discourseドメインとはまったく関係がなく、便利な任意の電子メールアドレスにすることができます。 このメールアドレスをDISCOURSE_DEVELOPER_EMAILS行に設定します。 このメールアドレスは、ユーザーがそのメールに登録すると、デフォルトでDiscourse管理者になります。 このメールアドレスは、後でWebコントロールパネルからDiscourseを設定するときに必要になります。
DISCOURSE_DEVELOPER_EMAILS: '[email protected]'
[email protected]をメールに置き換えてください。
最初の管理者アカウントを作成してアクティブ化するには、開発者の電子メールの設定が必要です。
- ドメインの設定
DISCOURSE_HOSTNAMEをdiscourse.example.comに設定します。 これは、Discourseフォーラムをhttp://discourse.example.com/で利用できるようにすることを意味します。 サーバーを指すドメインがまだない場合は、代わりにここでIPアドレスを使用できます。 ここにリストできるドメイン(またはIP)は1つだけです。
DISCOURSE_HOSTNAME: 'discourse.example.com'
discourse.example.comをドメインに置き換えます。 WebからDiscourseインスタンスにアクセスするには、ホスト名が必要です。
- メールのクレデンシャルを設定する
SMTPメールサーバーにはマンドリルをお勧めします。 マンドリルからSMTPクレデンシャルを取得します。
DISCOURSE_SMTP_ADDRESS 、 DISCOURSE_SMTP_PORT 、 DISCOURSE_SMTP_USER_NAME 、およびDISCOURSE_SMTP_PASSWORDの行にSMTP資格情報を入力します。 (必要に応じて、これらの行の先頭からコメント#文字を必ず削除してください。)
DISCOURSE_SMTP_ADDRESS: smtp.mandrillapp.com # (mandatory) DISCOURSE_SMTP_PORT: 587 # (optional) DISCOURSE_SMTP_USER_NAME: [email protected] # (optional) DISCOURSE_SMTP_PASSWORD: 9gM5oAw5pBB50KvjcwAmpQ # (optional)
Discourseインスタンスからメールを送信するにはSMTP設定が必要です。 たとえば、登録メール、パスワードリセットメール、返信通知などを送信します。
メールのクレデンシャルの設定に問題がありますか? 談話電子メールトラブルシューティングガイドを参照してください。
メールクレデンシャルを設定する必要があります。設定しないと、Discourseインスタンスをブートストラップできません。 資格情報は正しい必要があります。そうでない場合、フォーラムにユーザー(管理者ユーザーを含む)を登録できません。
- オプション:メモリ設定の調整(1 GBドロップレットに推奨)
また、構成ファイルの env セクションで、db_shared_buffersを128MBに、UNICORN_WORKERSを2に設定します。より多くのメモリルームがあります。
db_shared_buffers: "128MB"
と
UNICORN_WORKERS: 2
これらのメモリ設定を調整すると、1GBのドロップレットでの談話のパフォーマンスが最適化されます。
注:上記の変更は必須であり、スキップしないでください。スキップしないと、Discourseフォーラムが壊れてしまいます。
app.yml
ファイルを保存し、テキストエディタを終了します。
ステップ5—ブートストラップ談話
このセクションでは、Discourseをブートストラップします。
まず、Dockerが必要なすべての外部リソースにアクセスできることを確認する必要があります。 Docker設定ファイル/etc/default/docker
を開きます。
sudo nano /etc/default/docker
DOCKER_OPTS 行のコメントを解除して、DockerがGoogleのDNSを使用するようにします。
/ etc / default / docker
... # Use DOCKER_OPTS to modify the daemon startup options. DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4" ...
Dockerを再起動して、新しい設定を適用します。
sudo service docker restart
注:ブートストラップコマンドを実行する前にDockerのDNS設定を変更しないと、「致命的:アクセスできません」https://github.com/SamSaffron/pupsのようなエラーが発生する場合があります.git / ':ホストを解決できませんでした:github.com」。
次に、ブートストラッププロセスを使用して、Discourseを構築し、前のセクションで構成したすべての設定で初期化します。 これにより、Dockerコンテナも起動します。 / var /discourseディレクトリにいる必要があります。
cd /var/discourse
ブートストラップ談話:
sudo ./launcher bootstrap app
このコマンドは、Discourse環境を構成している間、実行に約8分かかります。 (このプロセスの早い段階で、SSHキーを生成するように求められます。 Y を押して受け入れます。)
ブートストラッププロセスが完了したら、Discourseを開始します。
sudo ./launcher start app
おめでとう! これで、独自のDiscourseインスタンスができました。
ステップ6—談話にアクセスする
WebブラウザでドメインまたはIPアドレス(以前にDiscourseホスト名に設定したもの)にアクセスして、デフォルトのDiscourseWebページを表示します。
502 Bad Gatewayエラーが発生した場合は、1〜2分待ってから更新して、Discourseの開始を終了できるようにしてください。
ステップ7—サインアップして管理者アカウントを作成する
ページの右上にあるサインアップボタンを使用して、新しいDiscourseアカウントを登録します。 以前にDISCOURSE_DEVELOPER_EMAILS設定で指定したメールアドレスを使用する必要があります。 アカウントを確認すると、そのアカウントには自動的に管理者権限が付与されます。
サインアップしてログインすると、スタッフのトピックと管理者クイックスタートガイドが表示されます。 これには、Discourseインストールをさらに構成およびカスタマイズするための次のステップが含まれています。
/ admin にアクセスすると、管理ダッシュボードにアクセスできます。
サインアップからメールが届かず、新しい管理者アカウントを登録できない場合は、Discourseメールトラブルシューティングチェックリストを参照してください。
それでもメールで新しい管理者アカウントを登録できない場合は、コンソールから管理者アカウントを作成するウォークスルーをご覧ください。ただし、通常のSMTPを取得するまで、サイトが壊れていることに注意してください。メールが機能しています。
それでおしまい! これで、ユーザーがサインアップしてDiscourseフォーラムの管理を開始できるようになります。
インストール後のアップグレード
Discourseを最新バージョンにアップグレードするには、/admin/upgrade
にアクセスし、指示に従ってください。