Ci sono diversi trucchi che possono aiutare quando si configura un server di staging.
Cos’è un server di staging?
Un server di staging è essenzialmente un clone di un sito di produzione. Risiede anche su un server e funziona in modo identico. Funziona all’interno di un container Docker, proprio come un normale sito Discourse.
Esiste per darti un posto dove provare cose rischiose, o per provare cose che non puoi nascondere facilmente ai tuoi utenti. È molto utile per provare annunci utilizzando Discourse Advertising Plugin (Ads), o se vuoi fare qualcosa di divertente come un’importazione o una fusione di forum.
Questo è in contrasto con un server di sviluppo, che in genere viene eseguito in un luogo facilmente accessibile (e isolato) in modo che uno sviluppatore possa armeggiare con il codice in sicurezza.
Di cosa ho bisogno?
-
Tutto ciò di cui hai bisogno per una normale installazione self-hosted
-
Se hai configurato i backup S3, la tua vita sarà molto più facile
- altrimenti avrai bisogno di un modo per spostare file di grandi dimensioni da e verso un server tramite SSH
Passaggi
Configura il tuo server come desideri
Tipicamente in un server Ubuntu virtuale ospitato su Digital Ocean, ma puoi usare quello con cui ti senti più a tuo agio.
Installa Discourse
Tramite questa guida (o forse tramite dashboard.literatecomputing.com). Consiglio di utilizzare credenziali email “spazzatura” (non hai bisogno o non vuoi che l’email funzioni).
discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub
Conferma che la tua installazione funziona:
Stabilisci un account admin (se necessario)
Configura un account admin dalla riga di comando. Questo salta la necessità di autenticarsi via email.
./launcher enter app
rake admin:create
Questo non è strettamente necessario se non per testare l’installazione, poiché puoi ripristinare dal backup dalla riga di comando.
Modifica app.yml e aggiungi alcune modifiche
-
Potresti voler fare una copia dell’app.yml originale (io la chiamo
app.vanilla.yml) a cui puoi tornare se combini qualcosa -
In fondo alla sezione
envaggiungi queste righe:## Impostazioni specifiche del server di staging DISCOURSE_AUTOMATIC_BACKUPS_ENABLED: false DISCOURSE_LOGIN_REQUIRED: true DISCOURSE_DISABLE_EMAILS: 'yes' DISCOURSE_S3_DISABLE_CLEANUP: true DISCOURSE_ALLOW_RESTORE: true -
Se hai configurato backup S3 (o simili), aggiungi anche questi (con le tue impostazioni dal sito principale)
## Configurazione S3 DISCOURSE_S3_ACCESS_KEY_ID: 'la_tua_chiave' DISCOURSE_S3_SECRET_ACCESS_KEY: 'il_tuo_segreto' DISCOURSE_BACKUP_LOCATION: 's3' DISCOURSE_S3_BACKUP_BUCKET: 'la_tua_posizione_backup' DISCOURSE_S3_REGION: 'la_tua_regione_s3' DISCOURSE_S3_DISABLE_CLEANUP: truee se stai anche facendo upload S3:
DISCOURSE_ENABLE_S3_UPLOADS: true DISCOURSE_S3_UPLOAD_BUCKET: 'la_tua_posizione_upload' -
Potresti voler aggiungere gli stessi plugin che hai sul tuo sito di produzione mentre ci sei.
-
Esegui una ricostruzione
./launcher rebuild app
Gestione del server di staging
Ora hai un server di staging connesso ai tuoi backup S3 (ma non li sovrascriverà), facile da ripristinare e che non può inviare email a nessuno in nessuna circostanza. Perfetto!
Puoi ripristinare un nuovo backup sul server di staging e andare alla grande. Se non ti piace quello che hai, semplicemente ripristinalo di nuovo.
Spegnimento o accensione
Se lasci il tuo server di staging “acceso” per periodi prolungati, rischi che venga indicizzato da Google e che i tuoi utenti vi accedano accidentalmente. Poiché le loro credenziali sono un clone del tuo sito di produzione, questo è molto possibile.
Un modo semplice per mitigare queste due cose è semplicemente spegnere Discourse:
./launcher stop app
E per riaccenderlo in modo da poterlo utilizzare:
./launcher restart app
Aggiornamenti
Dovrai assicurarti di aggiornare/ricostruire sia esso che il tuo sito di produzione contemporaneamente se vuoi garantire che le cose rimangano allineate dal punto di vista dei plugin e del codice. Lo stesso vale per le modifiche a app.yml.
Se non usi S3, dovrai spostare manualmente i backup tra i server. E sono grandi!
Popolamento di un server di test
Se vuoi un server di staging, dovresti popolarlo con i tuoi dati effettivi dal tuo forum effettivo tramite un Restore. A volte sono i tuoi dati specifici a causare il problema, e testare il tuo forum con un altro set di dati può darti un senso di falsa speranza.
Se invece quello che vuoi è un server di test per vedere com’è Discourse, potresti voler controllare le cose con alcuni dati fittizi, e se lo fai, puoi fare questo:
./launcher enter app
ALLOW_DEV_POPULATE=1 bundle install
ALLOW_DEV_POPULATE=1 rake dev:populate
Questo popolerà il tuo forum con alcuni dati fittizi in modo che tu possa vedere come appaiono le cose con qualsiasi tema e plugin tu voglia. Se non hai ancora avviato il tuo forum, questo ti darà un’idea di come potrebbero apparire le cose.
Gestione dell’autenticazione a due fattori
Mentre il nome utente/password del tuo account dal tuo sito principale dovrebbe funzionare anche nel sito di staging, non è così bello con l’autenticazione a due fattori. Se hai un problema, disabilita l’autenticazione a due fattori:
./launcher enter app
rake users:disable_2fa[<USERNAME>]


