---

# Necessary for building: https://chat.openai.com/share/99d258cc-294b-4924-8eef-02fe419bb838
- name: install which
  pacman:
    name: which
    state: present

- name: "include docker-central-database"
  include_role: 
    name: docker-central-database

- name: "include role nginx-domain-setup for {{application_id}}"
  include_role:
    name: nginx-domain-setup
  vars:
    domain: 	"{{ domains[application_id] }}"
    http_port: 	"{{ ports.localhost.http[application_id] }}"

- name: "cleanup central database from {{application_id}}_default network"
  command:
    cmd: "docker network disconnect {{applications.discourse.network}} central-{{ database_type }}"
  ignore_errors: true
  when: mode_reset | bool

- name: add docker-compose.yml
  template: 
    src:  docker-compose.yml.j2 
    dest: "{{docker_compose.directories.instance}}docker-compose.yml"
  notify: docker compose project setup

- name: flush, to recreate discourse docker compose
  meta: flush_handlers

- name: pull docker repository
  git:
    repo: "https://github.com/discourse/discourse_docker.git"
    dest: "{{docker_repository_directory }}"
    update: yes
  notify: recreate discourse
  become: true
  ignore_errors: true

- name: set chmod 700 for {{docker_repository_directory }}containers
  ansible.builtin.file:
    path: "{{docker_repository_directory }}/containers"
    mode: '700'
    state: directory

- name: "copy configuration to {{discourse_application_yml_destination}}"
  template: 
    src: discourse_application.yml.j2
    dest: "{{discourse_application_yml_destination}}"
  notify: recreate discourse

- name: "destroy container discourse_application"
  command:
    cmd: "./launcher destroy discourse_application"
    chdir: "{{docker_repository_directory }}"
  ignore_errors: true
  notify: recreate discourse
  when: mode_reset | bool

- name: flush, to recreate discourse app
  meta: flush_handlers

- name: "add {{applications.discourse.container}} to network central_postgres"
  command:
    cmd: "docker network connect central_postgres {{applications.discourse.container}}"
  ignore_errors: true
  when: applications[application_id].database.central_storage | bool
  
- name: "remove central database from {{application_id}}_default"
  command:
    cmd: "docker network disconnect {{applications.discourse.network}} central-{{ database_type }}"
  ignore_errors: true
  when: applications[application_id].database.central_storage | bool