Switch the discourse app from the paywalled bitnamilegacy image to the official discourse/discourse (experimental upstream). Behind Traefik via an install-ssl override (HTTP-only on :80, no built-in Let's Encrypt); sidekiq is internal so its service is dropped; DB reused as-is; uploads migrate from the legacy bitnami volume via an idempotent, non-destructive runit hook. Verified on cctest: fresh install + upgrade-from-bitnami-pg17 + upgrade-from-bitnami-pg13 (incl. 13→17) all serve with data intact. Hold prod until upstream drops the experimental label.
Switch the discourse app from the paywalled `bitnamilegacy` image to the official `discourse/discourse` (experimental upstream). Behind Traefik via an `install-ssl` override (HTTP-only on :80, no built-in Let's Encrypt); sidekiq is internal so its service is dropped; DB reused as-is; uploads migrate from the legacy bitnami volume via an idempotent, non-destructive runit hook. Verified on cctest: fresh install + upgrade-from-bitnami-pg17 + upgrade-from-bitnami-pg13 (incl. 13→17) all serve with data intact. Hold prod until upstream drops the experimental label.
Replaces the paywalled bitnamilegacy app with the official discourse/discourse
image behind Traefik (HTTP-only via an install-ssl override; sidekiq is internal
so its service is dropped). DB is reused as-is; uploads migrate from a legacy
bitnami volume via an idempotent, non-destructive runit hook. db keeps
pgvector/pgvector:pg17 with the install-user-aware pg_upgrade entrypoint.
Verified on cctest: fresh install, upgrade-from-bitnami-pg17, and
upgrade-from-bitnami-pg13 (incl. 13->17) all serve with data intact.
Upstream marks discourse/discourse experimental; hold prod cutover.
Recipe 0.8.1+3.5.0 -> 1.0.0+3.5.3 (major: new image, env/volume/port changes).
The official-image migration removed the separate sidekiq service from
compose.yml (sidekiq now runs inside the official discourse app image). The
compose.smtpauth.yml overlay still declared a sidekiq: block (smtp env +
smtp_password secret, no image), leaving a dangling image-less service in the
smtpauth-merged compose -> abra recipe lint R011 fail (invalid reference
format) and a broken SMTP-auth deploy. The app: override already carries the
DISCOURSE_SMTP_PASSWORD_FILE env + smtp_password secret (and compose.yml app
has all DISCOURSE_SMTP_* vars), so the sidekiq override is redundant. Drop it.
The official discourse/discourse image has no *_FILE support, so
DISCOURSE_SMTP_PASSWORD_FILE was silently ignored and SMTP auth booted
without a password. Read the secret in the wrapper entrypoint and export
DISCOURSE_SMTP_PASSWORD, mirroring the DB password handling. Bump
APP_ENTRYPOINT_VERSION so the new entrypoint config redeploys.
Add release notes for the bitnami->official SMTP env var renames.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
discourse core does not use the vector extension, so the pgvector image is
unnecessary. Switch db to pgautoupgrade/pgautoupgrade:17-trixie, which handles
major-version upgrades (old binaries, initdb, pg_upgrade) itself.
pgautoupgrade assumes the old cluster's install user (oid 10) equals
POSTGRES_USER and fails pg_upgrade otherwise (issue #115). A thin wrapper
entrypoint detects the old install user when an upgrade is pending and exports
POSTGRES_USER so pgautoupgrade matches it. Replaces the 64-line hand-rolled
pg_upgrade entrypoint.
Overriding entrypoint in compose clears the image default CMD, leaving
pgautoupgrade with no $1=postgres, so its version logic ran with unset
PGTARGET_MAJOR and aborted. Restore command: postgres.
Closing and recreating as a clean PR (this branch went through a pgautoupgrade detour that was reverted; see new PR). Final state mirrors coop-cloud/discourse#16 at 0c4539b.
Closing and recreating as a clean PR (this branch went through a pgautoupgrade detour that was reverted; see new PR). Final state mirrors coop-cloud/discourse#16 at 0c4539b.
Pull request closed
Please reopen this pull request to perform a merge.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Switch the discourse app from the paywalled
bitnamilegacyimage to the officialdiscourse/discourse(experimental upstream). Behind Traefik via aninstall-ssloverride (HTTP-only on :80, no built-in Let's Encrypt); sidekiq is internal so its service is dropped; DB reused as-is; uploads migrate from the legacy bitnami volume via an idempotent, non-destructive runit hook. Verified on cctest: fresh install + upgrade-from-bitnami-pg17 + upgrade-from-bitnami-pg13 (incl. 13→17) all serve with data intact. Hold prod until upstream drops the experimental label.!testme
🌻 cc-ci —
discourse@ae5a8180❌ failurefull logs · dashboard
!testme
🌻 cc-ci —
discourse@ae5a8180✅ passedfull logs · dashboard
ae5a81802bto53ba0910a6!testme
🌻 cc-ci —
discourse@53ba0910✅ passedfull logs · dashboard
a96ec03ddftoa09477f40da09477f40dto0c4539b7ad36a88fe5d2to0c4539b7adClosing and recreating as a clean PR (this branch went through a pgautoupgrade detour that was reverted; see new PR). Final state mirrors coop-cloud/discourse#16 at
0c4539b.Pull request closed