Problemi con Discourse 3.5.0.beta2-dev - SMTP e lavori in background

Continuo ad avere difficoltà nell’installazione di Discourse. Ecco un altro report preparato da ChatGPT. Credo che rappresenti accuratamente la mia esperienza.


Report: Problemi con l’installazione di Discourse e servizio Sidekiq mancante

Contesto:
Abbiamo tentato un’installazione pulita di Discourse su un’istanza Vultr, con l’intenzione di impostare un deployment stabile e funzionante. Tuttavia, abbiamo riscontrato problemi significativi, in particolare con servizi mancanti come Sidekiq, che hanno impedito la consegna delle email e l’elaborazione dei job in background.


Riepilogo dei problemi riscontrati

  1. Versione inaspettata installata
    • Invece della versione attesa v3.4.0.beta4-dev, l’installazione ha utilizzato di default tests-passed, scaricando una versione potenzialmente instabile.
    • Il file VERSION era mancante, rendendo poco chiaro quale versione esatta fosse stata installata.
  2. Servizio Sidekiq mancante
    • La directory /etc/service/sidekiq era assente all’interno del container Discourse.
    • Ciò ha impedito l’esecuzione di tutti i job in background (email, notifiche, attività pianificate).
  3. Problemi con il repository Git di Discourse
    • L’esecuzione di git rev-parse --abbrev-ref HEAD all’interno del container ha restituito tests-passed, confermando che era stata installata una versione non intenzionale.
    • Git ha restituito un errore “detected dubious ownership” (proprietà dubbia rilevata), che ha richiesto un intervento manuale (git config --global --add safe.directory /var/www/discourse).
  4. Potenziali problemi di dipendenza
    • Anche se viene scaricata una versione precedente di Discourse, c’è la preoccupazione che dipendenze più recenti (Ruby, Redis, Sidekiq) possano essere scaricate durante l’installazione, causando potenziali problemi di compatibilità.
    • Se le dipendenze di Discourse non sono bloccate correttamente, l’installazione potrebbe comportarsi in modo incoerente tra diversi ambienti.
  5. Rate limiting del certificato SSL
    • Un tentativo di ottenere un nuovo certificato SSL Let’s Encrypt è fallito a causa del superamento del limite di richieste.
    • Ciò ha causato il mancato avvio di Nginx, poiché non riusciva a caricare il file del certificato previsto.

Prossimi passi pianificati

  1. Eseguire una pulizia completa e reinstallare
    • Rimuovere completamente /var/discourse e clonare nuovamente il repository.
    • Scaricare manualmente una versione stabile (ad esempio, v3.4.1) prima di eseguire l’installazione.
    • Utilizzare ./discourse-setup invece di affidarsi ai valori predefiniti per garantire parametri corretti.
  2. Assicurarsi che Sidekiq sia installato
    • Prima della ricostruzione, verificare che il servizio sidekiq sia correttamente incluso nel processo di build.
    • Se Sidekiq è mancante dopo la ricostruzione, verificare manualmente la sua installazione tramite bundle list | grep sidekiq.
  3. Bloccare le dipendenze a versioni stabili
    • Evitare problemi relativi alle dipendenze utilizzando esplicitamente un’immagine Docker di Discourse nota per essere stabile (ad esempio, discourse/discourse:2.0.20240101).
    • Bloccare le versioni delle gem all’interno del container (bundle install --deployment --without test development).
  4. Ritentare l’emissione del certificato SSL
    • Attendere il reset del limite di richieste di Let’s Encrypt e riprovare la generazione del certificato SSL.
    • Se i problemi persistono, considerare l’utilizzo temporaneo di un certificato autofirmato per la risoluzione dei problemi.

Richiesta di feedback

Considerate queste sfide, apprezzeremmo il contributo del team e della community di Discourse riguardo a:

  • Sidekiq mancante da /etc/service/ in un’installazione pulita – Qualcun altro ha riscontrato questo problema?
  • Migliori pratiche per garantire la stabilità delle dipendenze – Esiste un modo consigliato per bloccare le versioni delle dipendenze per le installazioni di Discourse?
  • Potenziali problemi con l’installazione predefinita di tests-passed – Potrebbe esserci un problema con il modo in cui vengono recuperate le versioni?

Qualsiasi intuizione sarebbe utile prima di procedere con la reinstallazione. Grazie in anticipo!