2 - "templates/web.template.yml"
3 - "templates/web.ipv6.template.yml"
4 - "templates/web.ssl.template.yml"
6 ## which TCP/IP ports should this container expose?
7 ## If you want Discourse to share a port with another webserver like Apache or nginx,
8 ## see https://meta.discourse.org/t/17247 for details
13 # Use 'links' key to link containers together, aka use Docker --link flag.
19 # any extra arguments for Docker?
22 # Latest Version v3.2.2
30 DISCOURSE_FORCE_HTTPS: true
32 ## How many concurrent web requests are supported? Depends on memory and CPU cores.
33 ## will be set automatically by bootstrap based on detected CPUs, or you can override
34 UNICORN_WORKERS: <%= node.cpu_cores %>
36 ## TODO: The domain name this Discourse instance will respond to
37 DISCOURSE_HOSTNAME: community.openstreetmap.org
38 DISCOURSE_CDN_URL: https://community-cdn.openstreetmap.org
40 ## Uncomment if you want the container to be started with the same
41 ## hostname (-h option) as specified above (default "$hostname-$config")
42 #DOCKER_USE_HOSTNAME: true
44 ## TODO: List of comma delimited emails that will be made admin and developer
45 ## on initial signup example 'user1@example.com,user2@example.com'
46 DISCOURSE_DEVELOPER_EMAILS: 'operations@openstreetmap.org'
48 DISCOURSE_SMTP_ADDRESS: <%= node[:exim][:smarthost_via].split(":", 2)[0] %>
49 DISCOURSE_SMTP_PORT: <%= node[:exim][:smarthost_via].split(":", 2)[1] || "25" %>
50 DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none
51 DISCOURSE_SMTP_USER_NAME:
52 DISCOURSE_SMTP_PASSWORD:
53 DISCOURSE_SMTP_DOMAIN: community.openstreetmap.org
54 DISCOURSE_SMTP_OPEN_TIMEOUT: 30
55 DISCOURSE_SMTP_READ_TIMEOUT: 30
56 DISCOURSE_NOTIFICATION_EMAIL: community@noreply.openstreetmap.org
58 ## TODO: configure connectivity to the databases
59 DISCOURSE_DB_SOCKET: ''
60 #DISCOURSE_DB_USERNAME: discourse
61 DISCOURSE_DB_PASSWORD: '<%= @passwords["database"] %>'
62 DISCOURSE_DB_HOST: data
63 DISCOURSE_REDIS_HOST: data
65 ## The maxmind geolocation IP address key for IP address lookup
66 ## see https://meta.discourse.org/t/-/137387/23 for details
67 <% if @license_keys -%>
68 DISCOURSE_MAXMIND_ACCOUNT_ID: '<%= node[:geoipupdate][:account] %>'
69 DISCOURSE_MAXMIND_LICENSE_KEY: '<%= @license_keys[node[:geoipupdate][:account]] %>'
72 # Allow list for prometheus metric collection
73 DISCOURSE_PROMETHEUS_TRUSTED_IP_ALLOWLIST_REGEX: '^<%= @prometheus_servers.map { |a| Regexp.escape(a) }.join("|") %>$'
75 # Increase base SIDEKIQ memory limit to 1GB
76 UNICORN_SIDEKIQ_MAX_RSS: 1000
80 host: /srv/community.openstreetmap.org/shared/web-only
83 host: /srv/community.openstreetmap.org/shared/web-only/log/var-log
86 host: /etc/ssl/certs/community.openstreetmap.org.pem
87 guest: /shared/ssl/ssl.crt
89 host: /etc/ssl/private/community.openstreetmap.org.key
90 guest: /shared/ssl/ssl.key
92 host: /etc/ssl/certs/dhparam.pem
93 guest: /shared/ssl/dhparam.pem
95 host: /srv/community.openstreetmap.org/files/update-feeds.atom
96 guest: /shared/feeds/update-feeds.atom
99 ## see https://meta.discourse.org/t/19157 for details
105 - sudo -H -E -u discourse git clone --depth 1 --branch main https://github.com/discourse/discourse-oauth2-basic.git
106 - sudo -H -E -u discourse git clone --depth 1 --branch main https://github.com/discourse/discourse-solved.git
107 - sudo -H -E -u discourse git clone --depth 1 --branch main https://github.com/discourse/discourse-reactions.git
108 - sudo -H -E -u discourse git clone --depth 1 --branch main https://github.com/discourse/discourse-prometheus.git
109 - sudo -H -E -u discourse git clone --depth 1 --branch main https://github.com/discourse/discourse-translator.git
110 - sudo -H -E -u discourse git clone --depth 1 --branch main https://github.com/discourse/discourse-saved-searches.git
111 - sudo -H -E -u discourse git clone --depth 1 --branch main https://github.com/discourse/discourse-post-voting.git
113 # Needs to be copied in else builtin git cleanup fails
116 - sudo -H -E -u discourse cp /shared/feeds/update-feeds.atom public/update-feeds.atom
119 filename: "/etc/nginx/conf.d/discourse.conf"
124 rewrite ^/\.well-known/acme-challenge/(.*)$ http://acme.openstreetmap.org/.well-known/acme-challenge/$1 permanent;
127 filename: "/etc/nginx/conf.d/discourse.conf"
130 add_header Strict-Transport-Security 'max-age=63072000' always;
132 resolver <%= node[:networking][:nameservers].join(" ") %>;
134 ssl_dhparam /shared/ssl/dhparam.pem;