sqlinsight-pro/deploy/forum/app.yml
Søren Eggert Lundsteen Olsen c520919a76
Some checks are pending
CI / Integration (mcr.microsoft.com/mssql/server:2017-latest) (push) Blocked by required conditions
CI / Integration (mcr.microsoft.com/mssql/server:2019-latest) (push) Blocked by required conditions
CI / Integration (mcr.microsoft.com/mssql/server:2022-latest) (push) Blocked by required conditions
CI / Integration (mcr.microsoft.com/mssql/server:2025-latest) (push) Blocked by required conditions
CI / Build og unit tests (push) Successful in 1m10s
CI / MSI-installer (push) Successful in 42s
forum: authenticate to SMTP with LOGIN
Discourse uses AUTH PLAIN by default. Microsoft 365 only offers LOGIN and
XOAUTH2 and rejects PLAIN with "504 5.7.4 Unrecognized authentication
type", so no sign-up mail was sent.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-30 09:28:07 +02:00

80 lines
3 KiB
YAML

## SQLInsight Pro community forum (forum.sqlinsight.seosoft.dk): Discourse with the official discourse_docker launcher.
## See docs/community.md.
##
## This is a template: the double-braced names are filled in by render.py from environment variables (Forgejo secrets in
## .forgejo/workflows/deploy-forum.yml, or exported by hand before deploy/forum/install.sh). Nothing secret is committed.
##
## The forum runs behind SEOSoft's reverse proxy, which terminates TLS (like the hub). The proxy must send
## Host, X-Forwarded-For and X-Forwarded-Proto: https, and allow WebSocket/long polling (/message-bus/).
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
- "templates/web.ratelimited.template.yml"
## Only on the DMZ address, where the reverse proxy reaches it.
expose:
- "{{FORUM_BIND}}:{{FORUM_PORT}}:80"
params:
## Danish stemming for search.
db_default_text_search_config: "pg_catalog.danish"
## About 25 % of the memory Discourse may use.
db_shared_buffers: "{{FORUM_DB_SHARED_BUFFERS}}"
env:
LC_ALL: en_US.UTF-8
LANG: en_US.UTF-8
LANGUAGE: en_US.UTF-8
DISCOURSE_DEFAULT_LOCALE: da
## About 2 per CPU core.
UNICORN_WORKERS: {{FORUM_WORKERS}}
DISCOURSE_HOSTNAME: '{{FORUM_HOSTNAME}}'
## TLS is terminated by the reverse proxy; all links must still be https.
DISCOURSE_FORCE_HTTPS: true
## Who becomes administrator when signing up with these addresses (comma separated).
DISCOURSE_DEVELOPER_EMAILS: '{{FORUM_ADMIN_EMAIL}}'
## Mail server. Discourse cannot work without it (sign-up, notifications, password reset).
DISCOURSE_SMTP_ADDRESS: '{{FORUM_SMTP_ADDRESS}}'
DISCOURSE_SMTP_PORT: {{FORUM_SMTP_PORT}}
DISCOURSE_SMTP_USER_NAME: '{{FORUM_SMTP_USER}}'
DISCOURSE_SMTP_PASSWORD: '{{FORUM_SMTP_PASSWORD}}'
DISCOURSE_SMTP_ENABLE_START_TLS: true
## Discourse defaults to AUTH PLAIN; Microsoft 365 (smtp.office365.com) only offers LOGIN and XOAUTH2
## and answers PLAIN with "504 5.7.4 Unrecognized authentication type". LOGIN works on other servers too.
DISCOURSE_SMTP_AUTHENTICATION: login
DISCOURSE_NOTIFICATION_EMAIL: '{{FORUM_NOTIFICATION_EMAIL}}'
volumes:
- volume:
host: /var/discourse/shared/standalone
guest: /shared
- volume:
host: /var/discourse/shared/standalone/log/var-log
guest: /var/log
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
## Upgrades from the admin page.
- git clone https://github.com/discourse/docker_manager.git
run:
- exec: echo "Beginning of custom commands"
## Real client addresses from the reverse proxy. Without this every visitor looks like the proxy, and
## web.ratelimited would throttle them all together.
- replace:
filename: "/etc/nginx/conf.d/discourse.conf"
from: /server \{/
to: |
server {
set_real_ip_from {{KNOWN_PROXY}};
real_ip_header X-Forwarded-For;
real_ip_recursive on;
- exec: echo "End of custom commands"