Skip to content
Snippets Groups Projects
Commit cf4c5a3c authored by Thomas Schneider's avatar Thomas Schneider
Browse files

hedgedoc: WIP

parent caf279e4
No related branches found
No related tags found
No related merge requests found
---
hedgedoc_data_root: /var/lib/hedgedoc
hedgedoc_install_root: /opt/hedgedoc
hedgedoc_version: "1.8.2"
hedgedoc_db:
dialect: sqlite
storage: "{{ hedgedoc_data_root }}/db.sqlite"
# hedgedoc_db:
# dialect: postgres
# host: /run/postgresql
# username: ""
# password: ""
# database: hedgedoc
# port: "5432"
---
- name: Reload systemd
systemd:
daemon_reload: true
- name: Restart hedgedoc
systemd:
name: hedgedoc.service
state: restarted
---
- name: Install required packages
apt:
name:
- nodejs
- yarnpkg
- npm
- name: Create system group
group:
name: hedgedoc
system: true
state: present
- name: Create system user
user:
name: hedgedoc
group: hedgedoc
system: true
home: "{{ hedgedoc_data_root }}"
shell: /usr/bin/nologin
state: present
- import_tasks: postgres.yml
when: hedgedoc_db.dialect == "postgres"
tags:
- postgresql
- name: Get installed version package.json
slurp:
src: "{{ hedgedoc_install_root }}/package.json"
register: installed_package_json
ignore_errors: true
- name: Install config
template:
src: "{{ item }}.j2"
dest: "{{ hedgedoc_install_root }}/{{ item }}"
loop:
- config.json
- .sequelizerc
when:
- not installed_package_json.failed
- installed_package_json.content|b64decode|json_query('version')|trim ==
hedgedoc_version
notify:
- Restart hedgedoc
- when: >-
installed_package_json.failed or
installed_package_json.content|b64decode|json_query('version')|trim !=
hedgedoc_version
block:
- name: Stop service for upgrade
systemd:
name: hedgedoc.service
state: stopped
# when this is the initial installation, the service does not exist yet
ignore_errors: true
- name: Create temporary directory
tempfile:
state: directory
register: tempdir
- name: Fetch and extract HedgeDoc
unarchive:
# yamllint disable-line rule:line-length
src: "https://github.com/hedgedoc/hedgedoc/releases/download/{{ hedgedoc_version }}/hedgedoc-{{ hedgedoc_version }}.tar.gz"
dest: "{{ tempdir.path }}"
remote_src: true
- name: Move HedgeDoc to target directory
copy:
src: "{{ tempdir.path }}/hedgedoc/"
dest: "{{ hedgedoc_install_root }}-{{ hedgedoc_version }}"
remote_src: true
- name: Install config
template:
src: "{{ item }}.j2"
dest: "{{ hedgedoc_install_root }}-{{ hedgedoc_version }}/{{ item }}"
loop:
- config.json
- .sequelizerc
- name: yarn install
command:
cmd: yarn install --production=true --pure-lockfile
chdir: "{{ hedgedoc_install_root }}-{{ hedgedoc_version }}"
- name: Get old install target
stat:
path: "{{ hedgedoc_install_root }}"
register: install_root
- name: Replace install root symlink
file:
src: "{{ hedgedoc_install_root }}-{{ hedgedoc_version }}"
dest: "{{ hedgedoc_install_root }}"
state: link
follow: false
force: true
- name: Install systemd service file
template:
src: hedgedoc.service.j2
dest: /etc/systemd/system/hedgedoc.service
owner: root
group: root
mode: "0644"
notify:
- Reload systemd
- meta: flush_handlers
- name: Enable and start service
systemd:
name: hedgedoc.service
state: started
enabled: true
- name: Remove old version
file:
path: "{{ install_root.stat.lnk_source }}"
state: absent
when: install_root.stat.islnk is defined and install_root.stat.islnk
- name: Remove temporary directory
file:
path: "{{ tempdir.path }}"
state: absent
---
- become: true
become_user: postgres
block:
- name: Create the postgres user
postgresql_user:
name: hedgedoc
state: present
- name: Create the database
postgresql_db:
name: "{{ hedgedoc_db.database }}"
owner: hedgedoc
state: present
- name: Ensure postgres is running
service:
name: postgresql
state: started
enabled: true
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment