Déplacer Discourse vers un nouveau serveur sans configurer d'abord l'interface web ?

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 « J'aime »

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 « J'aime »

@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 « J'aime »

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 « J'aime »

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 « J'aime »

Sounds like a bug

Yes. You can do that.

2 « J'aime »

Désolé de rouvrir un sujet ancien / résolu, mais je pensais que cette clarification devrait être incluse ici plutôt que dans un nouveau sujet.

Si je veux déplacer une installation Discourse autonome fonctionnelle de l’ancien serveur vers le nouveau serveur, et en supposant que Docker est installé et fonctionne sur le nouveau serveur, cela pourrait-il être aussi simple que :

ancien-serveur :

cd /var/discourse
./launcher stop app

nouveau-serveur :

rsync ancien-serveur:/var/discourse /var
cd /var/discourse
./launcher rebuild app

Ensuite, modifiez le DNS pour que le nom de domaine du forum pointe vers le nouveau serveur.

???

1 « J'aime »

Vous devez changer le avant de reconstruire. Et si vous allez changer le nom d’hôte, il est plus facile de sauvegarder et restaurer. Sinon, vous devez suivre Changer le nom de domaine ou renommer mon Discourse ?.

Vous pouvez déplacer la sauvegarde avec scp et restaurer depuis la ligne de commande.

1 « J'aime »

Bonjour, merci. Il n’y aura aucun changement dans le nom d’hôte / nom de domaine. Je passe simplement à un nouveau serveur plus grand. Cette stratégie simple fonctionnera-t-elle dans ce cas ?

Edit : Je modifie mon message original ci-dessus pour essayer de clarifier que le nom d’hôte du forum ne changera pas - juste un nouveau serveur. Désolé pour la confusion.

2 « J'aime »

Je vois. Peut-être qu’il devrait y avoir un howto.

Oui, vous pouvez rsync /var/discourse vers le nouveau serveur (et cela inclura les certificats SSL), et faire une reconstruction, puis changer le DNS et cela devrait fonctionner.

2 « J'aime »

Si vous modifiez les spécifications du serveur, vous bénéficierez de l’exécution de discourse-setup - il gère certains aspects de la mise à l’échelle (workers unicorn et tampons partagés de base de données) et configurera automatiquement app.yml. La simple copie de dossiers n’y parviendra pas.

2 « J'aime »

Merci Stephen,

Je prévois d’ajuster manuellement ces paramètres dans app.yml. Je vais exécuter Discourse en parallèle avec quelques autres applications basées sur Docker sur le même serveur (comme je le fais actuellement), et je les ai donc réglées sur un niveau d’utilisation des ressources légèrement inférieur à celui que la configuration définirait en fonction des spécifications du serveur si Discourse était la seule application en cours d’exécution.

2 « J'aime »

Ce sujet a été automatiquement fermé après 2361 jours. Les nouvelles réponses ne sont plus autorisées.