Nous avons installé Discourse avec succès sur Digital Ocean, tout fonctionne bien, mais nous ne trouvons absolument pas où se trouvent les fichiers Discourse eux-mêmes. Nous voulions tester certaines modifications et créer quelques plugins, mais nous ne trouvons aucun fichier. Nous avons utilisé FileZilla pour nous connecter au site. Cependant, nous ne trouvons aucun des fichiers de l’application Discourse, par exemple discourse/app. Nous sommes allés dans le dossier var/discourse et rien. Puis dans var/discourse/containers et toujours rien. Nous avons fait SSH .launcher entrer app, et nous pouvons voir que nos fichiers dans le terminal sont situés dans var/www, mais ce répertoire n’existe pas lorsque nous nous connectons au serveur. Nous avons essayé var/lib/docker/containers et rien. Où exactement se trouvent les fichiers Discourse ? Merci.
Voici comment fonctionne Docker : les fichiers réels se trouvent à l’intérieur d’un conteneur Docker et sont donc « invisibles » via FileZilla.
Si vous souhaitez tester des modifications sur Discourse, comme des plugins ou des thèmes, vous ne pourrez pas le faire sur une installation de production.
Pour les thèmes, consultez : Beginner's guide to using Discourse Themes
Pour les plugins, consultez : Developing Discourse Plugins - Part 1 - Create a basic plugin
Y a-t-il une autre façon d’installer cela sans utiliser Docker ? J’ai lu tous les guides, mais il est difficile de développer avec des fichiers invisibles.
Le paradigme est très différent des applications PHP des années 90, où il était courant de modifier des fichiers directement sur les serveurs de production via FTP.
Les modifications du comportement de Discourse doivent être réalisées dans le cadre de projets distincts, hébergés dans un dépôt Git dédié, et doivent s’appuyer sur les API existantes des plugins et des thèmes.
Par exemple, si vous souhaitez ajouter un champ supplémentaire à l’éditeur de sujets permettant aux utilisateurs de spécifier leur couleur préférée, vous créerez un nouveau plugin Discourse en suivant le guide Developing Discourse Plugins - Part 1 - Create a basic plugin, puis vous le mettrez sur GitHub dans un dépôt nommé discourse-favorite-color et l’installerez sur votre instance en suivant les instructions de Install plugins on a self-hosted site.
OK, c’est noté. Il va falloir s’habituer à cette nouvelle façon de développer. Juste par curiosité, à chaque fois qu’on ajoute un plugin, faut-il lancer ./launcher rebuild app ? Et le refaire ensuite lorsqu’on modifie le plugin ?
Oui.
Cependant, cela ne devrait se produire que rarement, car il s’agit de votre installation de production.
Pour les besoins du développement et des tests, la toute première partie de Developing Discourse Plugins - Part 1 - Create a basic plugin vous indique comment configurer un « environnement de développement » où vous pouvez apporter des modifications et les tester simplement en actualisant votre navigateur.
C’est ce que je fais, mais vous pouvez également effectuer une mise à jour via l’interface web à l’adresse /admin/upgrade.
De plus, une installation à deux conteneurs vous permet de mettre à jour comme suit :
./launcher bootstrap web_only
./launcher destroy web_only; ./launcher start web_only
Ainsi, votre site est hors ligne aussi longtemps que le temps nécessaire au démarrage du nouveau serveur (environ une minute).