src.nth.io/

summaryrefslogtreecommitdiff
path: root/prosody
diff options
context:
space:
mode:
Diffstat (limited to 'prosody')
-rw-r--r--prosody/defaults/main.yaml6
-rw-r--r--prosody/handlers/main.yaml5
-rw-r--r--prosody/tasks/main.yaml59
-rw-r--r--prosody/templates/prosody.cfg.lua.j231
-rw-r--r--prosody/templates/setup_db.psql.j22
5 files changed, 103 insertions, 0 deletions
diff --git a/prosody/defaults/main.yaml b/prosody/defaults/main.yaml
new file mode 100644
index 0000000..440d5c2
--- /dev/null
+++ b/prosody/defaults/main.yaml
@@ -0,0 +1,6 @@
+---
+
+prosody_ssl_dir: "/etc/prosody/certs/{{prosody_vhost}}"
+
+prosody_db: "prosody_{{prosody_instance}}"
+prosody_db_port: "5432"
diff --git a/prosody/handlers/main.yaml b/prosody/handlers/main.yaml
new file mode 100644
index 0000000..fea0e7d
--- /dev/null
+++ b/prosody/handlers/main.yaml
@@ -0,0 +1,5 @@
+---
+
+- name: restart prosody
+ become: yes
+ systemd: name="prosody.service" enabled="yes" daemon_reload="yes"
diff --git a/prosody/tasks/main.yaml b/prosody/tasks/main.yaml
new file mode 100644
index 0000000..e58cd0b
--- /dev/null
+++ b/prosody/tasks/main.yaml
@@ -0,0 +1,59 @@
+---
+
+- name: install prosody
+ become: yes
+ apt: name="{{item}}"
+ notify: restart prosody
+ loop:
+ - "prosody"
+ - "lua-dbi-postgresql"
+
+- name: configure prosody
+ become: yes
+ template:
+ src: "prosody.cfg.lua.j2"
+ dest: "/etc/prosody/conf.avail/{{prosody_vhost}}.cfg.lua"
+ notify: restart prosody
+
+- name: install prosody site
+ become: yes
+ template: src="prosody.cfg.lua.j2" dest="/etc/prosody/conf.avail/{{prosody_vhost}}.cfg.lua"
+ notify: restart prosody
+
+- name: copy ssl keys
+ become: yes
+ copy:
+ src: "{{item}}"
+ dest: "{{prosody_ssl_dir}}/"
+ remote_src: yes
+ mode: "0640"
+ owner: "root"
+ group: "prosody"
+ notify: restart prosody
+ loop:
+ - "{{prosody_ssl_privkey_src}}"
+ - "{{prosody_ssl_cert_src}}"
+
+- name: install db schema file
+ become: yes
+ template:
+ src: "setup_db.psql.j2"
+ dest: "/tmp/setup_db_{{prosody_db}}.psql"
+ owner: "postgres"
+ group: "postgres"
+ mode: "0600"
+ changed_when: false
+
+- name: install psql
+ become: yes
+ become_user: "postgres"
+ command: "psql -f /tmp/setup_db_{{prosody_db}}.psql"
+ changed_when: false
+
+- name: enable prosody site
+ become: yes
+ file:
+ src: "/etc/prosody/conf.avail/{{prosody_vhost}}.cfg.lua"
+ dest: "/etc/prosody/conf.d/{{prosody_vhost}}.cfg.lua"
+ state: "link"
+ notify: restart prosody
diff --git a/prosody/templates/prosody.cfg.lua.j2 b/prosody/templates/prosody.cfg.lua.j2
new file mode 100644
index 0000000..32bc1a6
--- /dev/null
+++ b/prosody/templates/prosody.cfg.lua.j2
@@ -0,0 +1,31 @@
+VirtualHost "{{prosody_vhost}}"
+
+ssl = {
+ key = "{{prosody_ssl_privkey}}";
+ certificate = "{{prosody_ssl_cert}}";
+}
+
+storage = "sql"
+sql = {
+ driver = "PostgreSQL";
+ database = "{{prosody_db}}";
+ host = "localhost";
+ port = {{prosody_db_port}};
+ username = "{{prosody_db}}";
+ password = "{{prosody_db_pass}}";
+}
+
+------ Components ------
+-- You can specify components to add hosts that provide special services,
+-- like multi-user conferences, and transports.
+-- For more information on components, see http://prosody.im/doc/components
+
+-- Set up a MUC (multi-user chat) room server on conference.example.com:
+--Component "conference.example.com" "muc"
+
+-- Set up a SOCKS5 bytestream proxy for server-proxied file transfers:
+--Component "proxy.example.com" "proxy65"
+
+---Set up an external component (default component port is 5347)
+--Component "gateway.example.com"
+-- component_secret = "password"
diff --git a/prosody/templates/setup_db.psql.j2 b/prosody/templates/setup_db.psql.j2
new file mode 100644
index 0000000..25e9ec0
--- /dev/null
+++ b/prosody/templates/setup_db.psql.j2
@@ -0,0 +1,2 @@
+CREATE USER {{prosody_db}} WITH ENCRYPTED PASSWORD '{{prosody_db_pass}}';
+CREATE DATABASE {{prosody_db}} ENCODING 'UTF8' LC_COLLATE='C.UTF-8' LC_CTYPE='C.UTF-8' template=template0 OWNER {{prosody_db}};