🇚🇳 詳现なむンストヌルガむド + コントロヌルパネル | 超级诊细教孊安装discourse+控制面板

私はりェブサむトの初心者で、趣味で技術亀流コミュニティを立ち䞊げたいず思っおいたす。Discourseを構築し、このチュヌトリアルを共有したいず考えおいたす。Discourseのむンストヌルが必芁な友人に圹立ち、坑を避けるこずを願っおいたす。Discourseの䞭囜語チュヌトリアルは少なく、䞀郚のチュヌトリアルは叀くなっおいたす。翻蚳゜フトりェアに頌り、数日間研究したした。

独自のDiscourseを構築するために必芁なもの

Alibaba Cloud Lite Server (Hong Kong) 1台。䞭囜本土のサヌバヌではGitHubプラグむンのダりンロヌドがカタツムリのように遅いため、Alibaba Cloud Hong Kong Lite Serverたたは他のLite Serverを掚奚したす。Lite Serverは安䟡で初心者向けです。メモリは2GB以䞊必芁です。そうでないずむンストヌルできたせん。䞭囜本土のサヌバヌにむンストヌルする必芁がある堎合は、銙枯サヌバヌの埓量課金制を䜿甚し、プラットフォヌムのむメヌゞ䜜成機胜を䜿甚しお䞭囜本土のサヌバヌにクロヌンするこずで、坑を避ける時間を節玄できたす。

芚えやすい短いドメむン名ずサヌバヌIPぞの解析。comずnetを掚奚したす。他のドメむン名は認識床が䜎いです。ドメむン名はドメむン䞀括怜玢で、ルヌル怜玢で短いものを探すこずができたす。

システムUbuntu 20.04、䞀般的です。

新しいサヌバヌを開通したら、たずファむアりォヌルポヌトをすべお開けおください埌でデバッグが完了したら、必芁に応じおポヌトを閉じ、䜿甚するポヌトのみを残し、ハッカヌ攻撃を防ぎたす。コントロヌルパネルでrootパスワヌドを蚭定し、WebブラりザからSSHでサヌバヌにリモヌト接続するか、XTerminalなどのSSH゜フトりェアをダりンロヌドしおください。

次に、以䞋の3぀のコマンドを貌り付けおEnterキヌを抌しお実行したす。オプションがある堎合はyesを抌しお、システム゜ヌスをアップグレヌドし、git゜フトりェアをむンストヌルしたす。

apt update
apt upgrade -y
apt install git

次に、以䞋の3぀のコマンドを貌り付けおEnterキヌを抌しお実行したす。管理者暩限を䜿甚したす。このステップのsudo -sは、操䜜を誀るずむンストヌル䞭に䞍明な倱敗のヒントが衚瀺され、むンストヌルが倱敗する可胜性がありたす。これは暩限䞍足が原因です。

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

ダりンロヌド埌、むンストヌルりィザヌドを実行したす。

./discourse-setup

次に、プロンプトに埓っおバむンドするドメむン名を入力したす。初回むンストヌルは時間がかかりたす。たず、メむンドメむン以倖のものは適圓に入力し、埌で成功したら再構築するこずをお勧めしたす。理解できない堎合は、スクリヌンショットを撮っおWeChatで画像を翻蚳しおください。メヌルはAlibaba Cloudメヌルサヌビスを䜿甚できたす。

次に、むンストヌルを続けるか、Ctrl+Cでキャンセルするかを尋ねるプロンプトが衚瀺されたす。むンストヌルを続けるこずをお勧めしたす。

むンストヌルが完了したら、バむンドしたドメむン名にアクセスしお登録ペヌゞが衚瀺されれば、Discourseのむンストヌルは成功です。

次に、liunxパネルをむンストヌルしたす。このステップは䞻に他のりェブサむトプログラムをむンストヌルするため、初心者でも簡単に管理できるようにするためです。このパネルは宝塔よりもはるかにシンプルで、広告も少なく、むンストヌル速床も数秒で、宝塔のように長時間コンパむル環境を必芁ずしたせん。

以䞋のスクリプトを実行したす。

curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh

むンストヌル䞭に、Dockerが既にむンストヌルされおいるこずが怜出され、バック゚ンドログむンが衚瀺されたす。

プロンプトに埓っお、バック゚ンドにログむンしたす。コンテナ管理でappDiscourseが芋぀かり、ここで起動たたは停止できたす。

次に、ファむルに入り、app.ymlを線集したす。䞻な倉曎箇所は䞭囜語でコメントされおいたす。

## this is the all-in-one, standalone Discourse Docker container template
##
## After making changes to this file, you MUST rebuild
## /var/discourse/launcher rebuild app
##
## BE *VERY* CAREFUL WHEN EDITING!
## YAML FILES ARE SUPER SUPER SENSITIVE TO MISTAKES IN WHITESPACE OR ALIGNMENT!
## visit http://www.yamllint.com/ to validate this file as needed

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  ## Uncomment the next line to enable the IPv6 listener
  #- "templates/web.ipv6.template.yml"
  - "templates/web.ratelimited.template.yml"
  ## Uncomment these two lines if you wish to add Lets Encrypt (https)
  - "templates/web.ssl.template.yml"
  - "templates/web.letsencrypt.ssl.template.yml"

## which TCP/IP ports should this container expose?
## If you want Discourse to share a port with another webserver like Apache or nginx,
## see https://meta.discourse.org/t/17247 for details
expose:
  - "80:80"   # http
  - "443:443" # https

params:
  db_default_text_search_config: "pg_catalog.english"

  ## Set db_shared_buffers to a max of 25% of the total memory.
  ## will be set automatically by bootstrap based on detected RAM, or you can override
  db_shared_buffers: "128MB"
  ## アップロヌドファむルの最倧サむズを倉曎
  upload_size: 300m
  ## can improve sorting performance, but adds memory usage per-connection
  #db_work_mem: "40MB"

  ## Which Git revision should this container use? (default: tests-passed)
  #version: tests-passed

env:
  LC_ALL: en_US.UTF-8
  LANG: en_US.UTF-8
  LANGUAGE: en_US.UTF-8
  DISCOURSE_DEFAULT_LOCALE: zh_CN

  ## How many concurrent web requests are supported? Depends on memory and CPU cores.
  ## will be set automatically by bootstrap based on detected CPUs, or you can override
  UNICORN_WORKERS: 2

  ## TODO: The domain name this Discourse instance will respond to
  ## Required. Discourse will not work with a bare IP number.
  ## メむンドメむンを倉曎
  DISCOURSE_HOSTNAME: bbs.izdh.net

  ## Uncomment if you want the container to be started with the same
  ## hostname (-h option) as specified above (default "$hostname-$config")
  #DOCKER_USE_HOSTNAME: true

  ## TODO: List of comma delimited emails that will be made admin and developer
  ## on initial signup example 'user1@example.com,user2@example.com'
  ## 管理者メヌルを倉曎
  DISCOURSE_DEVELOPER_EMAILS: 'xxxx@gmail.com'

  ## TODO: The SMTP mail server used to validate new accounts and send notifications
  # SMTP ADDRESS, username, and password are required
  # WARNING the char '#' in SMTP password can cause problems!
  ## 送信メヌルサヌバヌを倉曎
  DISCOURSE_SMTP_ADDRESS: smtpdm.aliyun.com
  ## 送信メヌルポヌトを倉曎
  DISCOURSE_SMTP_PORT: 80
  ## 自動送信メヌルアカりントに倉曎
  DISCOURSE_SMTP_USER_NAME: xxxx@xxx.net
  ## 送信メヌルパスワヌドを倉曎
  DISCOURSE_SMTP_PASSWORD: "dj6bCRxoHt25NcD6"
  #DISCOURSE_SMTP_ENABLE_START_TLS: true           # (optional, default true)
  DISCOURSE_SMTP_DOMAIN: smtpdm.aliyun.com
  ## 自動送信メヌルアカりントに倉曎
  DISCOURSE_NOTIFICATION_EMAIL: xxxx@xxx.net
  DISCOURSE_SMTP_ENABLE_START_TLS: false
  ## If you added the Lets Encrypt template, uncomment below to get a free SSL certificate
  LETSENCRYPT_ACCOUNT_EMAIL: me@example.com

  ## The http or https CDN address for this Discourse instance (configured to pull)
  ## see https://meta.discourse.org/t/14857 for details
  #DISCOURSE_CDN_URL: https://discourse-cdn.example.com
  
  ## The maxmind geolocation IP address key for IP address lookup
  ## see https://meta.discourse.org/t/-/137387/23 for details
  #DISCOURSE_MAXMIND_LICENSE_KEY: 1234567890123456

## The Docker container is stateless; all data is stored in /shared
volumes:
  - volume:
      host: /var/discourse/shared/standalone
      guest: /shared
  - volume:
      host: /var/discourse/shared/standalone/log/var-log
      guest: /var/log

## Plugins go here
## see https://meta.discourse.org/t/19157 for details
## 2぀のプラグむンをむンストヌル
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-solved	 
          - git clone https://github.com/discourse/discourse-reactions

## Any custom commands to run after building
run:
  - exec: echo "Beginning of custom commands"
  ## If you want to set the 'From' email address for your first registration, uncomment and change:
  ## After getting the first signup email, re-comment the line. It only needs to run once.
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
  - exec: echo "End of custom commands"

倉曎を保存したら、タヌミナルに戻り、コマンドを䜿甚するか、バック゚ンドでコンテナを停止しおから再構築したす。ただし、このパネルがむンストヌルされおいない堎合は、コンテナを停止せずに再構築するず゚ラヌが発生するようです。

./launcher stop app
./launcher bootstrap app`

再構築が完了するたで埅ち、コンテナ起動コマンドを実行したす。

./launcher start app

Discourseに入るず、メヌル認蚌を求めるプロンプトが衚瀺されたす。受信できない堎合は、以䞋のコマンドを䜿甚しお管理者アカりントを盎接䜜成し、スキップできたす。その埌、巊偎の蚭定で蚀語を䞭囜語に蚭定しおください。メヌルテストができる堎所があり、゚ラヌの原因が衚瀺されるので、䜕床か詊せば成功したす。

./launcher enter app
rake admin:create

他のりェブサむトを䜜成する必芁がある堎合は、公匏チュヌトリアルを参照しおください。簡単なので詳しく説明したせん。りェブサむトで新しい環境を䜜成し、りェブサむトの暩限を777に倉曎すれば、さたざたなプログラムをむンストヌルできたす。

䞻な解決策は、1぀のサヌバヌで耇数のりェブサむトを実行できるため、サヌバヌ賌入費甚を節玄でき、初心者により適しおいるこずです。

埌でメヌル送信をテストしたずきに発芋した問題

コンテナの蚭定は、app.ymlを線集しおも再構築しおも効果がないようです。コンテナ環境倉数で倉曎する必芁がありたす。ただし、5〜6秒で有効になり、プラグむンのむンストヌルに圱響があるかどうかはただ䞍明です。

他のりェブサむトずの共存は、たずリバヌスプロキシを䜜成し、デフォルトのコンテナ443ポヌトを10443に倉曎し、蚌明曞を蚭定すれば正垞にアクセスできたす。

リバヌスプロキシ

蚌明曞の蚭定

「いいね」 2

実際には、discourse_dockerはどのフォルダにクロヌンしおも構いたせん。すべお/var/discourseに自動的にむンストヌルされたす 

In truth, the location to which one clones the discourse_docker repository is immaterial, as it will invariably be installed automatically to the /var/discourse directory


理論的には可胜性は䜎いです。正芏の手順はapp.ymlを線集しおから再構築するこずです。

In theory, it seems rather improbable. The proper procedure would be to modify the app.yml file and subsequently rebuild the application.

「いいね」 1

:sweat_smile:しかし、蚭定ファむルを線集しおもrebuildは機胜せず、コンテナ内の環境倉数を倉曎するだけで数秒で反映されるこずがわかりたした。rebuildの手間が省けたす。プラグむンぞの圱響は今のずころ䞍明です。

以前は
sudo -s
を実行しなかったため、゚ラヌが頻発し、問題の原因がわかりたせんでした。

神様、䞭囜語のナヌザヌ名でAPIを䜿甚する方法を知っおいたすかヘッダヌに䞭囜語を含めるこずはできたせん。

:sweat_smile: いやはや、蚭定ファむルをいじっおみたものの、再構築しおも効果がないこずが刀明したした。しかし、コンテナの環境倉数を倉曎したずころ、わずか数秒で効果おきめん、再構築の手間が省けたした。プラグむンぞの圱響は、今のずころ䞍明です。

以前は「sudo -s」を入力し忘れおいたため、゚ラヌメッセヌゞの連発に芋舞われ、問題の原因を党く掎めずにいたした。

いやはや、ご䞻人様、䞭囜語のナヌザヌ名でAPIを利甚する方法をご存知でしょうかヘッダヌに䞭囜語を含めるこずはできないのです。

え、そんな問題があるのですかログを貌っおください。

Oh, I say, is that truly the issue? Perhaps you could share the log entries with me.

倖囜人が「できる」ず蚀っおいたのですが、どうやっおもできたせんでした :sweat_smile:

詊せるなら詊しおみおはどうだろう。あなたのリク゚ストがどの゚ンコヌディングを䜿甚しおいたかは神のみぞ知る。

If feasible, perhaps we could give this a go. Heaven knows what encoding your request utilised.

「いいね」 1

フォヌラムで䞭囜語の投皿を芋かけるなんお、本圓に驚きです😭

スレッドの楌䞻さん、フォヌラム構築の経隓に぀いお、ぜひ情報亀換させおいただけたせんか

「いいね」 1

:sweat_smile:私も初心者です。コンテンツがメむンで、技術は補䜐的なものだず感じおいたす。今は、䞃牛チヌニュヌクラりドのコンテンツストレヌゞをどう䜿うか、そしおどうやっおトラフィックを呌び蟌むかが分かりたせん。

埌でバグが芋぀かりたした。upload_size: 300m、添付ファむルのサむズが有効になりたせんでした。原因が䞍明だったため、パネルをむンストヌルしないこずにしたした。

Amazon S3 を利甚しおいたす。

ただし、Alibaba OSS も S3 ず互換性を持぀ようになったので、詊しおみる䟡倀はありたす。

確かに、むンフラが敎ったら、コンテンツをどのように配眮するかが焊点ずなりたす。

圌が提案した方法に埓っお倉曎すべきでしょう。

圓時、私もパラメヌタを調敎しおリファクタリングしたこずを思い出したす。Tencent Cloud を䜿甚しおおり、各リファクタリングにはプロキシ接続が必芁でした。敎理するのが倧倉でした。

@Lhc_fl @zengyunsi フォヌラムのナヌザヌ名フィヌルドを保護する方法はありたすか カスタム蚭定には、機密単語のフィルタリングず蚱可されたナヌザヌフィヌルドしかありたせん。

䞭囜語 Unicode ナヌザヌ名のサポヌトDiscourse 支持䞭文甚户名 - Discourse - iSharkFly

䞭囜語 Unicode ナヌザヌ名のサポヌトDiscourse は䞭囜語のナヌザヌ名をサポヌトしたす - Discourse - iSharkFly

しかし、ナヌザヌ名フィヌルド保護ずは䜕ですかナヌザヌ名の倉曎には審査が必芁ですか

もしそうであれば、Discourseにはネむティブ機胜がありたせん。プラグむンの開発を怜蚎するこずをお勧めしたす。

たたは、定期的にサむト党䜓のナヌザヌ名を確認し、問題がないか確認するこずもできたす。

@go_ahead たた、英語たたは英語ず䞭囜語の混合で別のスレッドで質問するこずをお勧めしたす。これは、メタでのトピック倖の議論はスレッドが分割されるためです。

䞭囜語のみを䜿甚するず、䞭囜語を話さない数人の管理者が困惑する可胜性がありたす。圌らは私たちが䜕を話しおいるのかを容易に知るこずができないためです。

ご質問は理解いたしたしたが、ナヌザヌ名フィヌルド保護の抂念ず、ナヌザヌ名の倉曎に審査プロセスが必芁である理由に぀いおご説明させおください。

もしそうであれば、Discourseにはそのようなネむティブ機胜がありたせん。この芁件に察凊するために、カスタムプラグむンの開発を怜蚎するこずをお勧めしたす。

あるいは、プラットフォヌム党䜓のすべおのナヌザヌ名を定期的にレビュヌしお、朜圚的な問題がないか特定するこずもできたす。

@go_ahead さらに、英語たたは英語ず䞭囜語の組み合わせで別のスレッドで質問を投皿するこずをお勧めしたす。オフサむトでのメタでの議論は通垞、スレッドの分離の察象ずなるため、このアプロヌチが望たしいです。

䞭囜語のみを䜿甚するず、䞭囜語を話さないモデレヌタヌにずっお困難になる可胜性がありたす。圌らは私たちの議論の䞻題を理解するのが難しいかもしれたせん。

この機胜を芋぀けたようです。これだず思いたす。

「いいね」 1

私の英語力はひどいもので、圌らずコミュニケヌションをずる経隓も䞍足しおいたす。埌でこの問題に泚意したす。倧倉感謝しおいたす

Alas, my command of the English language is woefully inadequate, and I find myself lacking in experience when it comes to communicating with them. I shall endeavour to be more mindful of this matter henceforth. I am most grateful for your guidance!

私の理解では、モデレヌタヌは通垞、䞭囜語を含むトピックを chinese-translation ずいうタグの䞋に分類したす。

䞀般的に、問題はそれほど倧きくなく、投皿の䞋に英語の芁玄を提䟛するこずもできたす。

実際には、モデレヌタヌは翻蚳゜フトりェアを䜿甚しお倧たかな理解を埗るこずができるため、それほど問題ではありたせん。問題は些现なこずです。

「いいね」 1

🇚🇳 Discourse Official Install Guide | Discourse 云平台安装 この内容はただ䜿えるはずです。

しかし、私たちは玔粋なサヌバヌを䜿甚しおおり、Dockerコンテナから始たりたす。そのため、コン゜ヌル関連の蚭定は䜿甚しおいない可胜性がありたす。

䞭囜語のテキストで参照されおいる公匏のDiscourseむンストヌルガむドは、おそらくただ適甚可胜でしょう。しかし、私たちの実装はベアメタルサヌバヌを利甚し、Dockerコンテナから開始するこずに泚意する䟡倀がありたす。そのため、ガむドで蚀及されおいるコン゜ヌル関連の蚭定は䜿甚しおいない可胜性がありたす。

玔粋なサヌバヌ䞊のDockerコンテナから始たるこのアプロヌチは、特にコン゜ヌル蚭定ず管理の点で、暙準的なむンストヌルプロセスから逞脱する可胜性がありたす。公匏ガむドに埓う際には、この違いを念頭に眮くこずが重芁です。特定のデプロむメント方法に合わせお、䞀郚の手順を適応たたは省略する必芁があるかもしれたせん。

:sweat_smile:APIの話ですね、䞭囜語で呌び出すこずはできたせん。

:sweat_smile: I’m afraid the API doesn’t support Chinese language input.

このパネルの問題かもしれたせん  元の方法でクリヌンむンストヌルするのが䞀番でしょう。䞃牛チヌニュヌクラりドを䜿いたいです。