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
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>
80 lines
3 KiB
YAML
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"
|