Issues with Discourse 3.5.0.beta2-dev - SMTP and Background Jobs

I’m continuing to have difficulties installing Discourse. Here’s another report put together by ChatGPT. I believe that it accurately represents my experience.

Report: Issues with Discourse Installation & Missing Sidekiq Service

Context:
We attempted a fresh installation of Discourse on a Vultr instance, intending to set up a stable and working deployment. However, we encountered significant issues, particularly with missing services such as Sidekiq, which prevented email delivery and background job processing.


Summary of Issues Encountered

  1. Unexpected Version Installed
  • Instead of the expected v3.4.0.beta4-dev, the installation defaulted to tests-passed, pulling a potentially unstable version.
  • The VERSION file was missing, making it unclear what exact version was installed.
  1. Sidekiq Service Missing
  • The /etc/service/sidekiq directory was absent inside the Discourse container.
  • This prevented all background jobs (emails, notifications, scheduled tasks) from running.
  1. Discourse Git Repository Issues
  • Running git rev-parse --abbrev-ref HEAD inside the container returned tests-passed, confirming that an unintended version was installed.
  • Git threw a “detected dubious ownership” error, requiring manual intervention (git config --global --add safe.directory /var/www/discourse).
  1. Potential Dependency Issues
  • Even if an older version of Discourse is checked out, there is concern that newer dependencies (Ruby, Redis, Sidekiq) may be pulled during installation, potentially causing compatibility issues.
  • If Discourse dependencies are not pinned correctly, the installation may behave inconsistently across environments.
  1. SSL Certificate Rate Limiting
  • An attempt to obtain a new Let’s Encrypt SSL certificate failed due to the rate limit being exceeded.
  • This caused Nginx to fail to start, as it could not load the expected certificate file.

Planned Next Steps

  1. Perform a Full Wipe & Reinstall
  • Remove /var/discourse entirely and re-clone the repository.
  • Manually check out a stable version (e.g., v3.4.1) before running the installation.
  • Use ./discourse-setup instead of relying on defaults to ensure correct parameters.
  1. Ensure Sidekiq is Installed
  • Before rebuilding, verify that the sidekiq service is correctly included in the build process.
  • If Sidekiq is missing after the rebuild, manually check its installation via bundle list | grep sidekiq.
  1. Pin Dependencies to Stable Versions
  • Avoid dependency-related issues by explicitly using a known-stable Discourse Docker image (e.g., discourse/discourse:2.0.20240101).
  • Lock gem versions inside the container (bundle install --deployment --without test development).
  1. Reattempt SSL Certificate Issuance
  • Wait for the Let’s Encrypt rate limit reset and retry SSL certificate generation.
  • If issues persist, consider using a self-signed certificate temporarily for troubleshooting.

Request for Feedback

Given these challenges, we would appreciate input from the Discourse team and community regarding:

  • Sidekiq missing from /etc/service/ in a fresh install – Has anyone else encountered this issue?
  • Best practices for ensuring dependency stability – Is there a recommended way to pin dependency versions for Discourse installations?
  • Potential issues with tests-passed being installed by default – Could there be an issue with how versions are being retrieved?

Any insights would be helpful before we proceed with the reinstall. Thanks in advance!