snikket-server/ansible/tasks/prosody.yml

114 lines
2.5 KiB
YAML

---
- name: "Add Prosody package signing key"
apt_key:
url: "https://packages.prosody.im/debian/pubkey.asc"
- name: "Add Prosody package repo"
apt_repository:
repo: "deb https://packages.prosody.im/debian buster main"
- name: "Install Prosody package"
apt:
name: prosody-trunk
state: present
install_recommends: yes
- name: "Deploy Prosody config"
copy:
src: ../files/prosody.cfg.lua
dest: /etc/prosody/prosody.cfg.lua
- name: "Create Prosody data directory"
file:
state: directory
path: /snikket/prosody
owner: prosody
group: prosody
mode: 0750
- name: "Create Prosody modules directory"
file:
state: directory
path: /etc/prosody/modules
- name: "Create web root directory"
file:
state: directory
path: /var/www
- name: "FIXME Workaround for Prosody package bug"
file:
path: /etc/prosody/certs
state: directory
owner: prosody
group: adm
mode: 0750
recurse: yes
- name: "Disable Prosody init script"
service:
name: prosody
enabled: no
- name: "Stop Prosody if running"
service:
name: prosody
state: stopped
- name: Install Mercurial
apt:
name: mercurial
state: present
install_recommends: no
- name: Clone prosody-modules
hg:
repo: https://hg.prosody.im/prosody-modules
dest: /usr/local/lib/prosody-modules
revision: default
purge: yes
update: yes
- name: Enable wanted modules
file:
state: link
src: "/usr/local/lib/prosody-modules/{{item}}"
dest: "/etc/prosody/modules/{{item}}"
loop:
- mod_smacks
- mod_cloud_notify
- mod_invite
- mod_block_registrations
- mod_compact_resource
- mod_conversejs
- mod_http_upload
- mod_lastlog
- mod_limit_auth
- mod_password_policy
- mod_password_reset
- mod_roster_allinall
- mod_strict_https
- mod_vcard_muc
- mod_reload_modules
- mod_email
- mod_http_altconnect
- mod_bookmarks
- mod_default_bookmarks
- mod_muc_defaults
- name: Install Bootstrap and JS libs
apt:
name:
- libjs-bootstrap4
- libjs-jquery
install_recommends: no
- name: Enable wanted modules
file:
state: link
src: "/usr/local/lib/snikket-modules/{{item}}"
dest: "/etc/prosody/modules/{{item}}"
loop:
- mod_landing_page
- mod_invites
- mod_invites_page
- mod_invites_register
- mod_invites_api
- mod_easy_invite
- mod_http_acme_challenge
- mod_http_libjs
- mod_update_check
- mod_authz_internal