authelia_build_pkgs:
  pkg.installed:
    - pkgs:
        - make
        - gcc
        
authelia_nodejs:
  pkg.installed:
    - name: nodejs-lts-carbon

authelia_npm:
  pkg.installed:
    - name: npm

install_authelia:
  npm.installed:
    - name: authelia
    - force_reinstall: true

authelia_mongodb:
  pkg.installed:
    - name: mongodb
  service.running:
    - name: mongodb
    - enable: true

authelia_redis:
  pkg.installed:
    - name: redis
  service.running:
    - name: redis
    - enable: true

#Note - authelia requires manual changes to handle from address atm
#edit /usr/lib/node_modules/authelia/dist/src/server/lib/notifiers/SmtpNotifier.js
#and change line 18 to:
#const transporter = nodemailer.createTransport(smtpOptions,{from: options.from});
#and remove line 33 (from: "authelia@authelia.com",

authelia_config:
  file.managed:
    - name: /etc/authelia/config.yml
    - source: salt://roles/maintain/authelia/config.yml
    - user: root
    - group: root
    - mode: 644
    - makedirs: true
    - template: jinja

"/lib/systemd/system/authelia.service":
  file.managed:
    - source: salt://roles/maintain/authelia/authelia.service
    - user: root
    - group: root
    - mode: 644

authelia_service:
  service.running:
    - name: authelia
    - enable: true
    - watch:
      - file: authelia_config