fix(discourse): replace deprecated Bitnami images with official alternatives#910
fix(discourse): replace deprecated Bitnami images with official alternatives#910MagiqueDeveloper wants to merge 4 commits into
Conversation
…environment variables
built with Refined Cloudflare Pages Action⚡ Cloudflare Pages Deployment
|
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Updates the Discourse blueprint to support configuring an admin email and switches the Docker Compose stack from Bitnami images/config to upstream-style Discourse/Postgres/Redis images.
Changes:
- Add
admin_emailvariable and propagate it into runtime env asDISCOURSE_ADMIN_EMAIL. - Replace Bitnami Postgres/Redis/Discourse images and update volume paths + env var names accordingly.
- Remove the separate Sidekiq service and adjust container settings (ports, Redis auth, Discourse env).
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| blueprints/discourse/template.toml | Adds admin email variable and injects it into the blueprint env; minor formatting tweak. |
| blueprints/discourse/docker-compose.yml | Migrates the Compose stack to different images/config and updates env/volumes/ports accordingly. |
| # DISCOURSE_NOTIFICATION_EMAIL: [email protected] | ||
| # DISCOURSE_DEVELOPER_EMAILS: [email protected] | ||
| ports: | ||
| - 3000 |
| environment: | ||
| REDIS_PASSWORD: ${REDIS_PASSWORD} | ||
| - discourse-redis-data:/data | ||
| command: redis-server --requirepass ${REDIS_PASSWORD} |
| # DISCOURSE_SMTP_HOST: ${SMTP_HOST} | ||
| DISCOURSE_DEVELOPER_EMAILS: ${DISCOURSE_ADMIN_EMAIL} | ||
| UNICORN_BIND_ALL: "true" | ||
| # Required for email delivery - Discourse will not function correctly without SMTP |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d23274d7d4
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| discourse-app: | ||
| image: docker.io/bitnamilegacy/discourse:3.5.0 | ||
|
|
||
| image: discourse/discourse:2026.1.4 |
There was a problem hiding this comment.
Keep template metadata version aligned with image tag
Updating the Discourse image to discourse/discourse:2026.1.4 without a corresponding meta.json version update leaves the template catalog inconsistent (meta.json still reports 3.5.0). In this repo, version parity is required, and this mismatch can mislead users and automation that rely on metadata for displayed/expected template versions.
Useful? React with 👍 / 👎.
| ports: | ||
| - 3000 |
There was a problem hiding this comment.
Remove direct port publishing from Dokploy blueprint
This adds a ports section to the app service, which conflicts with the repository’s Dokploy blueprint rule to avoid published ports and rely on platform routing (config.domains + internal service port). Keeping host port publishing here can unintentionally expose the container outside Dokploy’s managed ingress path and diverge from expected deployment behavior.
Useful? React with 👍 / 👎.
| # DISCOURSE_NOTIFICATION_EMAIL: [email protected] | ||
| # DISCOURSE_DEVELOPER_EMAILS: [email protected] | ||
| ports: | ||
| - 3000 |
| environment: | ||
| REDIS_PASSWORD: ${REDIS_PASSWORD} | ||
| - discourse-redis-data:/data | ||
| command: redis-server --requirepass ${REDIS_PASSWORD} |
| "id": "discourse", | ||
| "name": "Discourse", | ||
| "version": "3.5.0", | ||
| "version": "2026.1.4", |
| UNICORN_BIND_ALL: "true" | ||
| # Required for production | ||
| # DISCOURSE_FORCE_HTTPS: "true" | ||
| # Required for email delivery - Discourse will not function correctly without SMTP |
|
Had fixed the rendering issue in another commit. The reason was an issue with port 3000, but Discourse also hosts the production version on port 80. Instead of routing from port 3000 we switched to port 80 which had resolved all issues and now working as intended. |
What is this PR about?
Fixes the Discourse template which was broken due to Bitnami discontinuing their legacy images (
bitnami/discourse,bitnami/postgresql,bitnami/redis,bitnamilegacy).Changes:
bitnamilegacy/discourse:3.5.0withdiscourse/discourse:2026.1.4(official ESR image)bitnami/postgresql:17withpgvector/pgvector:pg16(required for Discourse's vector extension)bitnami/redis:7.4withredis:7-alpineDISCOURSE_DATABASE_*,POSTGRESQL_*) to standard ones (DISCOURSE_DB_*,POSTGRES_*)UNICORN_BIND_ALL: "true"to allow the proxy to reach the web processDISCOURSE_DEVELOPER_EMAILSvariable totemplate.tomlso admin email is set at deploy timeChecklist
Before submitting this PR, please make sure that:
Issues related (if applicable)
Closed: #502 - Fix was replacing with BitnamiLegacy images which may soon be deprecated. Replacing with official images ensures that Bitnami does not have control to pull the plug suddenly again.
Screenshots or Videos
Note: The "Tada" SVG is not showing due to it not being served on HTTPS/SSL. This is using sslip for testing. SMTP is partially required for Discourse otherwise manual admin account creation is required, and it disables a lot of features that require emails.Refer to this