Sposta la tua istanza Discourse su un server diverso

:bookmark: Questa è una guida per spostare la tua istanza Discourse da un server all’altro, incluse tutte le impostazioni e i dati. Questa guida si applica alle istanze Discourse self-hosted che utilizzano Docker.

:person_raising_hand: Livello utente richiesto: Amministratore di sistema

:warning: Questa procedura comporta modifiche al dominio e al DNS. Assicurati di avere accesso sia al server di origine che a quello di destinazione.

Questa guida ti illustra il processo di migrazione della tua istanza Discourse da un server all’altro, assicurando che i tuoi dati, le impostazioni e la configurazione vengano preservati.

Disclaimer aggiunto da @pfaffman 2025-09-12T05:00:00Z.

Queste istruzioni non funzionano bene ora perché stai usando https e let’s encrypt, che richiedono che il nuovo server abbia il DNS puntato su di esso in modo che possa richiedere le chiavi. Ciò che raccomando è seguire Move a Discourse site to another VPS with rsync (forse usando --exclude postgres* e poi eseguendo il backup e il ripristino del database dalla riga di comando.) Questo è intelligente poiché se sai come, puoi modificare il tuo DNS locale per puntare al nuovo server in modo da poter testare che funzioni mentre il resto di internet vede ancora il sito vecchio.

Sommario

Eseguirai i seguenti passaggi chiave in questa guida:

  1. Esegui il backup della tua attuale istanza Discourse (server di origine).
  2. Trasferisci il file di backup sulla tua istanza Discourse di destinazione (server di destinazione).
  3. Ripristina il backup sul server di destinazione.
  4. Aggiorna le impostazioni DNS (se applicabile).

Regolazione delle impostazioni DNS (quando richiesto)

Se stai utilizzando lo stesso dominio per il nuovo server, riduci il TTL (time to live) sulla tua voce DNS in anticipo. Ciò garantirà un tempo di inattività minimo durante la propagazione dei record DNS aggiornati. Se utilizzerai un nuovo dominio, questo passaggio può essere omesso.

Accesso e preparazione del server di origine

  1. Accedi alla tua istanza Discourse di origine con un account che dispone di privilegi di amministratore.
  2. Assicurati che sia il server di origine che quello di destinazione stiano utilizzando:
    • La stessa versione di Discourse.
    • Lo stesso insieme di plugin.
  3. Aggiorna la versione di Discourse su entrambi i server visitando /admin/upgrade.

:exclamation: Evita di ripristinare un backup più recente su una versione di Discourse precedente, o versioni PostgreSQL incompatibili, poiché ciò potrebbe causare errori.

Creazione e download del backup

  1. Naviga su /admin/backups sulla tua istanza Discourse di origine.
  2. Clicca sul pulsante Backup per creare un backup:
  3. Quando richiesto, conferma cliccando su .
  4. Una volta completato il backup, vai alla scheda File di backup e individua il backup appena creato.
  5. Clicca su Download per ricevere un’email con un link per il download. Clicca sul link nell’email per salvare il file di backup localmente.

:warning: Prima di procedere, esamina il tuo file app.yml per assicurarti che tutte le impostazioni opzionali, come le configurazioni CDN, i plugin installati o il supporto HTTPS, siano coerenti tra il server di origine e quello di destinazione.

Ripristino del backup sul server di destinazione

:bulb: Per ripristinare il backup tramite la riga di comando, consulta la documentazione pertinente.

  1. Accedi come amministratore alla tua istanza Discourse di destinazione.
  2. Naviga su /admin/backups/settings e abilita l’impostazione allow restore.
  3. Vai su /admin/backups e clicca sulla scheda File di backup. Carica il file di backup che hai scaricato in precedenza cliccando sul pulsante Upload:
  4. Dopo che il caricamento è completato, clicca sul menu ⋮ (altre opzioni) accanto al backup caricato, quindi clicca su Restore (Ripristina):
  5. Conferma cliccando su quando richiesto.

Il processo di ripristino avrà inizio. Potrebbe volerci del tempo a seconda delle dimensioni del tuo database. Dopo il completamento del processo, sarai automaticamente disconnesso.

Finalizzazione e accesso

  1. Accedi alla tua istanza Discourse di destinazione con le tue credenziali di amministratore.
  2. Se il sito è stato sottoposto a backup utilizzando HTTPS, assicurati che HTTPS sia abilitato sul nuovo server. Se non configurato correttamente, utilizza la console Rails per disabilitare temporaneamente l’impostazione “force https”.
  3. Riabilita eventuali configurazioni opzionali modificando il file app.yml e ricostruendo la tua istanza. Questo potrebbe includere:
    • Abilitazione del supporto CDN.
    • Installazione di plugin aggiuntivi.
    • Impostazione delle configurazioni HTTPS.

Problemi comuni e soluzioni

Il file di backup non viene ripristinato

  • Verifica che le versioni di Discourse e PostgreSQL corrispondano tra il server di origine e quello di destinazione.

Impossibile accedere dopo il ripristino (con HTTPS abilitato)

  • Utilizza la console Rails per disabilitare temporaneamente force https eseguendo:
    SiteSetting.force_https = false
    
74 Mi Piace
How to migrate Discourse to new server
How to migrate my Discourse instance to a fresh new install
Move Discourse to a new server without setting up the web UI first?
Transfer from bitnami to normal discourse
Can I restore backups from older Discourse versions?
How to migrate the discourse container to another machine
Update from 2.9.0 beta2 to beta4 failed (my site is down)
Images lost when migrating to self-hosting
How to downgrade a Digital Ocean Virtual
How to backup and restore a whole /var/discourse app folder?
Exporting an AWS instance
Preserving user sessions when migrating between hosts
Postgres failing to update?
Migrate from VPS to a Dedicated
Site migration and plugins
How to migrate Discourse from one server to another with the same DNS name
Migrate a NodeBB forum with MongoDB to Discourse
Migrate a Ning forum to Discourse
Migrate a Phorum forum to Discourse
Migrate a PunBB forum to Discourse
Migrate from another forum to Discourse
Migrate a Kunena 3 forum to Discourse
Preserve user sessions when migrating to a new host
How do I move the discourse installed server to another server without loss?
Can snapshots be used when upgrading the host OS?
Unknown Primary Key
How to switch Discourse servers?
" undefined method `deprecated?' for nil:NilClass" on rebuild
How to switch Discourse servers?
Some settings aren't saving
Steps involved to downgrade from 2GB to 1GB on DO?
Moving to Another VPS Provider
Getting "permission denied" on new VPS install
How Do I transfer Discourse between servers?
Multi-instance migration failed when adding a new instance
Help Needed Migrating Discourse Forum to New Shanghai Server – db:migrate Error
Plesk server migration
Seeing "welcome to nginx" after backup restore
Issues while migrating from Kunena
Moving to New Server woes
Error: Can't notify admin while restoring backup during a migration to a fresh install
How to migrate from one Digitalocean Droplet to a another Droplet in a different Digitalocean account
How might we better structure #howto?
Trouble with postgre(maybe)
Move Digital Ocean 1-Click install to Standard supported install
Can I retain my forum content if I change its original IP?
Server upgrade from ubuntu 18 to 20
How to move Discourse to a different server when using Digital Ocean's Volumes (Block Storage)
How to migrate Discourse Forum data (Topics, Chat, and Configuration) to another server
How to clone Discourse server to a new server?
Move from standalone container to separate web and data containers
How do I move the discourse installed server to another server without loss?
Migrate a phpBB3 forum to Discourse
Migrate a vBulletin 4 forum to Discourse
Migrate from GetSatisfaction to Discourse
Migrate a NodeBB forum with Redis to Discourse
Migrate a MyBB forum to Discourse