From d23274d7d474c225aed0f8e99426d24f3484675b Mon Sep 17 00:00:00 2001 From: Arlement <45526481+MagiqueDeveloper@users.noreply.github.com> Date: Tue, 26 May 2026 11:36:15 +0800 Subject: [PATCH 1/4] refactor(docker-compose): update PostgreSQL and Redis images, adjust environment variables --- blueprints/discourse/docker-compose.yml | 81 +++++++++---------------- blueprints/discourse/template.toml | 4 +- 2 files changed, 31 insertions(+), 54 deletions(-) diff --git a/blueprints/discourse/docker-compose.yml b/blueprints/discourse/docker-compose.yml index caafab5bb..ecb28a136 100644 --- a/blueprints/discourse/docker-compose.yml +++ b/blueprints/discourse/docker-compose.yml @@ -1,29 +1,24 @@ -version: '3.7' - services: discourse-db: - image: docker.io/bitnami/postgresql:17 - + image: pgvector/pgvector:pg16 volumes: - - discourse-postgresql-data:/bitnami/postgresql + - discourse-postgresql-data:/var/lib/postgresql/data environment: - POSTGRESQL_USERNAME: bn_discourse - POSTGRESQL_PASSWORD: ${POSTGRES_PASSWORD} - POSTGRESQL_DATABASE: bitnami_discourse + POSTGRES_USER: discourse + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} + POSTGRES_DB: discourse healthcheck: - test: ["CMD-SHELL", "pg_isready -U bn_discourse -d bitnami_discourse"] + test: ["CMD-SHELL", "pg_isready -U discourse -d discourse"] interval: 10s timeout: 5s retries: 5 restart: unless-stopped discourse-redis: - image: docker.io/bitnami/redis:7.4 - + image: redis:7-alpine volumes: - - discourse-redis-data:/bitnami/redis - environment: - REDIS_PASSWORD: ${REDIS_PASSWORD} + - discourse-redis-data:/data + command: redis-server --requirepass ${REDIS_PASSWORD} healthcheck: test: ["CMD", "redis-cli", "-a", "${REDIS_PASSWORD}", "ping"] interval: 10s @@ -32,59 +27,39 @@ services: restart: unless-stopped discourse-app: - image: docker.io/bitnamilegacy/discourse:3.5.0 - + image: discourse/discourse:2026.1.4 volumes: - - discourse-data:/bitnami/discourse + - discourse-data:/shared depends_on: discourse-db: condition: service_healthy discourse-redis: condition: service_healthy environment: - DISCOURSE_HOST: ${DISCOURSE_HOST} - DISCOURSE_DATABASE_HOST: discourse-db - DISCOURSE_DATABASE_PORT_NUMBER: 5432 - DISCOURSE_DATABASE_USER: bn_discourse - DISCOURSE_DATABASE_PASSWORD: ${POSTGRES_PASSWORD} - DISCOURSE_DATABASE_NAME: bitnami_discourse - DISCOURSE_REDIS_HOST: discourse-redis - DISCOURSE_REDIS_PORT_NUMBER: 6379 - DISCOURSE_REDIS_PASSWORD: ${REDIS_PASSWORD} - # Optional: Configure SMTP for email delivery - # DISCOURSE_SMTP_HOST: ${SMTP_HOST} - # DISCOURSE_SMTP_PORT: ${SMTP_PORT} - # DISCOURSE_SMTP_USER: ${SMTP_USER} - # DISCOURSE_SMTP_PASSWORD: ${SMTP_PASSWORD} - restart: unless-stopped - - discourse-sidekiq: - image: docker.io/bitnamilegacy/discourse:3.5.0 - - volumes: - - discourse-sidekiq-data:/bitnami/discourse - depends_on: - - discourse-app - command: /opt/bitnami/scripts/discourse-sidekiq/run.sh - environment: - DISCOURSE_HOST: ${DISCOURSE_HOST} - DISCOURSE_DATABASE_HOST: discourse-db - DISCOURSE_DATABASE_PORT_NUMBER: 5432 - DISCOURSE_DATABASE_USER: bn_discourse - DISCOURSE_DATABASE_PASSWORD: ${POSTGRES_PASSWORD} - DISCOURSE_DATABASE_NAME: bitnami_discourse + DISCOURSE_HOSTNAME: ${DISCOURSE_HOST} + DISCOURSE_DB_HOST: discourse-db + DISCOURSE_DB_PORT: 5432 + DISCOURSE_DB_USERNAME: discourse + DISCOURSE_DB_PASSWORD: ${POSTGRES_PASSWORD} + DISCOURSE_DB_NAME: discourse DISCOURSE_REDIS_HOST: discourse-redis - DISCOURSE_REDIS_PORT_NUMBER: 6379 + DISCOURSE_REDIS_PORT: 6379 DISCOURSE_REDIS_PASSWORD: ${REDIS_PASSWORD} - # Optional: Configure SMTP for email delivery - # 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 + # DISCOURSE_SMTP_ADDRESS: ${SMTP_HOST} # DISCOURSE_SMTP_PORT: ${SMTP_PORT} - # DISCOURSE_SMTP_USER: ${SMTP_USER} + # DISCOURSE_SMTP_USER_NAME: ${SMTP_USER} # DISCOURSE_SMTP_PASSWORD: ${SMTP_PASSWORD} + # DISCOURSE_SMTP_ENABLE_START_TLS: "true" + # DISCOURSE_NOTIFICATION_EMAIL: [email protected] + # DISCOURSE_DEVELOPER_EMAILS: [email protected] + ports: + - 3000 restart: unless-stopped volumes: discourse-postgresql-data: discourse-redis-data: discourse-data: - discourse-sidekiq-data: \ No newline at end of file diff --git a/blueprints/discourse/template.toml b/blueprints/discourse/template.toml index c02aa2c72..1be09ffb3 100644 --- a/blueprints/discourse/template.toml +++ b/blueprints/discourse/template.toml @@ -1,11 +1,13 @@ [variables] main_domain = "${domain}" +admin_email = "${email}" postgres_password = "${password}" redis_password = "${password}" [config] env = [ "DISCOURSE_HOST=${main_domain}", + "DISCOURSE_ADMIN_EMAIL=${admin_email}", "POSTGRES_PASSWORD=${postgres_password}", "REDIS_PASSWORD=${redis_password}", ] @@ -14,4 +16,4 @@ mounts = [] [[config.domains]] serviceName = "discourse-app" port = 3_000 -host = "${main_domain}" +host = "${main_domain}" \ No newline at end of file From a80d048e7525608493afb501e58e5d586f992212 Mon Sep 17 00:00:00 2001 From: Arlement <45526481+MagiqueDeveloper@users.noreply.github.com> Date: Tue, 26 May 2026 11:55:39 +0800 Subject: [PATCH 2/4] chore(meta.json): update Discourse version to 2026.1.4 --- meta.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta.json b/meta.json index 8be7825d7..1da9c8261 100644 --- a/meta.json +++ b/meta.json @@ -1785,7 +1785,7 @@ { "id": "discourse", "name": "Discourse", - "version": "3.5.0", + "version": "2026.1.4", "description": "Discourse is a modern forum software for your community. Use it as a mailing list, discussion forum, or long-form chat room.", "logo": "discourse.svg", "links": { From dbc2e4342628a259f2f233bdf31a671d65b2a595 Mon Sep 17 00:00:00 2001 From: Arlement <45526481+MagiqueDeveloper@users.noreply.github.com> Date: Tue, 26 May 2026 12:15:18 +0800 Subject: [PATCH 3/4] chore(docker-compose): comment out DISCOURSE_FORCE_HTTPS for production --- blueprints/discourse/docker-compose.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/blueprints/discourse/docker-compose.yml b/blueprints/discourse/docker-compose.yml index ecb28a136..25e47eb90 100644 --- a/blueprints/discourse/docker-compose.yml +++ b/blueprints/discourse/docker-compose.yml @@ -47,6 +47,8 @@ services: DISCOURSE_REDIS_PASSWORD: ${REDIS_PASSWORD} DISCOURSE_DEVELOPER_EMAILS: ${DISCOURSE_ADMIN_EMAIL} UNICORN_BIND_ALL: "true" + # Required for production + # DISCOURSE_FORCE_HTTPS: "true" # Required for email delivery - Discourse will not function correctly without SMTP # DISCOURSE_SMTP_ADDRESS: ${SMTP_HOST} # DISCOURSE_SMTP_PORT: ${SMTP_PORT} From d112470138274e3b4b89c00117ecf1fa0e00e739 Mon Sep 17 00:00:00 2001 From: Arlement <45526481+MagiqueDeveloper@users.noreply.github.com> Date: Tue, 26 May 2026 12:21:50 +0800 Subject: [PATCH 4/4] fix(docker-compose): update Discourse app port to 80 for production --- blueprints/discourse/docker-compose.yml | 5 +---- blueprints/discourse/template.toml | 2 +- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/blueprints/discourse/docker-compose.yml b/blueprints/discourse/docker-compose.yml index 25e47eb90..d0353e8af 100644 --- a/blueprints/discourse/docker-compose.yml +++ b/blueprints/discourse/docker-compose.yml @@ -46,9 +46,6 @@ services: DISCOURSE_REDIS_PORT: 6379 DISCOURSE_REDIS_PASSWORD: ${REDIS_PASSWORD} DISCOURSE_DEVELOPER_EMAILS: ${DISCOURSE_ADMIN_EMAIL} - UNICORN_BIND_ALL: "true" - # Required for production - # DISCOURSE_FORCE_HTTPS: "true" # Required for email delivery - Discourse will not function correctly without SMTP # DISCOURSE_SMTP_ADDRESS: ${SMTP_HOST} # DISCOURSE_SMTP_PORT: ${SMTP_PORT} @@ -58,7 +55,7 @@ services: # DISCOURSE_NOTIFICATION_EMAIL: [email protected] # DISCOURSE_DEVELOPER_EMAILS: [email protected] ports: - - 3000 + - 80 restart: unless-stopped volumes: diff --git a/blueprints/discourse/template.toml b/blueprints/discourse/template.toml index 1be09ffb3..10358839b 100644 --- a/blueprints/discourse/template.toml +++ b/blueprints/discourse/template.toml @@ -15,5 +15,5 @@ mounts = [] [[config.domains]] serviceName = "discourse-app" -port = 3_000 +port = 80 host = "${main_domain}" \ No newline at end of file