infra/roles/discourse/tasks/main.yml

70 lines
1.8 KiB
YAML

---
- name: Install docker
package:
name: docker.io
state: present
- name: Clone the Official Discourse Docker Image
git:
repo: https://github.com/discourse/discourse_docker.git
dest: /var/discourse
- name: Setup nginx
include_role: name=nginx
vars:
nginx_domain: "{{ discourse_domain }}"
nginx_certificates: ["{{ discourse_domain }}"]
nginx_conf: |
server
{
listen [::]:80; listen 80;
server_name {{ discourse_domain }};
return 301 https://$host$request_uri;
}
server
{
listen [::]:443 ssl http2; listen 443 ssl http2;
server_name {{ discourse_domain }};
include snippets/letsencrypt-{{ discourse_domain }}.conf;
client_max_body_size 21m;
location / {
error_page 502 =502 /errorpages/discourse_offline.html;
error_page 500 =500 /errorpages/discourse_offline.html;
proxy_intercept_errors on;
proxy_pass http://unix:/var/discourse/shared/standalone/nginx.http.sock:;
proxy_set_header Host $http_host;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Real-IP $remote_addr;
}
location /errorpages/ {
alias /var/www/discourse-errorpages/;
}
}
- name: Setup discourse
template:
src: app.yml
dest: /var/discourse/containers/app.yml
- name: Setup sorry page
template:
src: discourse_offline.html
dest: /var/www/discourse-errorpages/
- name: Setup sorry logo
copy:
src: d-logo-sketch.png
dest: /var/www/discourse-errorpages/d-logo-sketch.png
- name: Setup sorry sob
copy:
src: sob.png
dest: /var/www/discourse-errorpages/sob.png