Darin steht, dass man alle paar Wochen ein Update durchführen soll. Alle paar Monate sollte man ein Update über Folgendes durchführen:
Wenn Sie Discourse selbst hosten, müssen Sie gelegentlich ein manuelles Update über die Befehlszeile ausführen, um die neuesten Sicherheitsupdates und die neuesten Bibliotheken zu erhalten. Diese Updates werden nicht über admin/update übernommen, weshalb Sie diesen zusätzlichen Schritt gelegentlich durchführen müssen.
Es gibt ein paar andere Themen, die über admin->update vs. ssh/console-Update sprechen, aber keines von ihnen macht deutlich, welche Updates nicht im Browser durchgeführt werden können.
Meine Erfahrung ist, dass in 9 Monaten des Betriebs von Discourse ein Web-/Admin-Update fehlgeschlagen ist. Ich habe den obigen Artikel gefunden und die angegebenen Befehle in einer SSH-Sitzung ausgeführt.
Gibt es eine bessere Möglichkeit zu wissen, welche Methode verwendet werden soll, als “die einfachere Methode schlägt fehl”?
Meine eigene Gewohnheit ist es jetzt, immer die Kommandozeile zu benutzen. Früher habe ich die Weboberfläche benutzt, aber da sie möglicherweise nicht funktioniert und mir weniger Kontrolle und Sichtbarkeit gibt, mache ich mir keine Mühe mehr.
Aber meine Foren haben ziemlich wenig Traffic und eine kleine Ausfallzeit ist keine große Sache.
Bemerkenswert ist auch, dass ich mich auf der Kommandozeile wohlfühle. Aber dann muss jeder Discourse-Administrator irgendwann die Kommandozeile benutzen.
Danke, das ist hilfreich. Ich hatte mir vorgestellt, dass die Kommandozeile schneller sein könnte (weniger Ausfallzeit/weniger Überwachung der Prozesszeit).
Wir hatten eine Web-/GUI-Oberfläche für Updates als erheblichen Vorteil angesehen, denn obwohl ich jahrzehntelange Erfahrung mit Unix/Linux-Programmierung und -Administration habe, bin ich auch ein Single Point of Failure in der Organisation. Daher war es eine Enttäuschung zu erfahren, dass einige Updates die Kommandozeile erfordern.
Alles gut, es ist eine großartige Plattform, die den Eintrittspreis mehr als wert ist
Es scheint eine gute Idee zu sein, auf ein Kommandozeilen-Upgrade vorbereitet zu sein, auch wenn man gerade versucht, ein Web-Upgrade durchzuführen. Persönlich überprüfe ich vorher dieses Forum, um zu sehen, ob jemand gerade Schwierigkeiten hat. Es kann vorkommen, dass die Codebasis vorübergehend defekt ist. Außerdem mache ich immer ein Backup und lade es herunter, bevor ich anfange.
Ich vermute, dass die beste Vorgehensweise, wenn eine minimale Ausfallzeit wichtig ist, die Installation mit zwei Containern ist.
Ich verstehe Docker nicht vollständig (eine Untertreibung), aber ich vermute, dass man, wenn man sich mit einem halb aktualisierten Forum wiederfindet, das nicht funktioniert, in gewissem Sinne die Vor-Upgrade-Version starten kann, während man auf Hilfe wartet. (Ich habe nach “restart the old container” gesucht, aber keine genauen Informationen dazu gefunden.)
./launcher start app sollte die Version vor dem Rebuild wiederherstellen, wenn einer mitten im Prozess fehlschlägt.
Obwohl ich meistens über die Benutzeroberfläche aktualisiere. Auf diese Weise gibt es keine Offline-Zeit. Gelegentlich müssen Sie über die Befehlszeile aktualisieren, aber im Allgemeinen werden Sie dazu aufgefordert, nachdem Sie den Docker-Manager aktualisiert haben und bevor Sie versuchen, Discourse selbst zu aktualisieren.
Normalerweise, wenn ein Kommandozeilen-Neubau erforderlich ist, warnt die Benutzeroberfläche Sie und weigert sich, ein Upgrade selbst durchzuführen. Das passiert jedoch nicht immer.
Ich habe ein Dashboard.literatecomputing.com, das Kommandozeilen-Neubauten mit einem Klick durchführt. Obwohl ich hoffe, dass die Leute mich bezahlen werden, um es zu nutzen (und meine Unterstützung erhalten), können Sie für eine “begrenzte Zeit” der kostenlosen Testgruppe beitreten und es kostenlos nutzen. Es behandelt eine ganze Reihe von Problemen, wie das Entfernen von Plugins, die in den Kern verschoben wurden, Postgres-Upgrades, das Neustarten des alten Containers, wenn der Neubau fehlschlägt, das Upgrade nur des Web-Containers, wenn es sich um eine 2-Container-Installation handelt, und so weiter.
Guter Punkt, ich bin etwas paranoid, ich erstelle einen System-Snapshot vor und nach Upgrades, zusätzlich zu den Discourse-Anwendungs-Backups. … Ich sollte wahrscheinlich mehr über die Wiederherstellung aus Backups lernen.
Ich habe noch keinen Snapshot verwendet … Ich habe das Gefühl, dass dies eine kostenpflichtige Option ist.
Ich halte es jedoch für wichtig, dieses Backup herunterzuladen: Wenn die Instanz vollständig beschädigt ist, wenn mein Konto gekündigt wurde und der Hoster alles gelöscht hat, was ich verwendet habe, hätte ich immer noch mein Forum, und zwar in einem Format, das ich bei jedem Hoster meiner Wahl wiederherstellen kann.
System-Snapshots (glaube ich) erfordern eine Ausfallzeit, während sie erstellt werden, und sind ziemlich übertrieben. Eine Kopie Ihrer app.yml und die Sicherungsdatei sind alles, was Sie brauchen. Wenn die Sicherungen auf S3 liegen, brauchen Sie nur Ihre app.yml, um einen brandneuen Server hochzufahren und die Daten wiederherzustellen.
Snapshots erfordern definitiv eine Ausfallzeit, und meine Snapshots kosten ein paar Dollar im Monat, um sie aufzubewahren.
Ich mache auch Backups, aber nachdem ich einmal versucht habe, ein defektes Discourse aus einem Backup wiederherzustellen, das zu einem bekannten guten Zeitpunkt erstellt wurde, gehe ich auf Nummer sicher.