diff options
-rw-r--r-- | galaxy.yml | 2 | ||||
-rw-r--r-- | roles/calibre/README.md | 16 | ||||
-rw-r--r-- | roles/calibre/handlers/main.yml | 7 | ||||
-rw-r--r-- | roles/calibre/tasks/main.yml | 56 | ||||
-rw-r--r-- | roles/calibre/templates/cps.service.j2 | 14 |
5 files changed, 94 insertions, 1 deletions
@@ -1,6 +1,6 @@ namespace: kompetenzbolzen name: stuff -version: 0.8.10 +version: 0.9.0 readme: README.md authors: - Jonas Gunz <himself@jonasgunz.de> diff --git a/roles/calibre/README.md b/roles/calibre/README.md new file mode 100644 index 0000000..1dbc079 --- /dev/null +++ b/roles/calibre/README.md @@ -0,0 +1,16 @@ +# calibre-web + +Installed calibre-web with optional features if specified. +Assumes the ssl cert and key are located at `/etc/ssl/certs/FQDN.(pem | key)`. + +```yaml +ssl: true + +features: + - ldap + - oauth + - metadata + - comics +``` + +[List of possible features](https://github.com/janeczku/calibre-web/wiki/Dependencies-in-Calibre-Web-Linux-Windows) diff --git a/roles/calibre/handlers/main.yml b/roles/calibre/handlers/main.yml new file mode 100644 index 0000000..735348d --- /dev/null +++ b/roles/calibre/handlers/main.yml @@ -0,0 +1,7 @@ +--- +- name: Restart cps + systemd: + name: cps.service + state: restarted + enabled: true + become: true diff --git a/roles/calibre/tasks/main.yml b/roles/calibre/tasks/main.yml new file mode 100644 index 0000000..d3b0d06 --- /dev/null +++ b/roles/calibre/tasks/main.yml @@ -0,0 +1,56 @@ +--- +- name: Install packages + apt: + name: + - calibre + - python3-pip + - libsasl2-dev + - libldap2-dev + - libssl-dev + become: true + +- name: Check library existence + stat: + path: /opt/calibre/library + register: library + +- name: Download first book + get_url: + url: https://github.com/progit/progit2/releases/download/2.1.336/progit.pdf + dest: /opt/calibre/progit.pdf + become: true + when: not library.stat.exists + +- name: Initialize calibre library + shell: + cmd: calibredb --library-path=library add progit.pdf + chdir: /opt/calibre + creates: library + become: true + +- name: Change ownership of calibre library + file: + path: /opt/calibre/library + recurse: true + owner: calibre + group: calibre + become: true + +- name: Remove first book file + file: + path: /opt/calibre/progit.pdf + state: absent + become: true + when: not library.stat.exists + +- name: Install calibre web with pip + pip: + name: calibreweb[{{ features | join(",") }}] + become: true + +- name: Create systemd unit + template: + dest: /etc/systemd/system/cps.service + src: cps.service.j2 + become: true + notify: Restart cps diff --git a/roles/calibre/templates/cps.service.j2 b/roles/calibre/templates/cps.service.j2 new file mode 100644 index 0000000..005297d --- /dev/null +++ b/roles/calibre/templates/cps.service.j2 @@ -0,0 +1,14 @@ +[Unit] +Description=Calibre-Web + +[Service] +Type=simple +User=calibre +{% if ssl == true %} +ExecStart=/usr/local/bin/cps -c '/etc/ssl/certs/{{ ansible_facts.fqdn }}.pem' -k '/etc/ssl/private/{{ ansible_facts.fqdn }}.key' +{% else %} +ExecStart=/usr/local/bin/cps +{% endif %} + +[Install] +WantedBy=multi-user.target |