限定的な機能を持つカスタムディスコース

こんにちはチーム、

Discourse をカスタマイズして、ユーザーを直接「トピック」に誘導し、多くのクライアントサイドのカスタマイズを施す小規模なプロジェクトに取り組んでいます。ユーザーはトピックに直接アクセスし、そのスレッドに投稿や返信を行うことができます。Discourse はモバイルアプリ内の WebView に読み込まれています。また、元のコンポーザーを削除し、一部のオプションを除外したカスタムコンポーザーを実装しています。このカスタムコンポーザーは、ユーザーの投稿への迅速な返信のために、常にページ下部に固定表示されます。

当社は、Docker を使用しない最小構成として 2GB のメモリを指定しています。ユーザーがフォーラムに登録すると、クライアントサイドでトピックへリダイレクトされるのですが、このリダイレクトに 10〜25 秒かかることがあります。swift.org などの他のサイトを試したところ、Discourse の読み込みは非常に高速で、ページ表示に 3〜6 秒しかかかりませんでした。ネットワークタブを検証したところ、読み込まれているのは同じ JS と CSS であり、モバイル版では「mobile.css」が読み込まれている点のみが異なります。

当社のカスタマイズされた Discourse に問題がある可能性はありますか?最適化の方向性についてご教示いただけますでしょうか。サーバー仕様の引き上げが必要だとお考えでしょうか?顧客ベースは数百名程度で、現在は開発者数名のみが利用していますが、この問題に直面しています。

公式の Discourse スタンダードインストール を行わず、代わりに開発用インストールを行いましたか?ご説明いただいた状況は、開発用インストールにおける予想されるパフォーマンスのようです。

変更はプラグイン内で行いましたか、それともフォークしましたか?

「いいね!」 4

はい、フォークしました。Docker は使用せず、サーバー側で少しカスタマイズし、主に JavaScript や CSS などのクライアント側の変更を行いました。公式のインストールドキュメントには、カスタムコードのセットアップ方法について明確な記載がありませんでした。カスタムコードを含む Docker のセットアップはどこで見つけることができますか?基本的には、自分のリポジトリからコードをプルしたいだけです(私は Docker の初心者です)。

カスタムコードは、コアのフォークではなく、常にプラグインとして構築すべきです。

はい、本番環境のインストールがないのは理解しました。適切な開発環境を構築し、プラグインを作成してから、適切な本番環境に配置してください。

「いいね!」 3

Discourse テーマの開発者向けガイド および Discourse プラグイン作成入門ガイド 第 1 部:基本プラグインの作成 をご覧ください。

「いいね!」 1

「カスタムコード」とは、Discourse のコア部分を変更しないことを意味します。要件に合わせて CSS の微調整と JavaScript の変更を行うだけです。設定に基づいてユーザーをトピックのディスカッション画面(こちらのような画面)に直接リダイレクトしたいと考えていました。

プラグインは新しい機能を追加するためのもので正しいですか?

少なくとも、JavaScript と CSS のみの変更であれば、Theme Components を使ってすべての変更を済ませられる可能性が高いです。一方、Rails のバックエンド部分を変更する必要がある場合は、プラグインが必要になります。

まずは上記の Theme Developer リンクから始め、Theme Components で変更が可能か確認することをお勧めします。

「いいね!」 3