]> git.openstreetmap.org Git - chef.git/blobdiff - cookbooks/community/templates/default/web_only.yml.erb
community: dump discourse to v3.0.3
[chef.git] / cookbooks / community / templates / default / web_only.yml.erb
index f3f58bb6e59c369bc156e6d854d9ef68e686a3fa..c3af3eb8364b990d340bc34956ae5047430ab2a1 100644 (file)
@@ -1,6 +1,6 @@
 templates:
   - "templates/web.template.yml"
 templates:
   - "templates/web.template.yml"
-  - "templates/web.ratelimited.template.yml"
+  - "templates/web.ipv6.template.yml"
   - "templates/web.ssl.template.yml"
 
 ## which TCP/IP ports should this container expose?
   - "templates/web.ssl.template.yml"
 
 ## which TCP/IP ports should this container expose?
@@ -19,20 +19,19 @@ links:
 # any extra arguments for Docker?
 # docker_args:
 
 # any extra arguments for Docker?
 # docker_args:
 
-# Workaround bug: https://github.com/discourse/discourse_docker/pull/505
-params:
-#  version: v2.8.13 - NOT USED HERE. UPDATE THE EXEC GIT ACTIONS BELOW WITH VERSION
+# Latest Version v3.0.3
+params:
+  version: stable
 
 env:
   LC_ALL: en_US.UTF-8
   LANG: en_US.UTF-8
   LANGUAGE: en_US.UTF-8
 
 env:
   LC_ALL: en_US.UTF-8
   LANG: en_US.UTF-8
   LANGUAGE: en_US.UTF-8
-  EMBER_CLI_PROD_ASSETS: 1
   DISCOURSE_FORCE_HTTPS: true
 
   ## How many concurrent web requests are supported? Depends on memory and CPU cores.
   ## will be set automatically by bootstrap based on detected CPUs, or you can override
   DISCOURSE_FORCE_HTTPS: true
 
   ## How many concurrent web requests are supported? Depends on memory and CPU cores.
   ## will be set automatically by bootstrap based on detected CPUs, or you can override
-  UNICORN_WORKERS: <%= [2, node.dig('cpu', 'total').to_i, node.dig('cpu', 'cores').to_i].max %>
+  UNICORN_WORKERS: <%= node.cpu_cores %>
 
   ## TODO: The domain name this Discourse instance will respond to
   DISCOURSE_HOSTNAME: community.openstreetmap.org
 
   ## TODO: The domain name this Discourse instance will respond to
   DISCOURSE_HOSTNAME: community.openstreetmap.org
@@ -67,6 +66,12 @@ env:
   DISCOURSE_MAXMIND_LICENSE_KEY: '<%= @license_keys[node[:geoipupdate][:account]] %>'
 <% end -%>
 
   DISCOURSE_MAXMIND_LICENSE_KEY: '<%= @license_keys[node[:geoipupdate][:account]] %>'
 <% end -%>
 
+  # Allow list for prometheus metric collection
+  DISCOURSE_PROMETHEUS_TRUSTED_IP_ALLOWLIST_REGEX: '^<%= @prometheus_servers.map { |a| Regexp.escape(a) }.join("|") %>$'
+
+  # Increase base SIDEKIQ memory limit to 1GB
+  UNICORN_SIDEKIQ_MAX_RSS: 1000
+
 volumes:
   - volume:
       host: /srv/community.openstreetmap.org/shared/web-only
 volumes:
   - volume:
       host: /srv/community.openstreetmap.org/shared/web-only
@@ -80,6 +85,12 @@ volumes:
   - volume:
       host: /etc/ssl/private/community.openstreetmap.org.key
       guest: /shared/ssl/ssl.key
   - volume:
       host: /etc/ssl/private/community.openstreetmap.org.key
       guest: /shared/ssl/ssl.key
+  - volume:
+      host: /etc/ssl/certs/dhparam.pem
+      guest: /shared/ssl/dhparam.pem
+  - volume:
+      host: /srv/community.openstreetmap.org/files/update-feeds.atom
+      guest: /shared/feeds/update-feeds.atom
 
 ## Plugins go here
 ## see https://meta.discourse.org/t/19157 for details
 
 ## Plugins go here
 ## see https://meta.discourse.org/t/19157 for details
@@ -88,27 +99,34 @@ hooks:
     - exec:
         cd: $home/plugins
         cmd:
     - exec:
         cd: $home/plugins
         cmd:
-          - git clone --depth 1 https://github.com/discourse/discourse-oauth2-basic.git
-          - git clone --depth 1 https://github.com/discourse/discourse-solved.git
-          - git clone --depth 1 https://github.com/discourse/discourse-canned-replies.git
-          - git clone --depth 1 https://github.com/discourse/discourse-reactions.git
-          - git clone --depth 1 https://github.com/discourse/discourse-prometheus.git
-          - git clone --depth 1 https://github.com/discourse/discourse-translator.git
+          - sudo -H -E -u discourse git clone --depth 1 https://github.com/discourse/discourse-oauth2-basic.git
+          - sudo -H -E -u discourse git clone --depth 1 https://github.com/discourse/discourse-solved.git
+          - sudo -H -E -u discourse git clone --depth 1 https://github.com/discourse/discourse-canned-replies.git
+          - sudo -H -E -u discourse git clone --depth 1 https://github.com/discourse/discourse-reactions.git
+          - sudo -H -E -u discourse git clone --depth 1 https://github.com/discourse/discourse-prometheus.git
+          # FIXME revert to upstream once PR has been merged: https://github.com/discourse/discourse-translator/pull/103
+          - sudo -H -E -u discourse git clone --depth 1 --branch serbian-digraphic-fix https://github.com/Firefishy/discourse-translator.git
+          - sudo -H -E -u discourse git clone --depth 1 https://github.com/discourse/discourse-saved-searches.git
     - exec:
     - exec:
+        # Needs to be copied in else builtin git cleanup fails
         cd: $home
         cmd:
         cd: $home
         cmd:
-          - git fetch --depth=1 origin tag v2.8.13 --no-tags
-          - git checkout v2.8.13
+          - sudo -H -E -u discourse cp /shared/feeds/update-feeds.atom public/update-feeds.atom
   after_ssl:
     - replace:
         filename: "/etc/nginx/conf.d/discourse.conf"
         from: /listen 80;/
         to: |
           listen 80;
   after_ssl:
     - replace:
         filename: "/etc/nginx/conf.d/discourse.conf"
         from: /listen 80;/
         to: |
           listen 80;
+          listen [::]:80;
           rewrite ^/\.well-known/acme-challenge/(.*)$ http://acme.openstreetmap.org/.well-known/acme-challenge/$1 permanent;
 
     - replace:
         filename: "/etc/nginx/conf.d/discourse.conf"
         from: /add_header.+/
         to: |
           rewrite ^/\.well-known/acme-challenge/(.*)$ http://acme.openstreetmap.org/.well-known/acme-challenge/$1 permanent;
 
     - replace:
         filename: "/etc/nginx/conf.d/discourse.conf"
         from: /add_header.+/
         to: |
-          add_header Strict-Transport-Security 'max-age=63072000';
+          add_header Strict-Transport-Security 'max-age=31536000; preload';
+          ssl_stapling on;
+          resolver <%= node[:networking][:nameservers].join(" ") %>;
+          resolver_timeout 5s;
+          ssl_dhparam /shared/ssl/dhparam.pem;