Discourse auf einen neuen Server verschieben, ohne zuerst die Web-UI einzurichten?

Let’s say I want to move my Discourse site from one Amazon EC2 instance (e.g. t2.micro) to a larger instance (e.g. t2.medium), what is the correct procedure for this?

The only option I know about is:

  1. Backup the existing site
  2. Install Discourse on the new server
  3. Configure Discourse using temporary values
  4. Restore the backup

However, I’m thinking that the smart people at Discourse thought about this situation and there’s a way to restore a backup on a new installation without step 3.

Scouring the site, I wasn’t able to find a definitive answer.

I did look at Move your Discourse Instance to a Different Server, but the instructions seem to imply that a generic installation is already active on the target server and that you can log in and immediately perform a restore.

1 „Gefällt mir“

I think what you want to know is that you can copy the backup to the new instance and then restore from the command line like

cd /var/discourse
./launcher enter app
discourse enable_restore
discourse restore

The last command will give you a list of available backups and you can copy-and-paste to start the restore.

5 „Gefällt mir“

@pfaffman thank you for helping with this question, there’s one spot where I’m still a bit unclear.

On the new server (assuming the prerequisites are already installed), after cloning the Discourse repository, do I still need to run discourse-setup? I don’t believe it’s possible to issue the commands

until after setup completes. Or am I incorrect? If I am correct, this is the part I’m referring to, you have to essentially provide a set of default values before you are able to perform a restore.

1 „Gefällt mir“

Yes, you still need to set up Discourse, but you can just use the same app.yml that you use on the old instance (or type them in to discourse-setup if that’s easier for you). But you have to have all of those values for a running Discourse anyway, so it’s not “temporary” values, but the values.

The command-line restore saves the you time of creating a temporary admin account that you’d use just to restore the backup.

6 „Gefällt mir“

when I use the command line, everything goes well during the restore but at the end I get the following error:
Something went wrong while notifying user.

do you have any idea what I should do?

also is it possible to set up the new server by simply copying /var/discourse/ of the old server into the new one, rather than restoring a backup?

1 „Gefällt mir“

Sounds like a bug

Yes. You can do that.

2 „Gefällt mir“

Entschuldigen Sie, dass ich ein altes / gelöstes Thema wieder aufgreife, aber ich dachte, diese Klarstellung sollte hier statt in einem neuen Thema stehen.

Wenn ich eine funktionierende Standalone-Discourse-Installation von einem alten Server auf einen neuen Server verschieben möchte und davon ausgehe, dass Docker auf dem neuen Server installiert und funktionsfähig ist, könnte es so einfach sein wie:

alter-server:

cd /var/discourse
./launcher stop app

neuer-server:

rsync alter-server:/var/discourse /var
cd /var/discourse
./launcher rebuild app

Ändern Sie dann die DNS, um den Domainnamen des Forums auf den neuen Server zu verweisen.

???

1 „Gefällt mir“

Sie müssen die ändern, bevor Sie neu erstellen. Und wenn Sie den Hostnamen ändern möchten, ist es einfacher, ein Backup zu erstellen und wiederherzustellen. Andernfalls müssen Sie Change the domain name or rename my Discourse? befolgen.

Sie können das Backup mit scp verschieben und von der Befehlszeile wiederherstellen.

1 „Gefällt mir“

Hallo, danke. Es wird keine Änderung am Host-/Domänennamen geben. Ich ziehe einfach auf einen neuen, größeren Server um. Wird diese einfache Strategie in diesem Fall funktionieren?

Bearbeitung: Ich bearbeite meinen obigen Originalbeitrag, um klarzustellen, dass sich der Hostname für das Forum nicht ändern wird – nur ein neuer Server. Entschuldigung für die Verwirrung.

2 „Gefällt mir“

Ich verstehe. Vielleicht sollte es eine howto geben.

Ja, Sie können /var/discourse per rsync auf den neuen Server kopieren (und das beinhaltet die SSL-Zertifikate), einen Rebuild durchführen und dann die DNS-Einträge ändern, und es sollte einfach funktionieren.

2 „Gefällt mir“

Wenn Sie Server-Spezifikationen ändern, profitieren Sie von der Ausführung von discourse-setup – es behandelt bestimmte Aspekte der Skalierung (Unicorn-Worker und DB-Shared-Buffer) und konfiguriert die app.yml automatisch. Das bloße Kopieren von Ordnern erreicht dies nicht.

2 „Gefällt mir“

Danke Stephen,

Ich beabsichtige, diese Parameter in app.yml manuell anzupassen. Ich werde Discourse parallel zu einigen anderen Docker-basierten Anwendungen auf demselben Server ausführen (wie ich es jetzt tue), und daher habe ich sie auf ein etwas geringeres Ressourcenverbrauchsniveau abgestimmt als dort, wo die Einrichtung sie basierend auf den Server-Spezifikationen platzieren würde, wenn Discourse die einzige laufende Anwendung wäre.

2 „Gefällt mir“

Dieses Thema wurde nach 2361 Tagen automatisch geschlossen. Neue Antworten sind nicht mehr möglich.