こんにちは皆さん!
マルチサイト Discourse インスタンスのセットアップに取り組んでいますが、いくつか行き詰まっている点があり、誰かのガイダンスを本当に必要としています。Docker を使用したマルチサイト構成 ガイドを読みましたが、まだいくつか質問があります。
- 「multisite.yml」ファイルはどこで見つけられますか?
discourse/templatesフォルダに見当たりません。 - 標準のボリュームを使用しており、専用データベースを使用していない場合でも、
after_postgresのフックをセットアップする必要がありますか? - 基本的なマルチサイトセットアップ用の簡単な
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 && 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"
たくさんのご支援、そしてどんなアドバイスでもお待ちしています!