Wir haben Discourse erfolgreich auf Digital Ocean installiert, alles funktioniert einwandfrei, aber wir finden einfach nicht, wo sich die eigentlichen Discourse-Dateien befinden. Wir wollten einige Änderungen testen und einige Plugins erstellen, können aber keine Dateien finden. Wir haben FileZilla verwendet, um uns mit dem Server zu verbinden. Allerdings können wir nirgendwo die Discourse-Anwendungsdateien finden, z. B. discourse/app. Wir sind in den Ordner var/discourse gegangen und nichts. Dann var/discourse/containers und wieder nichts. Wir haben SSH ausgeführt: .launcher app betreten, und im Terminal sehen wir, dass unsere Dateien in var/www liegen, aber dieses Verzeichnis existiert nicht, wenn wir uns mit dem Server verbinden. Wir haben var/lib/docker/containers ausprobiert und nichts gefunden. Wo genau befinden sich die Discourse-Dateien? Danke.
So funktioniert Docker: Die eigentlichen Dateien befinden sich innerhalb eines Docker-Containers und sind daher mit Filezilla „unsichtbar".
Wenn Sie Änderungen an Discourse testen möchten, wie z. B. Plugins und Themes, ist dies in einer Produktionsinstallation nicht möglich.
Für Themes finden Sie hier weitere Informationen: Beginner's guide to using Discourse Themes
Für Plugins: Developing Discourse Plugins - Part 1 - Create a basic plugin
Gibt es eine andere Möglichkeit, dies zu installieren, als Docker zu verwenden? Ich habe alle Anleitungen gelesen, aber es ist ziemlich schwierig, mit versteckten Dateien zu entwickeln.
Das Paradigma unterscheidet sich stark von PHP-Anwendungen aus den 90er Jahren, bei denen es üblich war, Dateien auf Produktionsservern per FTP zu bearbeiten.
Änderungen am Verhalten von Discourse sollen als separate Projekte realisiert werden, die in einem eigenen Git-Repository liegen und die bestehenden Plugin- und Theme-APIs nutzen.
Angenommen, Sie möchten dem Themen-Composer ein zusätzliches Feld hinzufügen, in dem Benutzer ihre bevorzugte Farbe eingeben können. Dann erstellen Sie ein neues Discourse-Plugin gemäß Developing Discourse Plugins - Part 1 - Create a basic plugin, laden es auf GitHub in ein Repository namens discourse-favorite-color hoch und installieren es auf Ihrer Instanz unter Install plugins on a self-hosted site
OK, verstanden. Wir müssen uns an diese neue Entwicklungsweise gewöhnen. Bin nur neugierig: Müssen wir bei jedem neuen Plugin ./launcher rebuild app ausführen? Und das dann auch wieder, wenn wir das Plugin ändern?
Ja.
Dies sollte jedoch nur selten vorkommen, da es sich um Ihre Produktionsinstallation handelt.
Für Entwicklungs- und Testzwecke weist der erste Teil von Developing Discourse Plugins - Part 1 - Create a basic plugin darauf hin, dass Sie eine „Development Environment
Das mache ich auch, aber du kannst ein Upgrade auch über die Weboberfläche unter /admin/upgrade durchführen.
Außerdem ermöglicht eine Installation mit zwei Containern ein Upgrade wie folgt:
./launcher bootstrap web_only
./launcher destroy web_only; ./launcher start web_only
Dadurch ist deine Website nur so lange offline, wie der neue Server zum Hochfahren braucht (etwa eine Minute).