マルチサイト設定に関するガイダンス

こんにちは皆さん!

マルチサイト Discourse インスタンスのセットアップに取り組んでいますが、いくつか行き詰まっている点があり、誰かのガイダンスを本当に必要としています。Docker を使用したマルチサイト構成 ガイドを読みましたが、まだいくつか質問があります。

  1. 「multisite.yml」ファイルはどこで見つけられますか? discourse/templates フォルダに見当たりません。
  2. 標準のボリュームを使用しており、専用データベースを使用していない場合でも、after_postgres のフックをセットアップする必要がありますか?
  3. 基本的なマルチサイトセットアップ用の簡単な app.yml テンプレートはありますか? プラグインや派手なものは追加したくありません。始めるための簡単なものだけが必要です。

参考までに、現在 GCP VM で標準の Discourse インスタンスを実行しており、mamacares 経由でアクセスできます。私の app.yml はほとんどデフォルトのままです。プラグインや専用データベースはありません。この経験がある方や、マルチサイト構成のセットアップに関するクイックスタートガイドをご存知の方がいれば、本当に感謝します!

参考までに、現在の app.yml は次のとおりです(機密データは削除しました)。

## これは、オールインワンのスタンドアロン Discourse Docker コンテナテンプレートです
##
## このファイルを変更した後は、必ず再構築してください
## /var/discourse/launcher rebuild app
##
## 編集には*非常に*注意してください!
## YAML ファイルは、空白や配置の誤りに非常に敏感です!
## 必要に応じてこのファイルを検証するには、http://www.yamllint.com/ にアクセスしてください

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  ## 次の行のコメントを解除すると、IPv6 リスナーが有効になります
  #- "templates/web.ipv6.template.yml"
  - "templates/web.ratelimited.template.yml"
  ## Lets Encrypt (https) を追加したい場合は、これらの 2 行のコメントを解除してください
  #- "templates/web.ssl.template.yml"
  #- "templates/web.letsencrypt.ssl.template.yml"

## このコンテナはどの TCP/IP ポートを公開する必要がありますか?
## Apache や nginx のような他の Web サーバーとポートを共有したい場合は、
## 詳細については https://meta.discourse.org/t/17247 を参照してください
expose:
  - "80:80"   # http
  - "443:443" # https

params:
  db_default_text_search_config: "pg_catalog.english"

  ## db_shared_buffers を合計メモリの最大 25% に設定します。
  ## 検出された RAM に基づいてブートストラップによって自動的に設定されますが、オーバーライドすることもできます
  db_shared_buffers: "256MB"

  ## ソートパフォーマンスを向上させることができますが、接続ごとのメモリ使用量が増加します
  #db_work_mem: "40MB"

  ## このコンテナはどの Git リビジョンを使用しますか? (デフォルト: 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: en

  ## 同時に処理できる Web リクエスト数はいくつですか? メモリと CPU コアに依存します。
  ## 検出された CPU に基づいてブートストラップによって自動的に設定されますが、オーバーライドすることもできます
  UNICORN_WORKERS: 4

  ## TODO: この Discourse インスタンスが応答するドメイン名
  ## 必須。Discourse は生の IP 番号では機能しません。
  DISCOURSE_HOSTNAME: 'www.mamacares.com'

  ## 上記で指定されたホスト名 (-h オプション) と同じホスト名でコンテナを起動する場合は、コメントを解除します (デフォルト "$hostname-$config")
  #DOCKER_USE_HOSTNAME: true

  ## TODO: 初期サインアップ時に管理者および開発者となるメールアドレスのカンマ区切りリスト
  ## 例: 'user1@example.com,user2@example.com'
  DISCOURSE_DEVELOPER_EMAILS: '---------'

  ## TODO: 新規アカウントの検証と通知の送信に使用される SMTP メールサーバー
  # SMTP アドレス、ユーザー名、およびパスワードが必要です
  # 警告: SMTP パスワードの '#' 文字は問題を引き起こす可能性があります!
  DISCOURSE_SMTP_ADDRESS: ----------
  #DISCOURSE_SMTP_PORT: --------
  DISCOURSE_SMTP_USER_NAME: ----------
  DISCOURSE_SMTP_PASSWORD: ------------
  #DISCOURSE_SMTP_ENABLE_START_TLS: true           # (オプション、デフォルト true)
  #DISCOURSE_SMTP_DOMAIN: discourse.example.com    # (一部のプロバイダーで必要)
  #DISCOURSE_NOTIFICATION_EMAIL: noreply@discourse.example.com    # (通知を送信するアドレス)

  ## Lets Encrypt テンプレートを追加した場合は、無料の SSL 証明書を取得するために以下をコメント解除してください
  #LETSENCRYPT_ACCOUNT_EMAIL: me@example.com

  ## この Discourse インスタンスの HTTP または HTTPS CDN アドレス (プル用に構成)
  ## 詳細については https://meta.discourse.org/t/14857 を参照してください
  #DISCOURSE_CDN_URL: https://discourse-cdn.example.com

  ## IP アドレスのルックアップのための maxmind geolocation IP アカウント ID とライセンスキー
  ## 詳細については https://meta.discourse.org/t/-/173941 を参照してください
  #DISCOURSE_MAXMIND_ACCOUNT_ID: 123456
  #DISCOURSE_MAXMIND_LICENSE_KEY: 1234567890123456

## Docker コンテナはステートレスです。すべてのデータは /shared に保存されます
volumes:
  - volume:
      host: /var/discourse/shared/standalone
      guest: /shared
  - volume:
      host: /var/discourse/shared/standalone/log/var-log
      guest: /var/log

## プラグインはここに配置します
## 詳細については https://meta.discourse.org/t/19157 を参照してください
hooks:
  after_postgres:
    - exec: sudo -u postgres createdb b_discourse || exit 0
    - exec:
        stdin: |
          grant all privileges on database b_discourse to discourse;
        cmd: sudo -u postgres psql b_discourse
        raise_on_fail: false
    - exec: /bin/bash -c 'sudo -u postgres psql b_discourse <<<'"'"'alter schema public
        owner to discourse;'
    - exec: /bin/bash -c 'sudo -u postgres psql b_discourse <<<'"'"'create extension if
        not exists hstore;'
    - exec: /bin/bash -c 'sudo -u postgres psql b_discourse <<<'"'"'create extension if
        not exists pg_trgm;'
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - mkdir -p plugins
          - git clone https://github.com/discourse/docker_manager.git
  before_bundle_exec:
    - file:
        path: $home/config/multisite.yml
        contents: |
          secondsite:
            adapter: postgresql
            database: b_discourse
            pool: 25
            timeout: 5000
            db_id: 2
            host_names:
              #- www.mamacares.com
              - www.vet.community
  after_bundle_exec:
    - exec: cd /var/www/discourse &amp;&amp; sudo -E -u discourse bundle exec rake multisite:migrate

## ビルド後に実行するカスタムコマンド
run:
  - exec: echo "Beginning of custom commands"
  ## 初回サインアップメールの送信元アドレスを設定したい場合は、コメントを解除して変更してください:
  ## 初回サインアップメールを受け取ったら、行を再度コメントアウトしてください。一度だけ実行する必要があります。
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
  - exec: echo "End of custom commands"

たくさんのご支援、そしてどんなアドバイスでもお待ちしています!

「いいね!」 3