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, plus db/redis healthchecks and updated README metadata (lint R002/R007). 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).
Discourse
A platform for community discussion
- Category: Apps
- Status: 3, experimental
- Image:
discourse/discourse, 4, upstream - Healthcheck: yes
- Backups: yes
- Email: yes
- Tests: yes
- SSO: no
Note
: this recipe runs the official, experimental
discourse/discourseimage. Upstream does not yet recommend it for production — see https://meta.discourse.org/t/380646. Use with care.
Basic usage
- Set up Docker Swarm and
abra - Deploy
coop-cloud/traefik abra app new discourse --secrets(optionally with--passto save secrets inpass)abra app config YOURAPPDOMAIN— setDOMAINandDISCOURSE_DEVELOPER_EMAILSabra app deploy YOURAPPDOMAIN- Open the configured domain in your browser to finish set-up. The first account
that registers with an address listed in
DISCOURSE_DEVELOPER_EMAILSbecomes an admin.
The app serves plain HTTP on port 80; Traefik terminates TLS in front of it. The
image's built-in nginx/Let's Encrypt is disabled by the recipe (install-ssl
override) so it works behind the reverse proxy.
Add an admin user
abra app run YOURAPPDOMAIN app discourse admin create
Postgres major version upgrades
Handled automatically. The db entrypoint detects an older data directory on
deploy and runs pg_upgrade in place (it installs the old binaries, detects the
cluster's real install superuser, and upgrades). No manual dump/restore needed.
Migrating from the previous (bitnami) recipe
The official image stores uploads under /shared rather than bitnami's
/bitnami/discourse. On first boot the recipe copies uploads + backups from the
old bitnami volume (mounted read-only at /legacy) into /shared, once,
idempotently. The Postgres database is reused as-is. After a successful migration
a later recipe version will drop the transitional /legacy mount.
If you are upgrading from the bitnami recipe, also remove the now-unused sidekiq service that swarm leaves behind (sidekiq runs inside the app container now):
docker service rm YOURSTACK_sidekiq