- name: Include vault
  include_vars: vault.yml

- name: Create install directory
  file:
    path: /opt/slides
    state: directory
    owner: "{{ docker_user.name }}"
    mode: "{{ docker_compose_directory_mask }}"

- name: Install compose file
  template:
    src: files/docker-compose.yml
    dest: /opt/slides/docker-compose.yml
    mode: "{{ docker_compose_file_mask }}"
    owner: "{{ docker_user.name }}"
    validate: docker-compose -f %s config
  notify: restart slides

- name: Create credentials
  htpasswd:
    path: /opt/slides/htpasswd
    name: "{{ item.user }}"
    password: "{{ item.password }}"
    owner: "{{ docker_user.name }}"
    mode: "0600"
  loop: "{{ webdav_credentials }}"
  loop_control:
    label: "{{ item.user }}"
  notify: restart slides

- name: Install nginx config
  template:
    src: files/nginx-docker.conf
    dest: /etc/nginx/http.d/slides.conf
    mode: "0644"
  notify: reload nginx
  vars:
    server_name: slides.jakehoward.tech
    upstream: slides-slides-1.docker:80
    ssl_cert_path: /etc/letsencrypt/live/slides.jakehoward.tech
    location_extra: |
      client_max_body_size 0;