Wie kann eine importierte Website für bestehende Benutzer nicht zugänglich gemacht werden, sondern nur für Mitarbeiter und Dienste wie CDN, die konfiguriert werden müssen?

Kontext: Ich importiere ein vBulletin-Forum nach Discourse.

Ich möchte Dinge wie CDN, Remote-Backups usw. konfigurieren, bevor bestehende Benutzer auf den Forumsinhalt zugreifen können.
Ich möchte das Forum lieber nicht im Nur-Lese-Modus betreiben, da es für die Benutzer frustrierend wäre, nach einigen Monaten endlich wieder (und aktualisierten!) Inhalt zu sehen, aber nicht damit interagieren zu können. In diesem Kontext: Wenn der Inhalt verfügbar ist, sollte er auch interaktiv sein.

Im Grunde müsste ich also sicherstellen, dass Discourse für das Personal verfügbar ist, aber für andere Benutzer eine Wartungsseite anzeigt – auch wenn sie theoretisch einloggen könnten – und gleichzeitig muss meine Website weiterhin mit Diensten wie dem CDN kommunizieren können, damit ich diese ordnungsgemäß konfigurieren kann.

Was ist der einfachste Weg, dies zu erreichen?

AFAIK ist der einfachste Weg, die Seite auf Login erforderlich zu stellen, die Option Benutzer müssen genehmigt werden zu aktivieren und SMTP auf etwas wie Mailhog zu richten. Ich erinnere mich nicht mehr, ob der Importeur Benutzer automatisch genehmigt. Falls ja, kannst du im Rails-Console folgendes tun:

approved_users = AdminUserIndexQuery.new(query: 'approved', stats: false).find_users_query

approved_users.each do |u|
  u.approved = false
  u.save!
end

Und schalte die Genehmigung dann ab, sobald alles bereit ist.

Auf diese Weise werden während der Migration keine Nachrichten öffentlich versendet, und du kannst alle von Discourse generierten Nachrichten einsehen, falls etwas schiefgeht.

Es sei denn, du wählst die Migration von Passwörtern – in diesem Fall setzen Benutzer ohnehin ihre Anmeldedaten zurück.

Danke für die Antwort!

Nach einigem Nachdenken werde ich diese Seite einfach so gestalten:

Aber die Anmeldeschaltflächen vorübergehend ausblenden und den Satz durch etwas wie „In Bearbeitung. Bleiben Sie dran!

Ich würde Mailhog oder eine ähnliche Lösung empfehlen, nur um sicherzustellen, dass Discourse nicht Haufenweise von Benachrichtigungs-E-Mails generiert.

Ohne Einblicke riskierst du einfach, die Schleusen zu öffnen, indem du die E-Mail-Funktion wieder aktivierst.

Kann ich die ausstehenden E-Mails irgendwo einsehen?

Klar, genau das macht Mailhog. Es nimmt Nachrichten entgegen, zeigt die Warteschlange an und bietet dir die Möglichkeit, E-Mails an die Postfächer zu übergeben.