Spostamento dell'istanza di discourse su un nuovo server

Prima di chiedere, hai cercato? Premi :magnifying_glass_tilted_left: in alto a destra per cercare

Ciao,

Innanzitutto, voglio ringraziarti per qualsiasi supporto tu possa offrire. Detto questo, vorrei discutere del mio problema e poi dei miei obiettivi per la mia istanza Discourse self-hosted.

Problema

Attualmente utilizzo Hetzner come server che ospita un’istanza Discourse. Ho allegato volumi per Uploads e Backups. Gli attuali container e immagini Docker, così come app.yml e altro, sono ospitati sul server stesso sotto /var/discourse.

Ho questo server da 3-4+ anni e durante questo periodo ho sempre riscontrato problemi di spazio sul server stesso (non sui volumi). Ogni volta che volevo ricostruire l’app o riavviarla, riscontravo problemi di spazio poiché installava le immagini e i container Docker sul server locale anziché su un volume. Dovevo costantemente rimuovere Docker e qualsiasi immagine/container ed eseguire una reinstallazione pulita per poter ricostruire. Credo anche che i dati SQL siano collegati al server locale anziché a un volume.

Obiettivi

Non sono sicuro di quale sia la soluzione migliore per me in futuro. Si tratta di spostare cartelle o file specifici su un nuovo volume per il database Postgres e le immagini Docker, e in tal caso, gradirei supporto su come farlo? Oppure iniziare da zero con un server pulito, creando un backup del server e ripristinandolo su un nuovo server con tutti i volumi nelle posizioni correttamente configurate?


Detto tutto questo, gradirei supporto sulla configurazione di app.yml per avere correttamente i volumi per tutto ciò che occupa spazio, in modo da poter scalare individualmente quando backup, upload, db o immagini Docker, ad esempio, ne avranno bisogno.

Posso fornire il mio file app.yml più tardi oggi, poiché al momento sono al lavoro e voglio essere un passo avanti.

Eseguo l’hosting di Discourse su AWS e finora ho avuto molto successo nel mantenere /var/discourse su un proprio volume EBS montabile e nell’associare quel volume a diverse istanze EC2 man mano che ne ho avuto bisogno per migrare. Ho persino modificato completamente l’architettura da x64 ad ARM (sono passato da un t3a.large a un r7g.large di istanze EC2) e, dopo aver rimontato il volume /var/discourse, sono tornato online dopo un semplice launcher rebuild app, anche con il cambio di architettura.

In sintesi, se il tuo /var/discourse è archiviato in un volume montabile, allora hai l’intero stato del tuo forum in uno stato essenzialmente “swing-mountable”. Finché puoi configurare un host e installare Docker su di esso, puoi montare /var/discourse su di esso, eseguire un launcher rebuild app e essere operativo. (Supponendo che hostname e altre cose specificate in app.yml rimangano costanti tra gli host.)

Potresti fornire un esempio di app.yml per questa configurazione? Inoltre, è sufficiente spostare il contenuto da “/var/discourse” a un volume diverso o devo clonare il repository nel nuovo volume?


E per quanto riguarda i file del database?

Ecco una copia sanificata del mio attuale file di lavoro app.yml

E tutti i contenuti del DB sono memorizzati in /var/discourse? Quindi se sposto tutti i contenuti di /var/discourse in un volume montabile, continuerĂ  a utilizzare tutti i dati esistenti?

Sto usando l’installazione standard self-hosted a container singolo, quindi è tutto configurato secondo le impostazioni predefinite!

Domanda: anche se ho spostato la cartella /discourse su un volume montabile, ho ancora problemi con Docker. I container e le immagini vengono ancora eseguiti sull’unità locale invece che su un volume. Avete qualche idea su come risolvere questo problema?