From d398c22b56a80384fece8859ccaeb6dd1bd32dc2 Mon Sep 17 00:00:00 2001 From: Jim Martens Date: Tue, 5 Jan 2021 13:53:15 +0100 Subject: [PATCH] Added cryptpad role --- cryptpad.yml | 9 ++++++++ cryptpad_vars.yml.example | 3 +++ general_vars.yml.example | 2 ++ roles/common/tasks/main.yml | 3 +++ roles/common/tasks/tools.yml | 10 ++++++++ roles/common/tasks/web.yml | 13 +++++++++++ roles/cryptpad/defaults/main.yml | 2 ++ roles/cryptpad/meta/main.yml | 3 +++ roles/cryptpad/tasks/config.yml | 24 ++++++++++++++++++++ roles/cryptpad/tasks/download.yml | 8 +++++++ roles/cryptpad/tasks/main.yml | 11 +++++++++ roles/cryptpad/tasks/npm.yml | 12 ++++++++++ roles/cryptpad/tasks/service.yml | 9 ++++++++ roles/cryptpad/templates/cryptpad_service.j2 | 6 +++++ 14 files changed, 115 insertions(+) create mode 100644 cryptpad.yml create mode 100644 cryptpad_vars.yml.example create mode 100644 roles/common/tasks/main.yml create mode 100644 roles/common/tasks/tools.yml create mode 100644 roles/common/tasks/web.yml create mode 100644 roles/cryptpad/defaults/main.yml create mode 100644 roles/cryptpad/meta/main.yml create mode 100644 roles/cryptpad/tasks/config.yml create mode 100644 roles/cryptpad/tasks/download.yml create mode 100644 roles/cryptpad/tasks/main.yml create mode 100644 roles/cryptpad/tasks/npm.yml create mode 100644 roles/cryptpad/tasks/service.yml create mode 100644 roles/cryptpad/templates/cryptpad_service.j2 diff --git a/cryptpad.yml b/cryptpad.yml new file mode 100644 index 0000000..036ae5e --- /dev/null +++ b/cryptpad.yml @@ -0,0 +1,9 @@ +--- +- name: Set up Cryptpad + hosts: uberspace + vars_files: + - general_vars.yml + - cryptpad_vars.yml + remote_user: "{{ uberspace_user }}" + roles: + - cryptpad diff --git a/cryptpad_vars.yml.example b/cryptpad_vars.yml.example new file mode 100644 index 0000000..73ba7bd --- /dev/null +++ b/cryptpad_vars.yml.example @@ -0,0 +1,3 @@ +--- +cryptpad_email: email@for.cryptpad +cryptpad_version: 3.25.0 diff --git a/general_vars.yml.example b/general_vars.yml.example index bd1ca59..ba85f6a 100644 --- a/general_vars.yml.example +++ b/general_vars.yml.example @@ -1,2 +1,4 @@ --- uberspace_user: yourUberspaceUser +domain: domainToService +node_version: 12 diff --git a/roles/common/tasks/main.yml b/roles/common/tasks/main.yml new file mode 100644 index 0000000..d68ce8e --- /dev/null +++ b/roles/common/tasks/main.yml @@ -0,0 +1,3 @@ +--- +- include: web.yml +- include: tools.yml diff --git a/roles/common/tasks/tools.yml b/roles/common/tasks/tools.yml new file mode 100644 index 0000000..6508d7a --- /dev/null +++ b/roles/common/tasks/tools.yml @@ -0,0 +1,10 @@ +--- +- name: use Node + when: node_version is defined + block: + - name: check used version + command: uberspace tools version show node + register: used_node + - name: update used version + command: uberspace tools version use node {{ node_version }} + when: used_node.stdout.find(node_version|string) == -1 diff --git a/roles/common/tasks/web.yml b/roles/common/tasks/web.yml new file mode 100644 index 0000000..90e72b6 --- /dev/null +++ b/roles/common/tasks/web.yml @@ -0,0 +1,13 @@ +--- +- name: list domains + command: uberspace web domain list + register: domains +- name: set up domain + when: domains.stdout.find(domain) == -1 + block: + - name: add domain + command: uberspace web domain add {{ domain }} + register: new_domain + - name: print out important information + debug: + msg: "{{ new_domain.stdout }}" diff --git a/roles/cryptpad/defaults/main.yml b/roles/cryptpad/defaults/main.yml new file mode 100644 index 0000000..a68c2c3 --- /dev/null +++ b/roles/cryptpad/defaults/main.yml @@ -0,0 +1,2 @@ +--- +cryptpad_version: 3.25.0 diff --git a/roles/cryptpad/meta/main.yml b/roles/cryptpad/meta/main.yml new file mode 100644 index 0000000..fdda41b --- /dev/null +++ b/roles/cryptpad/meta/main.yml @@ -0,0 +1,3 @@ +--- +dependencies: + - role: common diff --git a/roles/cryptpad/tasks/config.yml b/roles/cryptpad/tasks/config.yml new file mode 100644 index 0000000..98f88a2 --- /dev/null +++ b/roles/cryptpad/tasks/config.yml @@ -0,0 +1,24 @@ +--- +- name: copy config + copy: + remote_src: yes + src: ~/cryptpad/config/config.example.js + dest: ~/cryptpad/config/config.js +- name: update config + block: + - name: set domain as safe origin + lineinfile: + path: ~/cryptpad/config/config.js + regex: '/?/?httpSafeOrigin' + line: "httpSafeOrigin: 'https://{{ domain }}'," + - name: set http address + lineinfile: + path: ~/cryptpad/config/config.js + regex: '/?/?httpAddress' + line: "httpAddress: '::'," + - name: change email address + lineinfile: + path: ~/cryptpad/config/config.js + regex: 'adminEmail' + line: 'adminEmail: {{ cryptpad_email }},' + diff --git a/roles/cryptpad/tasks/download.yml b/roles/cryptpad/tasks/download.yml new file mode 100644 index 0000000..55d04de --- /dev/null +++ b/roles/cryptpad/tasks/download.yml @@ -0,0 +1,8 @@ +--- +- name: download cryptpad + git: + dest: ~/cryptpad + repo: https://github.com/xwiki-labs/cryptpad.git + version: "{{ cryptpad_version }}" + depth: 1 + accept_hostkey: yes diff --git a/roles/cryptpad/tasks/main.yml b/roles/cryptpad/tasks/main.yml new file mode 100644 index 0000000..4f799f8 --- /dev/null +++ b/roles/cryptpad/tasks/main.yml @@ -0,0 +1,11 @@ +--- +- include: download.yml +- include: npm.yml +- include: config.yml +- include: service.yml +- name: list web backends + command: uberspace web backend list + register: web_backends +- name: set up web backend + command: uberspace web backend set / --http --port 3000 + when: web_backends.stdout.find('http:3000') == -1 diff --git a/roles/cryptpad/tasks/npm.yml b/roles/cryptpad/tasks/npm.yml new file mode 100644 index 0000000..50b6a51 --- /dev/null +++ b/roles/cryptpad/tasks/npm.yml @@ -0,0 +1,12 @@ +--- +- name: install bower + community.general.npm: + name: bower + global: yes +- name: install npm dependencies + community.general.npm: + path: ~/cryptpad +- name: install bower dependencies + community.general.bower: + path: ~/cryptpad + relative_execpath: ~/lib/node_modules/bower/bin diff --git a/roles/cryptpad/tasks/service.yml b/roles/cryptpad/tasks/service.yml new file mode 100644 index 0000000..b2bfafc --- /dev/null +++ b/roles/cryptpad/tasks/service.yml @@ -0,0 +1,9 @@ +--- +- name: create service + template: + src: cryptpad_service.j2 + dest: ~/etc/services.d/cryptpad.ini + mode: 0644 + notify: + - reload supervisorctl + - update supervisorctl diff --git a/roles/cryptpad/templates/cryptpad_service.j2 b/roles/cryptpad/templates/cryptpad_service.j2 new file mode 100644 index 0000000..62a0b6c --- /dev/null +++ b/roles/cryptpad/templates/cryptpad_service.j2 @@ -0,0 +1,6 @@ +[program:cryptpad] +directory=%(ENV_HOME)s/cryptpad +command=node server +startsecs=60 +autorestart=yes +