Okay, hier ist also mein aktueller Stand.
- Die Wiederherstellung aus der .sql.gz-Datei war erfolgreich. (Hurra! Nochmals vielen Dank, Richard.)
- Ich habe sichergestellt, dass die app.yml-Konfiguration identisch mit der vor dem Ausfall ist.
- ./launcher rebuild app
- Der Neuaufbau war erfolgreich mit Postgres 13 (endlich).
Allerdings ist die Website selbst immer noch nicht erreichbar. Ich nutze Cloudflare, habe aber derzeit den Development-Modus aktiviert und den DNS-Cache geleert. Alles ist korrekt konfiguriert. Die Cloudflare-Vorlage ist in der app.yml enthalten.
DNS wird korrekt aufgelöst, die Hostnamen sind aktuell, die Discourse-Installation wurde mit der entsprechenden URL durchgeführt, und ich bin langsam ratlos.
Die URL ist https://forum.wackywriters.com, aber ich erhalte nur Fehlermeldungen wie „Server nicht verfügbar“. Ich habe das Gefühl, im Kreis zu laufen (entschuldigung), aber habt ihr vielleicht noch Vorschläge?
Edit: Wenn ich ./discourse-doctor ausführe, sehe ich, dass zwei Instanzen der App in Docker laufen:
Ist das normal? (Es scheint mir unwahrscheinlich, aber in den letzten 24 Stunden wurde alles, was ich über Discourse zu wissen glaubte, über den Haufen geworfen
)
Edit2: Ich habe das als letzten Ausweg hinausgeschoben, aber ich werde jetzt versuchen, einen komplett neuen Server mit einer frischen Discourse-Installation einzurichten. Ich befürchte, dass durch mein Herumprobieren etwas kaputtgegangen ist, und ich kann nicht herausfinden, was genau falsch läuft. Zum Glück habe ich noch das Backup und alle Uploads auf dem Block-Speicher. Wenn ich Glück habe, sollte ich diese Daten auf eine neue Droplet-Instanz übertragen können. Falls jemand weitere Vorschläge oder Tipps hat, würde ich mich über mehr Erfahrung als meine freuen.
Edit3: Selbst mit einem neuen Server und einer propagierten IP (nslookup und ping sehen beide gut aus, whatsmydns.net ebenfalls) lädt das Forum nicht. Ich erhalte weiterhin Verbindungsfehler. Es scheint, als würde die IP-Adresse nicht mit der Discourse-Instanz verknüpft, sondern stattdessen wird versucht, eine statische Seite zu laden, die in diesem Fall natürlich nicht existiert.