---
# You will need to do after: sudo pip3 install django-allauth-cas
# Yes, it is horrible but we need Debian Python3 to see this django app.
- name: Install mailman3
  apt:
    update_cache: true
    name:
      - mailman3-full
      - nginx
      - dbconfig-no-thanks  # Do not autoconfigure database
      - postgresql
      - python3-pip  # CAS
      - python3-lxml  # CAS
      - certbot  # cert
      - python3-certbot-nginx
    install_recommends: false
  register: apt_result
  retries: 3
  until: apt_result is succeeded

# You will need to setup postgres
# sudo -u postgres createuser -P mailman3
# sudo -u postgres createdb -O mailman3 mailman3
# Test with: psql -U mailman3 -W -d mailman3 -h localhost
- name: Configure mailman3
  template:
    src: "mailman3/{{ item }}.j2"
    dest: "/etc/mailman3/{{ item }}"
    mode: 0640
    owner: root
    group: list
  loop:
    - mailman.cfg
    - mailman-hyperkitty.cfg
  notify: Restart mailman3

# You will need to setup postgres
# sudo -u postgres createuser -P mailman3web
# sudo -u postgres createdb -O mailman3web mailman3web
# Test with: psql -U mailman3web -W -d mailman3web -h localhost
# Then migrate data: sudo /usr/share/mailman3-web/manage.py migrate
- name: Configure mailman3-web
  template:
    src: mailman3/mailman-web.py.j2
    dest: /etc/mailman3/mailman-web.py
    mode: 0640
    owner: root
    group: www-data
  notify: Restart mailman3-web

- name: Configure nginx site
  template:
    src: nginx/sites-available/mailman3.j2
    dest: /etc/nginx/sites-available/mailman3
  notify: Restart nginx

- name: Enable nginx site
  file:
    src: /etc/nginx/sites-available/mailman3
    dest: /etc/nginx/sites-enabled/mailman3
    state: link
  notify: Restart nginx

- name: Create /etc/letsencrypt/conf.d
  file:
    path: /etc/letsencrypt/conf.d
    state: directory

- name: Add Certbot configuration
  template:
    src: "letsencrypt/conf.d/mailman.ini.j2"
    dest: "/etc/letsencrypt/conf.d/mailman.ini"
    mode: 0644

- name: Indicate role in motd
  template:
    src: update-motd.d/05-service.j2
    dest: /etc/update-motd.d/05-mailman3
    mode: 0755