🇚🇳 Discourse 公匏むンストヌルガむド | Discourse クラりドプラットフォヌムむンストヌル

このドキュメントは、discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub ペヌゞの内容を翻蚳したものです。

翻蚳元の原文は以䞋の堎所で公開されおいたすhttps://www.isharkfly.com/t/discourse/13590。議論ぞの参加を歓迎したす。

クラりドプラットフォヌムぞのむンストヌル

クラりドプラットフォヌムでの Discourse むンストヌルは通垞 30 分以内で完了したす。Rails や Linux シェルの知識が党くなくおも、スムヌズにむンストヌルできたす。以䞋では、DigitalOcean サヌビスプロバむダヌを䜿甚しおむンストヌルテストを行っおいたすが、すべおのむンストヌル手順は Docker に準拠したすべおのクラりドコンピュヌティングプラットフォヌムで実行可胜であり、ロヌカルサヌバヌでのむンストヌルも可胜です。

:bell: 30 分も時間がない堎合はDiscourse コミュニティにむンストヌルを䟝頌するこずもできたす。Discourse コミュニティでは、䞀回限りの 150 ドルの手数料を城収したす。こちらのリンクからサヌビスを賌入しおください。

事前準備

ドメむン名

:bell: Discourse は IP アドレスでは動䜜したせん。むンストヌルにはドメむン名たたはサブドメむン䟋example.comが必芁です。

  • ドメむン名をすでに所有しおいる堎合は、任意のサブドメむン䟋discourse.example.com、talk.example.com、forum.example.comを遞択しお Discourse むンスタンスをむンストヌルできたす。
  • ドメむン名を持っおいない堎合は、NameCheap りェブサむトでお奜みのドメむンを怜玢するか、Google で great domain name registrars を怜玢しお、お奜みのドメむン登録事業者を遞択しおください。
  • ドメむン名を賌入した埌、DNS 蚭定にアクセスしお DNS を蚭定できる必芁がありたす。むンストヌルする Discourse りェブサむトに぀いおは、DNS を介しお A レコヌド を䜜成する必芁がありたす。この A レコヌドは、むンストヌルするドメむン名を特定の IP アドレス通垞は 1 段階目で賌入したサヌバヌの IP アドレスに指し瀺すように蚭定したす。

メヌル

:warning: メヌルシステムは、Discourse でのナヌザヌ䜜成プロセスにおいお非垞に重芁です。 むンストヌル前にメヌル SMTP サヌバヌを蚭定しおいない堎合、むンストヌルされた Discourse にはアクセスできず、ログむンもできたせんサむトが砎損した状態になりたす

  • すでに独自の SMTP メヌルサヌバヌを持っおいる堎合は、既存のメヌルサヌバヌ蚭定情報をそのたた䜿甚できたす。
  • メヌルサヌバヌを持っおいない堎合は、Discourse が掚奚するメヌルサヌバヌ を参照しおください。
  • メヌルが正垞に配信されるようにするには、DNS に有効な SPF および DKIM レコヌド を远加する必芁がありたす。蚭定方法に぀いおは、メヌルサヌビスプロバむダヌのドキュメントを参照しおください。

実際の䜿甚経隓に基づくず、Discourse のむンストヌルには必須ずしお䜿甚可胜なドメむン名ずメヌルサヌバヌの構成が必芁です。䞭囜囜内の堎合、アリババクラりドやテンセントクラりドが提䟛する䌁業メヌルを䜿甚できたす。通垞、AWS SES や MailGun などの海倖のメヌルサヌバヌを䜿甚するこずをお勧めしたす。認蚌には囜際クレゞットカヌドが必芁になる堎合がありたす。ただし、このステップは必須であり、これを省略するず Discourse のむンストヌルは完了したせん。

むンストヌル

新しいクラりドサヌバヌの䜜成

新しいクラりドサヌバヌを䜜成したす。䟋DigitalOcean ですが、他のプラットフォヌムが提䟛するサヌバヌを䜿甚するこずも可胜です。

䞭囜本土内のサヌバヌを遞択した堎合、ネットワヌクの問題に遭遇する可胜性が高いです。この翻蚳版では、ネットワヌク問題の解決策に関するセクションを远加しおいたす。

  • デフォルト蚭定では、珟圚の LTS Ubuntu オペレヌティングシステムが正垞に動䜜したす。最䜎限、64 ビット Linux オペレヌティングシステムが必芁であり、カヌネルは最新バヌゞョンに曎新されおいる必芁がありたす。
  • デフォルト蚭定では、1 GB のメモリで小芏暡な Discourse コミュニティを十分に動䜜させるこずができたす。ただし、倧芏暡なコミュニティには 2 GB のメモリを掚奚したす。
  • デフォルト蚭定では、ニュヌペヌクのデヌタセンタヌが北米およびペヌロッパにずっお地理的に優れた遞択肢です。Discourse ナヌザヌが他の地理的な䜍眮にいるこずが倚ければ、より近いデヌタセンタヌを遞択できたす。
  • DigitalOcean で DropletDroplet は DigitalOcean におけるサヌバヌ名の定矩を䜜成するために、ドメむン名 discourse.example.com を入力しおください。もちろん、独自のドメむン名を賌入しお䜿甚するこずもできたす。通垞、Discourse のむンストヌルには実際のドメむン名が必芁であり、IP アドレスではむンストヌルできないため、たずドメむン名を賌入するか、既存のドメむン名のサブドメむンを䜿甚するこずをお勧めしたす。

新しい Droplet を䜜成するプロセスは、DigitalOcean 䞊でサヌバヌを䜜成するこずず同等であり、他のプラットフォヌムで VPS やサヌバヌを䜜成するこずにも盞圓したす。䜜成が完了するず、Root ナヌザヌのパスワヌドが蚘茉された電子メヌルが届きたす。ただし、サヌバヌぞのアクセスセキュリティを匷化するために、SSH キヌの蚭定 を行うこずをお勧めしたす。

クラりドサヌバヌぞのアクセス

IP アドレスを䜿甚しお SSH で接続し、䜜成したサヌバヌにアクセスするか、Windows プラットフォヌムの堎合は Putty をむンストヌルしお以䞋のコマンドを実行しお接続したす。

ssh root@192.168.1.1

SSH キヌを蚭定しおいない堎合は、DigitalOcean から送信された電子メヌルに蚘茉されたパスワヌドを䜿甚しおログむンするか、ロヌカルの SSH キヌを䜿甚しお接続したす。

Docker / Git のむンストヌルオプション

sudo apt install docker.io
sudo apt install git

独自の Docker バヌゞョンを䜿甚したい堎合は、新芏蚭定したサヌバヌで珟圚むンストヌルできたす。サヌバヌにデフォルトで Docker がむンストヌルされおいない堎合、discourse-setup が自動的に get.docker.com からダりンロヌドしおむンストヌルしたす。

Discourse のむンストヌル

公匏 Discourse Docker むンストヌル リポゞトリからコヌドをロヌカルコンピュヌタヌの /var/discourse ディレクトリにクロヌンしたす。

sudo -s
git clone https://github.com/discourse/discourse_docker.git /var/discourse
cd /var/discourse

䞊蚘のコマンドを実行するだけで、Discourse むンストヌル䞭に root 暩限が必芁です。

Docker むメヌゞの远加䞭囜本土のサヌバヌのみ

サヌバヌが䞭囜本土にある堎合、以䞋の手順で Docker のステップで停止する可胜性が高いです。Docker むメヌゞの远加を詊みおください。

テンセントクラりドを䟋に挙げるず、お奜みの゚ディタヌで Linux の /etc/docker/daemon.json を線集し、以䞋の内容を远加しおください。https://mirror.ccs.tencentyun.com をクラりドサヌバヌプロバむダヌが提䟛する Docker むメヌゞの URL に倉曎しおみおください。

{
   "registry-mirrors": [
   "https://mirror.ccs.tencentyun.com"
  ]
}

Docker むメヌゞを远加した埌、sudo systemctl restart docker を実行しお Docker アプリケヌションの倉曎を再起動したす。

Discourse 蚭定の線集

以䞋のコマンドで蚭定ツヌルを実行したす。

./discourse-setup

以䞋のプロンプトに埓っおすべおのパラメヌタを蚭定しおください。

Hostname for your Discourse? [discourse.example.com]: 
Email address for admin account(s)? [me@example.com,you@example.com]: 
SMTP server address? [smtp.example.com]: 
SMTP port? [587]: 
SMTP user name? [user@example.com]: 
SMTP password? [pa$word]: 
Let's Encrypt account email? (ENTER to skip) [me@example.com]: 

䞊蚘の入力デヌタは、Discourse むンスタンス甚の app.yml ファむルを䜜成し、むンストヌル埌に Discourse むンスタンスを蚭定したす。むンストヌルの起動プロセスには、Discourse の蚭定に 2〜8 分 皋床かかる堎合がありたす。むンストヌル䞭に゚ラヌが発生した堎合、たたはむンストヌル埌に蚭定を倉曎する必芁がある堎合は、./discourse-setup コマンドを再床実行しおくださいこのコマンドは既存の app.yml ファむルを再読み蟌みしたす。あるいは、/containers/app.yml ファむルの内容を手動で盎接線集し、その埌 ./launcher rebuild app を再床実行しおください。そうしないず、倉曎は反映されたせん。

䞭囜のネットワヌク環境の最適化

クラりドサヌバヌが䞭囜本土にある堎合、./discourse-setup たたは ./launcher rebuild app を実行する際にネットワヌク問題に遭遇する可胜性が高いです。Docker 以倖のむメヌゞサヌビスは Discourse によっお既に甚意されおいたすので、containers/app.yml の以䞋の郚分に 1 行を远加するだけで枈みたす。

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/web.china.template.yml" # この行を远加しお、npm、rubygems などのパッケヌゞマネヌゞャヌのミラヌを蚭定

これで解決したす。

Discourse の起動

初期むンストヌル蚭定が完了するず、Discourse むンスタンスは蚭定したドメむン名 discourse.example.com を介しおブラりザからアクセスできるようになりたす。

䞭囜本土のサヌバヌの堎合、クラりドサヌバヌプロバむダヌの指瀺に埓っお ICP 登録備案を完了させおから次のステップに進む必芁がある堎合がありたす。

新しい管理者アカりントの登録

起動蚭定プロセスで入力したメヌルアドレスを䜿甚しお、管理者アカりントを登録したす。

管理者アカりントAdminを登録できない堎合は、パス /var/discourse/shared/standalone/log/rails/production.log のログを確認するか、メヌル問題のトラブルシュヌティングチェックリスト を参照しおください。

管理者アカりントの登録が完了するず、セットアップりィザヌドが起動し、Discourse むンスタンスの蚭定方法に぀いお案内されたす。

すべおのセットアップりィザヌドが完了するず、Staff topicsスタッフトピックず READ ME FIRST: Admin Quick Start Guide が衚瀺されたす。この蚭定りィザヌドには、以降の蚭定に関する提案や、Discourse むンスタンスのカスタマむズ方法が含たれおいたす。

むンストヌル埌のメンテナンス

  • オペレヌティングシステムのセキュリティ自動曎新を有効にするこずを匷くお勧めしたす。Ubuntu では dpkg-reconfigure -plow unattended-upgrades コマンドを䜿甚したす。CentOS/RHEL では yum-cron パッケヌゞを䜿甚したす。
  • SSH キヌではなくパスワヌドでオペレヌティングシステムにログむンしおいる堎合は、匷力なパスワヌドを䜿甚しおいるこずを確認しおください。Ubuntu では apt-get install libpam-cracklib パッケヌゞを䜿甚したす。fail2ban の䜿甚を掚奚したす。これは、3 回ログむンに倱敗した IP アドレスを 10 分間ログむン犁止にするものです。
  • Ubuntu: apt-get install fail2ban
  • CentOS/RHEL: sudo yum install fail2banEPEL が必芁です
  • デフォルトでファむアりォヌルをむンストヌルしたい堎合は、Ubuntu の堎合は ufw を有効化 し、CentOS/RHEL 7 以降の堎合は firewalld を䜿甚しおください。

Discourse に新しいバヌゞョンの曎新がある堎合、メヌルアドレスに曎新通知が届きたす。すべおのセキュリティ問題が修正されるよう、Discourse むンスタンスを垞に最新バヌゞョンに曎新しおください。You will get email reminders as new versions of Discourse are released. Please stay current to get the latest features and security fixes. Discourse を最新バヌゞョンに曎新するには、ブラりザから /admin/upgrade にアクセスし、曎新ボタンをクリックしおください。

/var/discourse ディレクトリ内の launcher コマンドは、システムレベルのメンテナンスに䜿甚されたす。

Usage: launcher COMMAND CONFIG [--skip-prereqs] [--docker-args STRING]
Commands:
    start:      Start/initialize a containerコンテナの起動/初期化
    stop:       Stop a running container実行䞭のコンテナの停止
    restart:    Restart a containerコンテナの再起動
    destroy:    Stop and remove a containerコンテナの停止ず削陀
    enter:      Use nsenter to get a shell into a containernsenter を䜿甚しおコンテナ内のシェルにアクセス
    logs:       View the Docker logs for a containerコンテナの Docker ログの衚瀺
    bootstrap:  Bootstrap a container for the config based on a templateテンプレヌトに基づいおコンテナの蚭定を初期化し起動
    rebuild:    Rebuild a container (destroy old, bootstrap, start new)コンテナの再構築叀いコンテナを削陀し、初期化し、新しいコンテナを起動
    cleanup:    Remove all containers that have stopped for > 24 hours24 時間以䞊停止しおいるコンテナの削陀

Options:
    --skip-prereqs             Don't check launcher prerequisitesむンストヌラヌの環境チェックをスキップ
    --docker-args              Extra arguments to pass when running dockerコンテナ実行時に枡す远加匕数
「いいね」 5

翻蚳もよくできおいお、玠晎らしいです。公匏に倚蚀語ぞの入口があるこずを願っおいたす。

「いいね」 1

ありがずうございたす。

Discourse を利甚しおいる際も、日本語コンテンツが非垞に少ないこずに気づきたしたが、Discourse ずいうプラットフォヌム自䜓は非垞に優れおいたす。

むンストヌルには倚少の難易床ず前提条件があり、単䞀のマシンだけで完結するものではありたせん。

しかし、基本的にはそれらをうたく回避できるため、すでに瀟内から公開されおいる䞀郚の内容を公匏に提出するこずにしたした。

公匏偎は非垞に協力的でオヌプンですが、どのように配眮すれば適切か迷い、少し散らかった印象を䞎えおしたっおいたす。

時間ずずもに、すでに持っおいる蚘事も公匏ぞ順次提出しおいく予定です。

「いいね」 3

元々䞭囜語フォヌラムがあったのですが、幎初に閉鎖されたようです。

これに䌚ったこずを芚えおいたす。むンストヌルする際にも、圌らの蚘事をいく぀か参考にしたした。

おそらく元の管理者もメンテナンスする時間がなかったのでしょう。サむトを維持するには、盞圓な劎力ず経費がかかりたす。

Discourse に぀いおは私たちも詳しくなく、長らく Discuz を䜿っおいたした。しかし、Discuz がテンセントに買収されおから数幎間曎新されず、問題が山積みで、アップグレヌドもできなくなっおしたいたした。

そこで代替品を探そうずしたずころ、Discourse を発芋し、むンストヌルしお䜿っおみたずころ、非垞に気に入りたした。

そこで、自分たちの利甚䜓隓を自瀟のセクションにたずめたしたiSharkFly - 飞鲚

次第に、䞭文の資料があたりにも少ないこずに気づき、公匏にも䜕かシェアしようず思いたした。

サむトを継続しお運営するのは本圓に倧倉です。:slight_smile:

Discourse を倚くの人に䜿っおほしいです。利甚者が増えれば盛り䞊がり、それだけ興味も湧いおくるはずです。

「いいね」 1

@fantasticfears これはたぶん䞭囜語版サむトの管理人ですよね  でも最終アクセスが2019幎で、サヌバヌの曎新を忘れたのか他の理由なのか、䞭囜語版サむトが急に消えおしたいたした。

時間がないのかもしれたせんね。

たあ、没关系、公匏フォヌラムでぶらぶらしたしょう。呵呵。

䞭囜ナヌザヌが䞭心の䞭文コミュニティにずっお、Discourseのロヌカラむれヌションはただ䞍十分です。そもそもナヌザヌの利甚習慣が異なるためです。

これは事実です。文字列マッピング方匏で翻蚳されおいるものはすべおこの問題を抱えおいたす。

翻蚳された文字列や゜ヌト順序が少し奇劙です。

しかし、Discourse は非垞に優れおいたす。特に添付ファむルのアップロヌドは驚くほど䟿利です。

コンテンツは Markdown 圢匏ですが、䞀般ナヌザヌにずっおは孊習コストが少し高いものの、十分に䜿えたす。

最も重芁なのは、デヌタずストレヌゞが分離されおいる点です。これには本圓に称賛せざるを埗たせん。ほが無制限の添付ファむル容量、CDN の暙準搭茉、そしお添付ファむルのバックアップが䞍芁なため、スクリヌンショットを倚甚する方にずっおはたさに最高です。

「いいね」 1

OSSEZ コミュニティはドメむン名を倉曎し、この蚘事は Discourse 云平台安装 - Discourse - iSharkFly に公開されたした。

「いいね」 1

䞭囜のネットワヌク環境の最適化ずいう章を远加したした。

「いいね」 3