Discours personnalisé avec des fonctionnalités limitées

Bonjour l’équipe,

Je travaille sur un petit projet où nous personnalisons Discourse pour rediriger l’utilisateur directement vers « un sujet », avec de nombreuses personnalisations côté client. L’utilisateur atterrit directement sur le sujet et peut simplement publier ou répondre au fil de discussion. Discourse est chargé dans une WebView au sein d’une application mobile. J’ai également supprimé le compositeur d’origine et mis en place un compositeur personnalisé avec certaines options retirées. Ce compositeur personnalisé reste toujours fixé en bas de la page pour permettre une réponse rapide aux publications des utilisateurs.

Nous utilisons une configuration minimale de 2 Go de RAM (sans Docker). Lorsque l’utilisateur s’inscrit au forum, nous effectuons une redirection (côté client) vers un sujet, mais cette redirection prend parfois entre 10 et 25 secondes. J’ai testé d’autres sites comme swift.org, et leur Discourse est nettement plus rapide pour charger les pages, avec des temps de 3 à 6 secondes. J’ai inspecté l’onglet Réseau : ce sont exactement les mêmes fichiers JS et CSS chargés depuis le réseau, la seule différence étant que la version mobile charge « mobile.css ».

Quel pourrait être le problème avec notre installation Discourse personnalisée ? Avez-vous des pistes pour l’optimiser ? Pensez-vous qu’il faille augmenter les spécifications du serveur ? Notre base d’utilisateurs ne compte que quelques centaines de personnes ; actuellement, il n’y a que quelques utilisateurs (développeurs), et nous rencontrons tout de même ce problème.

N’avez-vous pas effectué une installation standard officielle de Discourse, mais plutôt une installation de développement ? Ce que vous décrivez semble correspondre aux performances attendues pour une installation de développement.

Avez-vous apporté vos modifications dans un plugin, ou avez-vous créé une version forkée ?

Oui, j’ai fait un fork. Je n’ai pas utilisé Docker, j’ai personnalisé un peu côté serveur et surtout côté client avec des modifications en JS et CSS. La documentation officielle d’installation n’était pas claire concernant la configuration du code personnalisé. Pourriez-vous m’indiquer où trouver la configuration Docker avec du code personnalisé ? En gros, je veux simplement récupérer le code depuis mon dépôt. [Je suis nouveau avec Docker]

Votre code personnalisé doit toujours être développé sous forme de plugin, et non en tant que fork du cœur du système.

Je suis d’accord : vous n’avez pas d’installation de production. Procurez-vous une installation de développement appropriée, créez votre plugin, puis déployez-le sur une installation de production adéquate.

Consultez le guide du développeur pour les thèmes Discourse et le guide du débutant pour créer des plugins Discourse, partie 1 : Créer un plugin de base.

En parlant de « code personnalisé », je veux dire ne pas toucher au cœur de Discourse. Juste quelques ajustements CSS et des modifications JS pour répondre à nos besoins. Nous voulions simplement rediriger les utilisateurs (selon certains paramètres) directement vers l’écran de discussion du sujet (comme ceci).

Les plugins servent-ils bien à ajouter de nouvelles fonctionnalités ?

C’est au moins en partie vrai : si vous modifiez uniquement du JavaScript et du CSS, vous pouvez probablement apporter toutes vos modifications grâce aux composants de thème. Si vous devez modifier des éléments backend dans Rails, vous aurez besoin d’un plugin.

Je vous recommande de commencer par le lien vers le développeur de thème ci-dessus et de voir si vous pouvez effectuer vos modifications dans les composants de thème.