Quelqu'un utilise-t-il son instance Discourse comme site web entier ?

Afin de simplifier notre pile technologique, je me demande s’il ne faudrait pas héberger un site web et un forum séparément, mais plutôt reconfigurer Discourse pour qu’il serve à la fois de site web et de forum.

Je vois que c’est ainsi que Pavilion, par @angus, utilise Discourse.

Nos besoins en matière de site web sont cependant plus complexes ! Voici notre site web actuel.

Je serais curieux de savoir s’il existe d’autres sites web utilisant uniquement Discourse que je pourrais explorer. Ou bien si vous avez des idées sur la façon dont cela pourrait être réalisé.

5 « J'aime »

Eh bien, il est possible d’utiliser publier des pages pour votre contenu non lié aux messages.

Ensuite, utilisez un plugin de sous-menu d’en-tête pour obtenir un menu principal avec des sous-menus, ou un autre plugin pour obtenir simplement un menu sans sous-menus.

Tout dépend de vos besoins.

4 « J'aime »

Oui ! Je pense que ce sont d’excellents points de départ.

L’une de nos exigences serait de pouvoir intégrer des éléments tels que notre formulaire d’inscription à la newsletter et notre formulaire de dons.

4 « J'aime »

Je ne sais pas non plus exactement à quel point le style personnalisé est puissant pour la publication de pages. Je me demande s’il existe des exemples de pages qui présentent un style beaucoup plus élaboré, avec par exemple des blocs de contenu ayant des arrière-plans différents.

2 « J'aime »

La question se résume à trois éléments :

  • la quantité de « contenu publié » (a) par rapport à la communauté (b)
  • la proportion de visites sur (a) par rapport à (b)
  • votre budget

Vous pouvez servir des millions de pages vues à partir d’un VPS à 5 $ exécutant WordPress avec la mise en cache et le CDN appropriés. L’instance Discourse équivalente serait beaucoup, beaucoup plus coûteuse.

Si la majorité du trafic et de l’activité se produit au sein de Discourse et qu’il n’y a aucun risque de pics de trafic sur les pages statiques, alors l’hébergement de tout cela dans Discourse pourrait avoir du sens. Dans d’autres cas, un véritable CMS reste le roi.

11 « J'aime »

Hmmm, tu devrais peut-être régler ton https et ton certificat.

4 « J'aime »

15 messages ont été déplacés vers un nouveau sujet : Le certificat SSL ne fonctionne pas sur le site principal Discourse

Discourse est un back-end Rails extensible, donc vous pouvez faire tout ce qu’une application Rails peut faire, je pense. Mais cherchez-vous une solution miracle ?

1 « J'aime »

Bien que cela puisse certainement être fait et que cela puisse avoir du sens pour votre organisation, nous chez Discourse utilisons un logiciel différent pour notre site web principal.

Notre site web principal est un HTML statique généré par https://jekyllrb.com/ et notre blog est une instance WordPress simple.

Cela dépend vraiment de la façon dont l’ingénierie de votre organisation est structurée et de vos besoins et priorités.

7 « J'aime »

Merci pour cela, Rafael.

Je suis impatient de me débarrasser de WordPress. J’envisageais de passer à une solution basée uniquement sur Discourse, mais je pense maintenant utiliser Jekyll pour les éléments statiques/informatifs actuellement sur www.literatecomputing.com, et migrer uniquement les parties génératrices de revenus vers Discourse et le plugin naissant discourse-subscriptions. Je travaille activement sur un plugin Discourse qui servira d’interface pour mes outils d’installation, de mise à niveau et de maintenance.

7 « J'aime »

Voici deux idées pour vous : deux sites entièrement créés avec Discourse (le premier utilise le plugin Docuss, désormais obsolète, tandis que le second utilise le plugin DiscPage) :

http://www.docuss.org/
https://en.castafiore.org/

7 « J'aime »

Merci pour ce cadre de décision !

Je dois être honnête et dire que je ne suis pas sûr de ce que cela signifie, alors je vais maintenant laisser la parole à nos experts techniques. :smile:

@pfaffman Pourriez-vous en dire plus à ce sujet ? Quels sont les points douloureux que vous rencontrez ? Je considère encore les CMS et WordPress est dans la course.

Je serais très intéressé à rester en contact à ce sujet !

3 « J'aime »

Oui, c’est exactement ce dont j’avais besoin. Merci !

5 « J'aime »

Pour être honnête, j’ai appris php avant qu’on l’appelle ainsi, et je n’ai pas suivi l’évolution de ce langage qui est devenu beaucoup plus moderne, et mes besoins sont très spécifiques (je dois encaisser de l’argent et automatiser la création d’un droplet Digital Ocean avec l’installation de Discourse dessus).

Mais les dernières fois où j’ai accepté 500 à 1000 $ pour faire une modification Discourse/WordPress que je pensais être rapide et rentable, j’ai été déçu. Et la dernière fois, j’ai passé beaucoup de temps et j’ai remboursé quelqu’un. Bien sûr, s’ils avaient des besoins simples, ils ne m’auraient probablement pas engagé. J’ai aussi un autre client avec un site WordPress rempli d’un nombre incalculable de plugins obsolètes et non mis à niveau. C’est un désastre absolu ; il a été piraté à un moment donné et contient plein de liens pornographiques. Facile à éviter.

D’un autre côté, j’utilise Gravity Forms plutôt que WooCommerce depuis un an ou deux, et je suis très satisfait de l’utiliser pour encaisser de l’argent, aussi bien pour des paiements uniques que pour des abonnements (même si ce n’est pas intégré à Discourse). (Mais je n’arrive pas à déclencher l’installation de Discourse exactement au moment où je le souhaite !)

Si vous faites des choses « standard » et que vous vous en tenez à des plugins bien pris en charge, vous ne serez probablement pas déçu (mais j’utiliserais discourse-subscriptions pour gérer, eh bien, les abonnements Discourse). Un quart des sites sur Internet utilisent WordPress, et il y a une bonne raison à cela.

7 « J'aime »

Mise à jour : Il semble que nous opterons pour deux systèmes distincts, l’un pour notre site web et l’autre pour notre Discourse. Le facteur déterminant est que les personnes chargées de mettre à jour le contenu de notre site sont majoritairement des non-techniciens, qui bénéficient grandement d’un système de gestion de contenu extrêmement simple à utiliser. Nous utilisons Weebly pour permettre aux gens de mettre à jour facilement le contenu. Encore mieux, nous payons pour une plateforme qui gère notre système de dons et de gestion des contacts, et qui est accompagnée d’une équipe technique dédiée à laquelle nous pouvons simplement envoyer un e-mail pour effectuer des modifications plus complexes, comme celles concernant le thème du site, l’organisation, les intégrations, etc. Ils s’occuperont du site Weebly, mais pas de Discourse.

Maintenant que nous avons décidé d’avoir deux sites distincts, nous devons trouver un moyen de les rendre cohérents entre eux. Je tiens à remercier publiquement @angus, dont l’entreprise soutient la communauté PianoGroove et qui propose l’intégration la plus magnifique que j’aie jamais vue (et j’en ai vu beaucoup !).

Site web de PianoGroove

Capture d’écran du site de la communauté PianoGroove

@angus, je vous remercie sincèrement pour le travail exceptionnel que vous accomplissez pour vos clients et pour votre générosité en rendant open-source les plug-ins et les thèmes que vous créez. Nous avons encore du chemin à faire pour que notre site web et Discourse fonctionnent parfaitement pour nous, mais à maintes reprises, je constate que le travail réalisé par Pavilion correspond exactement aux besoins de notre organisation communautaire, basée sur des principes open-source et ancrée dans le terrain.

16 « J'aime »

Merci @debryc :slight_smile:

Je tiens à préciser que ce sont tous les membres de Pavilion, et pas seulement moi, qui entretenons notre travail. Notre coopérative est un effort collectif.

J’ajouterais également que nous venons de rendre open source notre plugin Landing Pages, qui permet de créer des pages entièrement indépendantes, soutenues par une instance Discourse ; une autre façon de répondre au besoin discuté dans ce sujet. Ce plugin sépare le frontend des pages du client Discourse (c’est-à-dire qu’il ne charge pas l’application Discourse), tout en permettant une intégration facile via un backend commun (c’est-à-dire le serveur Discourse).

Nous commençons déjà à utiliser ce plugin avec certains de nos clients pour répondre à des besoins similaires à ceux discutés ici. Nous envisageons également de développer des packages open source généralisés et faciles à utiliser, basés sur des cas d’usage courants pour un CMS associé à une communauté, utilisables avec ce plugin.

Voici la liste actuelle des cas d’usage que nous avons en tête pour bénéficier de cette approche.

  • Blog (je travaille actuellement sur celui-ci). Rédigez du contenu dans Discourse, puis présentez-le sur une page de blog entièrement indépendante, que vous pouvez personnaliser comme un vrai blog (c’est-à-dire comme WordPress ou Ghost).

  • Pages de produits, services ou fonctionnalités (comme les nôtres). Affichez des produits, des services ou des fonctionnalités qui peuvent inclure du contenu ou des données (catégories, tags, sujets, utilisateurs, etc.) provenant de votre instance Discourse.

  • Pages “Équipe” (comme les nôtres). Une page pour votre équipe, utilisant l’appartenance (et les données des utilisateurs) d’un groupe d’utilisateurs Discourse.

  • Pages d’événements, pour lister et afficher les données d’événements de votre instance Discourse sur une page d’atterrissage d’événement stylisée. Les “données d’événements” ici pourraient être une combinaison de données du plugin Discourse Calendar, de catégories, de sujets, d’utilisateurs (par exemple, les RSVP) et de lieux (en utilisant notre plugin Locations).

Nous sommes intéressés par d’autres cas d’usage généralisables que les gens pensent bénéficieraient de cette approche. Je note dès maintenant qu’il existe certains cas d’usage que nous avons déjà envisagés et qui sont moins susceptibles de bénéficier de cette approche à ce stade :

  • Boutique. Bien qu’il puisse y avoir une page intégrant des éléments d’une boutique, les boutiques en ligne nécessitent un large éventail de fonctionnalités qui exigeront toujours une solution dédiée comme WooCommerce ou Shopify.

  • Base de connaissances. Ce besoin est déjà bien couvert par des solutions comme le plugin Knowledge Explorer. Une page d’atterrissage peut afficher un sous-ensemble d’une base de connaissances, mais reproduire intégralement les fonctionnalités d’un outil comme le plugin Knowledge Explorer (ou simplement les listes de sujets Discourse) serait contre-productif.

Nous sommes également intéressés à collaborer avec toute personne souhaitant développer de telles pages, que ce soit dans le cadre d’un projet de développement en soi (par exemple, pour améliorer ses compétences), pour sa communauté, ou même pour les vendre. Nous prévoyons de publier nos propres packages open source gratuits pour chaque cas d’usage à moyen terme (4 à 6 mois).

Le plugin Landing Pages, ainsi que les pages de Pavilion, seront toujours 100 % open source et gratuits. Cependant, il s’agit d’une structure généralisable que toute personne ayant des connaissances en HTML et CSS pourrait utiliser pour développer un “pack de pages” si elle le souhaitait. J’ajouterai prochainement un “guide développeur” à la documentation Knowledge pour ce plugin.

Le plugin Landing Pages prend déjà en charge l’hébergement de pages dans des dépôts privés, de la même manière que le système de thèmes de Discourse (en effet, en coulisses, il est basé sur et étend le système de thèmes de Discourse). Cela signifie qu’il est déjà possible de vendre l’accès à un pack de pages d’atterrissage si vous le souhaitez. Cela pourrait rendre intéressant pour d’autres développeurs de créer de tels packs.

Cette approche ne répondra pas à tous les besoins de gestion de contenu associés à un forum, mais elle pourrait servir un sous-ensemble de manière très efficace, en particulier ceux que nous voyons régulièrement chez les communautés plus petites et indépendantes, car elle éliminerait le besoin d’instances séparées et, surtout, le besoin de partager des données entre ces instances via des protocoles d’authentification (c’est-à-dire le partage de données d’utilisateur lors de la connexion), des webhooks ou d’autres méthodes de partage de données.

Cela pourrait réduire les coûts et l’administration, en particulier pour les petites communautés cherchant à gérer du contenu relativement contenu ou ciblé, ou des pages statiques, en parallèle de leur forum. Ce ne sera jamais un remplacement direct de WordPress ou d’autres systèmes de gestion de contenu, mais nous espérons pouvoir rendre certains cas d’usage significativement plus faciles.

19 « J'aime »

Oui ! Et merci !

Pages autorisant l’exécution de scripts

Je ne suis sur une communauté basée sur Discourse que depuis 2,5 mois. Ce que j’ai rencontré, c’est le besoin d’outils spécifiques nécessitant l’inclusion d’un script.

Exemple de calendrier : il existe des outils de gestion de calendrier ou d’événements que je pourrais intégrer dans une page. Cependant, un script est nécessaire dans la balise ET il doit être déclenché pour la page.

Plus généralement pour le SAS : souvent, un iframe n’est pas l’idéal. Je ne veux pas que mes membres doivent se rendre sur un autre site pour s’inscrire, par exemple, mais mon service d’inscription ConvertBox nécessite un script dans et une balise

.

En cherchant à améliorer les offres de ma communauté, une chose est très claire : tant que je ne “résouds” pas la possibilité d’ajouter plus facilement des intégrations basées sur des scripts, j’ai l’impression d’être coincé avec ce que OneBox prend en charge ou avec l’utilisation d’iframes. Je pourrais même rêver de mettre fin à mon site WordPress s’il existait des fonctionnalités de Pages améliorées offrant un contrôle sur l’inclusion et le déclenchement de scripts comme celui-ci.

Je ne pourrais pas le coder moi-même, mais je pourrais voir comment aider financièrement ce type de développement pour que la communauté en bénéficie. Merci !

3 « J'aime »

Les intégrations sont en fait possibles à la fois dans l’interface utilisateur de Discourse (par exemple, au-dessus d’une liste de sujets) grâce à un thème, et via le plugin Landing Pages. Pour ce dernier, j’ai créé un exemple en utilisant cette petite version du jeu du Dinosaure. Vous pouvez y jouer ici : Pavilion (uniquement sur ordinateur de bureau).

2021-03-04 18.54.09

Aucune programmation n’a été nécessaire pour cela. J’ai simplement téléchargé ces ressources sur notre CDN (j’ai glissé-déposé le dossier dans un espace DigitalOcean), créé une page avec le chemin « dinosaur » et copié-collé ce code HTML (le tout via l’interface d’administration).

HTML
<div class="landing page dinosaur">
  <div class="container">
    <h1>Jeu du Dinosaure !</h1>
    <canvas id="game" height="200" width="800"></canvas>
    <p class="controls">appuyez sur la barre d'espace pour démarrer</p>
    
    <script src="https://pavilion-assets.nyc3.digitaloceanspaces.com/dinosaur/js/helpers.js"></script>
    <script src="https://pavilion-assets.nyc3.digitaloceanspaces.com/dinosaur/js/objects/game-object.js"></script>
    <script src="https://pavilion-assets.nyc3.digitaloceanspaces.com/dinosaur/js/objects/cactus.js"></script>
    <script src="https://pavilion-assets.nyc3.digitaloceanspaces.com/dinosaur/js/objects/dinosaur.js"></script>
    <script src="https://pavilion-assets.nyc3.digitaloceanspaces.com/dinosaur/js/objects/background.js"></script>
    <script src="https://pavilion-assets.nyc3.digitaloceanspaces.com/dinosaur/js/objects/score.js"></script>
    <script src="https://pavilion-assets.nyc3.digitaloceanspaces.com/dinosaur/js/game.js"></script>
    <script>
    	new Game({
    		el: document.getElementById("game")
    	});
    	window.onkeydown = function(e) {
            return e.keyCode !== 32;
        };
    </script>
  </div>
</div>

Le plugin Landing Pages applique les paramètres CSP et CORS de Discourse, que j’ai déjà configurés pour autoriser les scripts provenant de notre CDN (via les paramètres du site concernés).

La semaine prochaine, je publierai un article complet dans la base de connaissances intitulé « Comment héberger et intégrer des ressources » pour couvrir ce cas d’utilisation avec ce plugin.

8 « J'aime »

Merci, c’est utile comme point de départ.

Je n’ai pas trouvé comment faire cela dans un thème, par exemple en insérant un balise qui se chargerait avec chaque sujet modifié ou au-dessus d’une liste de sujets. Dois-je personnaliser le thème et le placer après l’en-tête ?

2 « J'aime »