From aac8913d2fd33d271326922b73edc6143cf5c835 Mon Sep 17 00:00:00 2001 From: Arky Date: Tue, 14 Aug 2018 00:11:42 +0700 Subject: [PATCH 01/67] Calibre-Web initial Import --- roles/calibre-web/README.rst | 31 +++++++ roles/calibre-web/defaults/main.yml | 21 +++++ roles/calibre-web/tasks/main.yml | 86 ++++++++++++++++++ .../calibre-web/templates/calibre-web.conf.j2 | 8 ++ .../templates/calibre-web.service.j2 | 10 ++ roles/calibre-web/templates/metadata.db | Bin 0 -> 348160 bytes 6 files changed, 156 insertions(+) create mode 100644 roles/calibre-web/README.rst create mode 100644 roles/calibre-web/defaults/main.yml create mode 100644 roles/calibre-web/tasks/main.yml create mode 100644 roles/calibre-web/templates/calibre-web.conf.j2 create mode 100644 roles/calibre-web/templates/calibre-web.service.j2 create mode 100644 roles/calibre-web/templates/metadata.db diff --git a/roles/calibre-web/README.rst b/roles/calibre-web/README.rst new file mode 100644 index 000000000..119e2d773 --- /dev/null +++ b/roles/calibre-web/README.rst @@ -0,0 +1,31 @@ +==================== +Calibre Web README +==================== + +This Ansible role installs Calibre Web within Internet-in-a-Box. Calibre Web is +a web app providing a clean interface for browsing, reading and downloading eBooks +using an existing Calibre database. + +Access +------ + +If enabled and with the default settings Calibre-web should be accessible at http://box/calibre-web. +This is front-end application running under Apache2 httpd. + +To login to Calibre-web enter + + Username: admin + + Password: admin123 + +Backend +-------- +You can manage the backend Calibre-web server manually with the following commands: + + systemctl enable calibre-web + + systemctl start calibre-web + + systemctl status calibre-web + + systemctl stop calibre-web diff --git a/roles/calibre-web/defaults/main.yml b/roles/calibre-web/defaults/main.yml new file mode 100644 index 000000000..5e1bfbe5b --- /dev/null +++ b/roles/calibre-web/defaults/main.yml @@ -0,0 +1,21 @@ +# The values here are defaults. +# To override them edit /etc/iiab/local_vars.yml + +# Installation Variables +calibre-web_install: False +calibre-web_enabled: False + +# calibre-web folder to store its data and configuration files. +calibre-web_home: "{{ content_base }}/calibre-web" + +calibre-web_http_port: 8083 +calibre-web_url: /calibre-web +calibre-web_path: "{{ iiab_base }}/calibre-web" +calibre-web_exec_path: {{ calibre-web_path }}/cps.py + +# calibre-web system user +calibre-web_user: root + +# calibre-web admin account +# calibre-web_admin_user: admin +# calibre-web_admin_password: admin123 diff --git a/roles/calibre-web/tasks/main.yml b/roles/calibre-web/tasks/main.yml new file mode 100644 index 000000000..56c3a88e9 --- /dev/null +++ b/roles/calibre-web/tasks/main.yml @@ -0,0 +1,86 @@ +- name: Create calibre-web folders to store data and configuration files + file: + path: "{{ item }}" + owner: "{{ calibre-web_user }}" + group: "{{ apache_user }}" + mode: 0755 + state: directory + with_items: + - "{{ calibre-web_home }}" + - "{{ calibre-web_path }}" + +- name: Checkout calibre-web github repo + git: + repo: https://github.com/janeczku/calibre-web.git + dest: "{{ calibre-web_path }}" + update: yes + version: master + when: internet_available + +- name: Download calibre-web dependencies +- pip: + chdir: "{{ calibre-web_path }}" + requirements: "{{ calibre-web_path }}/requirements.txt" + extra_args: "--target vendor --no-cache-dir" + +- name: Create calibre-web systemd service unit, httpd2 configuration and initial database + template: + src: "{{ item.src }}" + dest: "{{ item.dest }}" + mode: "{{ item.mode }}" + owner: root + group: root + with_items: + - { src: 'calibre-web.service.j2', dest: '/etc/systemd/system/calibre-web.service', mode: '0644' } + - { src: 'calibre-web.conf.j2', dest: '/etc/apache2/sites-available/calibre-web.conf', mode: '0644' } + - { src: 'metadata.db', dest: '{{ calibre-web_home }}/metadata.db', mode: '0644' } + +- name: Ask systemd to reread unit files (daemon-reload) + systemd: + daemon_reload: yes + +- name: Enable calibre-web service + service: + name: calibre-web + enabled: yes + state: restarted + when: calibre-web_enabled + +- name: Enable calibre-web httpd2 site + command: a2ensite calibre-web.conf + when: calibre-web_enabled + +- name: Restart Apache after enabling calibre-web httpd2 site + command: apachectl -k graceful + when: calibre-web_enabled + +- name: Disable calibre-web service + service: + name: calibre-web + enabled: no + state: stopped + when: not calibre-web_enabled + +- name: Disable calibre-web httpd2 site + command: a2dissite calibre-web.conf + when: not calibre-web_enabled + +- name: Add 'calibre-web' to list of services at /etc/iiab/iiab.ini + ini_file: + dest: "{{ service_filelist }}" + section: calibre-web + option: "{{ item.option }}" + value: "{{ item.value }}" + with_items: + - option: name + value: calibre-web + - option: description + value: '"calibre-web is a web app providing a clean interface for browsing, reading and downloading eBooks."' + - option: calibre-web_url + value: "{{ calibre-web_url }}" + - option: calibre-web_path + value: "{{ calibre-web_path }}" + - option: calibre-web_port + value: "{{ calibre-web_http_port }}" + - option: enabled + value: "{{ calibre-web_enabled }}" diff --git a/roles/calibre-web/templates/calibre-web.conf.j2 b/roles/calibre-web/templates/calibre-web.conf.j2 new file mode 100644 index 000000000..5fdd07957 --- /dev/null +++ b/roles/calibre-web/templates/calibre-web.conf.j2 @@ -0,0 +1,8 @@ + + + RequestHeader set X-SCRIPT-NAME {{ calibre-web_url }} + RequestHeader set X-SCHEME http + ProxyPass http://localhost:{{ calibre-web_http_port }}/ + ProxyPassReverse http://localhost:{{ calibre-web_http_port }}/ + + diff --git a/roles/calibre-web/templates/calibre-web.service.j2 b/roles/calibre-web/templates/calibre-web.service.j2 new file mode 100644 index 000000000..7df5304b4 --- /dev/null +++ b/roles/calibre-web/templates/calibre-web.service.j2 @@ -0,0 +1,10 @@ +Description=Calibre-Web + +[Service] +Type=simple +User={{ calibre-web_user }} +ExecStart=/usr/bin/python " {{ calibre-web_exec_path }} " +WorkingDirectory={{ calibre-web_path }} + +[Install] +WantedBy=multi-user.target diff --git a/roles/calibre-web/templates/metadata.db b/roles/calibre-web/templates/metadata.db new file mode 100644 index 0000000000000000000000000000000000000000..828afa0ca8eca2e0370a1d628fa9ed646ccae857 GIT binary patch literal 348160 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 literal 0 HcmV?d00001 From 3b7d70c5b8d1fd886936b097a368e9ac3675eb1d Mon Sep 17 00:00:00 2001 From: Arky Date: Tue, 14 Aug 2018 09:29:59 +0700 Subject: [PATCH 02/67] Updating Readme and Provisioning code --- roles/calibre-web/README.rst | 27 +++++++++++++++++++ roles/calibre-web/defaults/main.yml | 8 ++++-- roles/calibre-web/tasks/main.yml | 40 ++++++++++++++++++++--------- 3 files changed, 61 insertions(+), 14 deletions(-) diff --git a/roles/calibre-web/README.rst b/roles/calibre-web/README.rst index 119e2d773..aef3720d3 100644 --- a/roles/calibre-web/README.rst +++ b/roles/calibre-web/README.rst @@ -29,3 +29,30 @@ You can manage the backend Calibre-web server manually with the following comman systemctl status calibre-web systemctl stop calibre-web + +Configuration +------------- +You can login using the default administration account. Then select "Configuration" +under admin panel. + +Upgrading +--------- +Reinstalling Calibre-web automatically upgrades to the latest version. Please backup your configuration +before reinstalling. To retain your configuration set calibre-web_provision variable to False. + +You can manually upgrade while following commands: + +$ cd /opt/calibre-web + +$ sudo git pull + +Backup Content +-------------- +Calibre-web stores its configuration into SQLite database file /library/calibre-web/metadata.db. +The content is stored in various folders under /library/calibre-web. Please backup the files before +upgrading. Also set calibre-web_provision varilable to False before upgrading. + +Known Issues +------------ +Current implementation of the calibre-web in Internet in a box doesn't include https/SSL configuration. +Some of the administration login urls might not work. diff --git a/roles/calibre-web/defaults/main.yml b/roles/calibre-web/defaults/main.yml index 5e1bfbe5b..22a84ef79 100644 --- a/roles/calibre-web/defaults/main.yml +++ b/roles/calibre-web/defaults/main.yml @@ -11,9 +11,13 @@ calibre-web_home: "{{ content_base }}/calibre-web" calibre-web_http_port: 8083 calibre-web_url: /calibre-web calibre-web_path: "{{ iiab_base }}/calibre-web" -calibre-web_exec_path: {{ calibre-web_path }}/cps.py +calibre-web_exec_path: "{{ calibre-web_path }}/cps.py" -# calibre-web system user +# Calibre-web setup will be provisioned with default administration account, metadata.db and +# language. You could turn this to 'False' while reinstalling/upgrading calibre-web. +calibre-web_provision: True + +#calibre-web system user calibre-web_user: root # calibre-web admin account diff --git a/roles/calibre-web/tasks/main.yml b/roles/calibre-web/tasks/main.yml index 56c3a88e9..f630cdb33 100644 --- a/roles/calibre-web/tasks/main.yml +++ b/roles/calibre-web/tasks/main.yml @@ -1,4 +1,4 @@ -- name: Create calibre-web folders to store data and configuration files +- name: Create calibre-web folders to store data and configuration files. file: path: "{{ item }}" owner: "{{ calibre-web_user }}" @@ -9,7 +9,7 @@ - "{{ calibre-web_home }}" - "{{ calibre-web_path }}" -- name: Checkout calibre-web github repo +- name: Download calibre-web github repository. git: repo: https://github.com/janeczku/calibre-web.git dest: "{{ calibre-web_path }}" @@ -17,29 +17,39 @@ version: master when: internet_available -- name: Download calibre-web dependencies +- name: Download calibre-web dependencies into vendor subdirectory. - pip: chdir: "{{ calibre-web_path }}" requirements: "{{ calibre-web_path }}/requirements.txt" extra_args: "--target vendor --no-cache-dir" -- name: Create calibre-web systemd service unit, httpd2 configuration and initial database +- name: Create calibre-web systemd service unit and httpd2 configuration. template: src: "{{ item.src }}" dest: "{{ item.dest }}" mode: "{{ item.mode }}" - owner: root - group: root + owner: {{ calibre-web_user }} + group: {{ apache_user }} with_items: - { src: 'calibre-web.service.j2', dest: '/etc/systemd/system/calibre-web.service', mode: '0644' } - { src: 'calibre-web.conf.j2', dest: '/etc/apache2/sites-available/calibre-web.conf', mode: '0644' } - - { src: 'metadata.db', dest: '{{ calibre-web_home }}/metadata.db', mode: '0644' } -- name: Ask systemd to reread unit files (daemon-reload) +- name: Provision calibre-web with default administration account and database. + template: + src: "{{ item.src }}" + dest: "{{ item.dest }}" + mode: "{{ item.mode }}" + owner: {{ calibre-web_user }} + group: {{ apache_user }} + with_items: + - { src: 'metadata.db', dest: '{{ calibre-web_home }}/metadata.db', mode: '0644' } + when: calibre-web_provision + +- name: Ask systemd to reread unit files (daemon-reload). systemd: daemon_reload: yes -- name: Enable calibre-web service +- name: Enable calibre-web service. service: name: calibre-web enabled: yes @@ -50,21 +60,25 @@ command: a2ensite calibre-web.conf when: calibre-web_enabled -- name: Restart Apache after enabling calibre-web httpd2 site +- name: Restart Apache after enabling calibre-web httpd2 site. command: apachectl -k graceful when: calibre-web_enabled -- name: Disable calibre-web service +- name: Disable calibre-web service. service: name: calibre-web enabled: no state: stopped when: not calibre-web_enabled -- name: Disable calibre-web httpd2 site +- name: Disable calibre-web httpd2 site. command: a2dissite calibre-web.conf when: not calibre-web_enabled +- name: Restart Apache after disabling calibre-web httpd2 site. + command: apachectl -k graceful + when: not calibre-web_enabled + - name: Add 'calibre-web' to list of services at /etc/iiab/iiab.ini ini_file: dest: "{{ service_filelist }}" @@ -84,3 +98,5 @@ value: "{{ calibre-web_http_port }}" - option: enabled value: "{{ calibre-web_enabled }}" + - option: True + value: "{{ calibre-web_provision }}" From 0f62dc2746cd6eb2066523da7b8f53949b3ef24e Mon Sep 17 00:00:00 2001 From: Arky Date: Tue, 14 Aug 2018 10:04:48 +0700 Subject: [PATCH 03/67] Add missing qoutes --- roles/calibre-web/README.rst | 2 +- roles/calibre-web/tasks/main.yml | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/roles/calibre-web/README.rst b/roles/calibre-web/README.rst index aef3720d3..e9fe069c6 100644 --- a/roles/calibre-web/README.rst +++ b/roles/calibre-web/README.rst @@ -55,4 +55,4 @@ upgrading. Also set calibre-web_provision varilable to False before upgrading. Known Issues ------------ Current implementation of the calibre-web in Internet in a box doesn't include https/SSL configuration. -Some of the administration login urls might not work. +Some of the administration login urls might not work. diff --git a/roles/calibre-web/tasks/main.yml b/roles/calibre-web/tasks/main.yml index f630cdb33..6ed9bf4a8 100644 --- a/roles/calibre-web/tasks/main.yml +++ b/roles/calibre-web/tasks/main.yml @@ -28,8 +28,8 @@ src: "{{ item.src }}" dest: "{{ item.dest }}" mode: "{{ item.mode }}" - owner: {{ calibre-web_user }} - group: {{ apache_user }} + owner: "{{ calibre-web_user }}" + group: "{{ apache_user }}" with_items: - { src: 'calibre-web.service.j2', dest: '/etc/systemd/system/calibre-web.service', mode: '0644' } - { src: 'calibre-web.conf.j2', dest: '/etc/apache2/sites-available/calibre-web.conf', mode: '0644' } @@ -39,8 +39,8 @@ src: "{{ item.src }}" dest: "{{ item.dest }}" mode: "{{ item.mode }}" - owner: {{ calibre-web_user }} - group: {{ apache_user }} + owner: "{{ calibre-web_user }}" + group: "{{ apache_user }}" with_items: - { src: 'metadata.db', dest: '{{ calibre-web_home }}/metadata.db', mode: '0644' } when: calibre-web_provision From a6de9dee76465c4be5d35f06416112bac6f108a0 Mon Sep 17 00:00:00 2001 From: Arky Date: Tue, 14 Aug 2018 10:15:46 +0700 Subject: [PATCH 04/67] Remove '-' --- roles/calibre-web/tasks/main.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/roles/calibre-web/tasks/main.yml b/roles/calibre-web/tasks/main.yml index 6ed9bf4a8..938e1c814 100644 --- a/roles/calibre-web/tasks/main.yml +++ b/roles/calibre-web/tasks/main.yml @@ -18,10 +18,10 @@ when: internet_available - name: Download calibre-web dependencies into vendor subdirectory. -- pip: - chdir: "{{ calibre-web_path }}" - requirements: "{{ calibre-web_path }}/requirements.txt" - extra_args: "--target vendor --no-cache-dir" + pip: + requirements: "{{ calibre-web_path }}/requirements.txt" + extra_args: "--target vendor --no-cache-dir" + chdir: "{{ calibre-web_path }}" - name: Create calibre-web systemd service unit and httpd2 configuration. template: From f9548e30d690b2a2617491e4cb5e8a23237b1f59 Mon Sep 17 00:00:00 2001 From: Arky Date: Tue, 14 Aug 2018 10:29:19 +0700 Subject: [PATCH 05/67] Ansible chucks based on - --- roles/calibre-web/README.rst | 2 +- roles/calibre-web/defaults/main.yml | 24 +++++----- roles/calibre-web/tasks/main.yml | 46 +++++++++---------- .../calibre-web/templates/calibre-web.conf.j2 | 8 ++-- .../templates/calibre-web.service.j2 | 6 +-- 5 files changed, 43 insertions(+), 43 deletions(-) diff --git a/roles/calibre-web/README.rst b/roles/calibre-web/README.rst index e9fe069c6..a75b466d2 100644 --- a/roles/calibre-web/README.rst +++ b/roles/calibre-web/README.rst @@ -50,7 +50,7 @@ Backup Content -------------- Calibre-web stores its configuration into SQLite database file /library/calibre-web/metadata.db. The content is stored in various folders under /library/calibre-web. Please backup the files before -upgrading. Also set calibre-web_provision varilable to False before upgrading. +upgrading. Also set calibre_web_provision varilable to False before upgrading. Known Issues ------------ diff --git a/roles/calibre-web/defaults/main.yml b/roles/calibre-web/defaults/main.yml index 22a84ef79..572bec913 100644 --- a/roles/calibre-web/defaults/main.yml +++ b/roles/calibre-web/defaults/main.yml @@ -2,24 +2,24 @@ # To override them edit /etc/iiab/local_vars.yml # Installation Variables -calibre-web_install: False -calibre-web_enabled: False +calibre_web_install: False +calibre_web_enabled: False # calibre-web folder to store its data and configuration files. -calibre-web_home: "{{ content_base }}/calibre-web" +calibre_web_home: "{{ content_base }}/calibre-web" -calibre-web_http_port: 8083 -calibre-web_url: /calibre-web -calibre-web_path: "{{ iiab_base }}/calibre-web" -calibre-web_exec_path: "{{ calibre-web_path }}/cps.py" +calibre_web_http_port: 8083 +calibre_web_url: /calibre-web +calibre_web_path: "{{ iiab_base }}/calibre-web" +calibre_web_exec_path: "{{ calibre_web_path }}/cps.py" # Calibre-web setup will be provisioned with default administration account, metadata.db and # language. You could turn this to 'False' while reinstalling/upgrading calibre-web. -calibre-web_provision: True +calibre_web_provision: True #calibre-web system user -calibre-web_user: root +calibre_web_user: root -# calibre-web admin account -# calibre-web_admin_user: admin -# calibre-web_admin_password: admin123 +# calibre_web admin account +# calibre_web_admin_user: admin +# calibre_web_admin_password: admin123 diff --git a/roles/calibre-web/tasks/main.yml b/roles/calibre-web/tasks/main.yml index 938e1c814..7c5eac4a8 100644 --- a/roles/calibre-web/tasks/main.yml +++ b/roles/calibre-web/tasks/main.yml @@ -1,34 +1,34 @@ - name: Create calibre-web folders to store data and configuration files. file: path: "{{ item }}" - owner: "{{ calibre-web_user }}" + owner: "{{ calibre_web_user }}" group: "{{ apache_user }}" mode: 0755 state: directory with_items: - - "{{ calibre-web_home }}" - - "{{ calibre-web_path }}" + - "{{ calibre_web_home }}" + - "{{ calibre_web_path }}" - name: Download calibre-web github repository. git: repo: https://github.com/janeczku/calibre-web.git - dest: "{{ calibre-web_path }}" + dest: "{{ calibre_web_path }}" update: yes version: master when: internet_available - name: Download calibre-web dependencies into vendor subdirectory. pip: - requirements: "{{ calibre-web_path }}/requirements.txt" + requirements: "{{ calibre_web_path }}/requirements.txt" extra_args: "--target vendor --no-cache-dir" - chdir: "{{ calibre-web_path }}" + chdir: "{{ calibre_web_path }}" - name: Create calibre-web systemd service unit and httpd2 configuration. template: src: "{{ item.src }}" dest: "{{ item.dest }}" mode: "{{ item.mode }}" - owner: "{{ calibre-web_user }}" + owner: "{{ calibre_web_user }}" group: "{{ apache_user }}" with_items: - { src: 'calibre-web.service.j2', dest: '/etc/systemd/system/calibre-web.service', mode: '0644' } @@ -39,11 +39,11 @@ src: "{{ item.src }}" dest: "{{ item.dest }}" mode: "{{ item.mode }}" - owner: "{{ calibre-web_user }}" + owner: "{{ calibre_web_user }}" group: "{{ apache_user }}" with_items: - - { src: 'metadata.db', dest: '{{ calibre-web_home }}/metadata.db', mode: '0644' } - when: calibre-web_provision + - { src: 'metadata.db', dest: '{{ calibre_web_home }}/metadata.db', mode: '0644' } + when: calibre_web_provision - name: Ask systemd to reread unit files (daemon-reload). systemd: @@ -54,30 +54,30 @@ name: calibre-web enabled: yes state: restarted - when: calibre-web_enabled + when: calibre_web_enabled - name: Enable calibre-web httpd2 site command: a2ensite calibre-web.conf - when: calibre-web_enabled + when: calibre_web_enabled - name: Restart Apache after enabling calibre-web httpd2 site. command: apachectl -k graceful - when: calibre-web_enabled + when: calibre_web_enabled - name: Disable calibre-web service. service: name: calibre-web enabled: no state: stopped - when: not calibre-web_enabled + when: not calibre_web_enabled - name: Disable calibre-web httpd2 site. command: a2dissite calibre-web.conf - when: not calibre-web_enabled + when: not calibre_web_enabled - name: Restart Apache after disabling calibre-web httpd2 site. command: apachectl -k graceful - when: not calibre-web_enabled + when: not calibre_web_enabled - name: Add 'calibre-web' to list of services at /etc/iiab/iiab.ini ini_file: @@ -90,13 +90,13 @@ value: calibre-web - option: description value: '"calibre-web is a web app providing a clean interface for browsing, reading and downloading eBooks."' - - option: calibre-web_url - value: "{{ calibre-web_url }}" + - option: calibre_web_url + value: "{{ calibre_web_url }}" - option: calibre-web_path - value: "{{ calibre-web_path }}" - - option: calibre-web_port - value: "{{ calibre-web_http_port }}" + value: "{{ calibre_web_path }}" + - option: calibre_web_port + value: "{{ calibre_web_http_port }}" - option: enabled - value: "{{ calibre-web_enabled }}" + value: "{{ calibre_web_enabled }}" - option: True - value: "{{ calibre-web_provision }}" + value: "{{ calibre_web_provision }}" diff --git a/roles/calibre-web/templates/calibre-web.conf.j2 b/roles/calibre-web/templates/calibre-web.conf.j2 index 5fdd07957..9ae8b2b66 100644 --- a/roles/calibre-web/templates/calibre-web.conf.j2 +++ b/roles/calibre-web/templates/calibre-web.conf.j2 @@ -1,8 +1,8 @@ - - RequestHeader set X-SCRIPT-NAME {{ calibre-web_url }} + + RequestHeader set X-SCRIPT-NAME {{ calibre_web_url }} RequestHeader set X-SCHEME http - ProxyPass http://localhost:{{ calibre-web_http_port }}/ - ProxyPassReverse http://localhost:{{ calibre-web_http_port }}/ + ProxyPass http://localhost:{{ calibre_web_http_port }}/ + ProxyPassReverse http://localhost:{{ calibre_web_http_port }}/ diff --git a/roles/calibre-web/templates/calibre-web.service.j2 b/roles/calibre-web/templates/calibre-web.service.j2 index 7df5304b4..7db241695 100644 --- a/roles/calibre-web/templates/calibre-web.service.j2 +++ b/roles/calibre-web/templates/calibre-web.service.j2 @@ -2,9 +2,9 @@ Description=Calibre-Web [Service] Type=simple -User={{ calibre-web_user }} -ExecStart=/usr/bin/python " {{ calibre-web_exec_path }} " -WorkingDirectory={{ calibre-web_path }} +User={{ calibre_web_user }} +ExecStart=/usr/bin/python " {{ calibre_web_exec_path }} " +WorkingDirectory={{ calibre_web_path }} [Install] WantedBy=multi-user.target From 8047a83a3723d0f5072d9972aafc765423080b3b Mon Sep 17 00:00:00 2001 From: Arky Date: Tue, 14 Aug 2018 11:45:20 +0700 Subject: [PATCH 06/67] Handle metadata.db creation with copy instead of template --- roles/calibre-web/{templates => files}/metadata.db | Bin roles/calibre-web/tasks/main.yml | 11 +++++------ 2 files changed, 5 insertions(+), 6 deletions(-) rename roles/calibre-web/{templates => files}/metadata.db (100%) diff --git a/roles/calibre-web/templates/metadata.db b/roles/calibre-web/files/metadata.db similarity index 100% rename from roles/calibre-web/templates/metadata.db rename to roles/calibre-web/files/metadata.db diff --git a/roles/calibre-web/tasks/main.yml b/roles/calibre-web/tasks/main.yml index 7c5eac4a8..7197104db 100644 --- a/roles/calibre-web/tasks/main.yml +++ b/roles/calibre-web/tasks/main.yml @@ -35,14 +35,13 @@ - { src: 'calibre-web.conf.j2', dest: '/etc/apache2/sites-available/calibre-web.conf', mode: '0644' } - name: Provision calibre-web with default administration account and database. - template: - src: "{{ item.src }}" - dest: "{{ item.dest }}" - mode: "{{ item.mode }}" + copy: + src: roles/calibre-web/files/metadata.db + dest: "{{ calibre-web_home }}" owner: "{{ calibre_web_user }}" group: "{{ apache_user }}" - with_items: - - { src: 'metadata.db', dest: '{{ calibre_web_home }}/metadata.db', mode: '0644' } + mode: 0644 + backup: yes when: calibre_web_provision - name: Ask systemd to reread unit files (daemon-reload). From 4012f2962318547af7bb96072832495d6d1b5420 Mon Sep 17 00:00:00 2001 From: Arky Date: Tue, 14 Aug 2018 12:10:58 +0700 Subject: [PATCH 07/67] Update Database --- roles/calibre-web/README.rst | 2 +- roles/calibre-web/defaults/main.yml | 2 +- roles/calibre-web/files/updated-metadata.db | Bin 0 -> 348160 bytes roles/calibre-web/tasks/main.yml | 4 ++-- 4 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 roles/calibre-web/files/updated-metadata.db diff --git a/roles/calibre-web/README.rst b/roles/calibre-web/README.rst index a75b466d2..198178fdd 100644 --- a/roles/calibre-web/README.rst +++ b/roles/calibre-web/README.rst @@ -16,7 +16,7 @@ To login to Calibre-web enter Username: admin - Password: admin123 + Password: changme Backend -------- diff --git a/roles/calibre-web/defaults/main.yml b/roles/calibre-web/defaults/main.yml index 572bec913..e2015e56a 100644 --- a/roles/calibre-web/defaults/main.yml +++ b/roles/calibre-web/defaults/main.yml @@ -22,4 +22,4 @@ calibre_web_user: root # calibre_web admin account # calibre_web_admin_user: admin -# calibre_web_admin_password: admin123 +# calibre_web_admin_password: changeme diff --git a/roles/calibre-web/files/updated-metadata.db b/roles/calibre-web/files/updated-metadata.db new file mode 100644 index 0000000000000000000000000000000000000000..828afa0ca8eca2e0370a1d628fa9ed646ccae857 GIT binary patch literal 348160 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 literal 0 HcmV?d00001 diff --git a/roles/calibre-web/tasks/main.yml b/roles/calibre-web/tasks/main.yml index 7197104db..836b57467 100644 --- a/roles/calibre-web/tasks/main.yml +++ b/roles/calibre-web/tasks/main.yml @@ -36,8 +36,8 @@ - name: Provision calibre-web with default administration account and database. copy: - src: roles/calibre-web/files/metadata.db - dest: "{{ calibre-web_home }}" + src: roles/calibre-web/files/updated-metadata.db + dest: "{{ calibre-web_home }}/metadata.db" owner: "{{ calibre_web_user }}" group: "{{ apache_user }}" mode: 0644 From d940ed653232f16a45479fc14e8da39d00fd4f8e Mon Sep 17 00:00:00 2001 From: Arky Date: Tue, 14 Aug 2018 12:47:13 +0700 Subject: [PATCH 08/67] Use command module instead of vendor --- roles/calibre-web/defaults/main.yml | 2 +- roles/calibre-web/tasks/main.yml | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/roles/calibre-web/defaults/main.yml b/roles/calibre-web/defaults/main.yml index e2015e56a..7f42cbd00 100644 --- a/roles/calibre-web/defaults/main.yml +++ b/roles/calibre-web/defaults/main.yml @@ -11,7 +11,7 @@ calibre_web_home: "{{ content_base }}/calibre-web" calibre_web_http_port: 8083 calibre_web_url: /calibre-web calibre_web_path: "{{ iiab_base }}/calibre-web" -calibre_web_exec_path: "{{ calibre_web_path }}/cps.py" +calibre_web_exec_path: "{{ calibre_web_path }}/cps.py" # Calibre-web setup will be provisioned with default administration account, metadata.db and # language. You could turn this to 'False' while reinstalling/upgrading calibre-web. diff --git a/roles/calibre-web/tasks/main.yml b/roles/calibre-web/tasks/main.yml index 836b57467..aa8c18d4c 100644 --- a/roles/calibre-web/tasks/main.yml +++ b/roles/calibre-web/tasks/main.yml @@ -18,9 +18,8 @@ when: internet_available - name: Download calibre-web dependencies into vendor subdirectory. - pip: - requirements: "{{ calibre_web_path }}/requirements.txt" - extra_args: "--target vendor --no-cache-dir" + command: pip install --target vendor -r ./requirements.txt + args: chdir: "{{ calibre_web_path }}" - name: Create calibre-web systemd service unit and httpd2 configuration. From 9160d76492ee437c1572a35a1665e387d199e1c9 Mon Sep 17 00:00:00 2001 From: Arky Date: Tue, 14 Aug 2018 13:08:37 +0700 Subject: [PATCH 09/67] Refactor all cablibre-web variables to separte them from calibre --- roles/calibre-web/README.rst | 4 +- roles/calibre-web/defaults/main.yml | 24 +++++----- roles/calibre-web/tasks/main.yml | 46 +++++++++---------- .../calibre-web/templates/calibre-web.conf.j2 | 8 ++-- .../templates/calibre-web.service.j2 | 6 +-- 5 files changed, 44 insertions(+), 44 deletions(-) diff --git a/roles/calibre-web/README.rst b/roles/calibre-web/README.rst index 198178fdd..7f2c8adf3 100644 --- a/roles/calibre-web/README.rst +++ b/roles/calibre-web/README.rst @@ -38,7 +38,7 @@ under admin panel. Upgrading --------- Reinstalling Calibre-web automatically upgrades to the latest version. Please backup your configuration -before reinstalling. To retain your configuration set calibre-web_provision variable to False. +before reinstalling. To retain your configuration set calibreweb_provision variable to False. You can manually upgrade while following commands: @@ -50,7 +50,7 @@ Backup Content -------------- Calibre-web stores its configuration into SQLite database file /library/calibre-web/metadata.db. The content is stored in various folders under /library/calibre-web. Please backup the files before -upgrading. Also set calibre_web_provision varilable to False before upgrading. +upgrading. Also set calibreweb_provision variable to False before upgrading. Known Issues ------------ diff --git a/roles/calibre-web/defaults/main.yml b/roles/calibre-web/defaults/main.yml index 7f42cbd00..4d8356d7a 100644 --- a/roles/calibre-web/defaults/main.yml +++ b/roles/calibre-web/defaults/main.yml @@ -2,24 +2,24 @@ # To override them edit /etc/iiab/local_vars.yml # Installation Variables -calibre_web_install: False -calibre_web_enabled: False +calibreweb_install: False +calibreweb_enabled: False # calibre-web folder to store its data and configuration files. -calibre_web_home: "{{ content_base }}/calibre-web" +calibreweb_home: "{{ content_base }}/calibre-web" -calibre_web_http_port: 8083 -calibre_web_url: /calibre-web -calibre_web_path: "{{ iiab_base }}/calibre-web" -calibre_web_exec_path: "{{ calibre_web_path }}/cps.py" +calibreweb_port: 8083 +calibreweb_url: /calibre-web +calibreweb_path: "{{ iiab_base }}/calibre-web" +calibreweb_exec_path: "{{ calibreweb_path }}/cps.py" # Calibre-web setup will be provisioned with default administration account, metadata.db and # language. You could turn this to 'False' while reinstalling/upgrading calibre-web. -calibre_web_provision: True +calibreweb_provision: True #calibre-web system user -calibre_web_user: root +calibreweb_user: root -# calibre_web admin account -# calibre_web_admin_user: admin -# calibre_web_admin_password: changeme +# calibreweb admin account +# calibreweb_admin_user: admin +# calibreweb_admin_password: changeme diff --git a/roles/calibre-web/tasks/main.yml b/roles/calibre-web/tasks/main.yml index aa8c18d4c..1b2fb2b71 100644 --- a/roles/calibre-web/tasks/main.yml +++ b/roles/calibre-web/tasks/main.yml @@ -1,18 +1,18 @@ - name: Create calibre-web folders to store data and configuration files. file: path: "{{ item }}" - owner: "{{ calibre_web_user }}" + owner: "{{ calibreweb_user }}" group: "{{ apache_user }}" mode: 0755 state: directory with_items: - - "{{ calibre_web_home }}" - - "{{ calibre_web_path }}" + - "{{ calibreweb_home }}" + - "{{ calibreweb_path }}" - name: Download calibre-web github repository. git: repo: https://github.com/janeczku/calibre-web.git - dest: "{{ calibre_web_path }}" + dest: "{{ calibreweb_path }}" update: yes version: master when: internet_available @@ -20,14 +20,14 @@ - name: Download calibre-web dependencies into vendor subdirectory. command: pip install --target vendor -r ./requirements.txt args: - chdir: "{{ calibre_web_path }}" + chdir: "{{ calibreweb_path }}" - name: Create calibre-web systemd service unit and httpd2 configuration. template: src: "{{ item.src }}" dest: "{{ item.dest }}" mode: "{{ item.mode }}" - owner: "{{ calibre_web_user }}" + owner: "{{ calibreweb_user }}" group: "{{ apache_user }}" with_items: - { src: 'calibre-web.service.j2', dest: '/etc/systemd/system/calibre-web.service', mode: '0644' } @@ -36,12 +36,12 @@ - name: Provision calibre-web with default administration account and database. copy: src: roles/calibre-web/files/updated-metadata.db - dest: "{{ calibre-web_home }}/metadata.db" - owner: "{{ calibre_web_user }}" + dest: "{{ calibreweb_home }}/metadata.db" + owner: "{{ calibreweb_user }}" group: "{{ apache_user }}" mode: 0644 backup: yes - when: calibre_web_provision + when: calibreweb_provision - name: Ask systemd to reread unit files (daemon-reload). systemd: @@ -52,30 +52,30 @@ name: calibre-web enabled: yes state: restarted - when: calibre_web_enabled + when: calibreweb_enabled - name: Enable calibre-web httpd2 site command: a2ensite calibre-web.conf - when: calibre_web_enabled + when: calibreweb_enabled - name: Restart Apache after enabling calibre-web httpd2 site. command: apachectl -k graceful - when: calibre_web_enabled + when: calibreweb_enabled - name: Disable calibre-web service. service: name: calibre-web enabled: no state: stopped - when: not calibre_web_enabled + when: not calibreweb_enabled - name: Disable calibre-web httpd2 site. command: a2dissite calibre-web.conf - when: not calibre_web_enabled + when: not calibreweb_enabled - name: Restart Apache after disabling calibre-web httpd2 site. command: apachectl -k graceful - when: not calibre_web_enabled + when: not calibreweb_enabled - name: Add 'calibre-web' to list of services at /etc/iiab/iiab.ini ini_file: @@ -88,13 +88,13 @@ value: calibre-web - option: description value: '"calibre-web is a web app providing a clean interface for browsing, reading and downloading eBooks."' - - option: calibre_web_url - value: "{{ calibre_web_url }}" - - option: calibre-web_path - value: "{{ calibre_web_path }}" - - option: calibre_web_port - value: "{{ calibre_web_http_port }}" + - option: calibreweb_url + value: "{{ calibreweb_url }}" + - option: calibreweb_path + value: "{{ calibreweb_path }}" + - option: calibreweb_port + value: "{{ calibreweb_port }}" - option: enabled - value: "{{ calibre_web_enabled }}" + value: "{{ calibreweb_enabled }}" - option: True - value: "{{ calibre_web_provision }}" + value: "{{ calibreweb_provision }}" diff --git a/roles/calibre-web/templates/calibre-web.conf.j2 b/roles/calibre-web/templates/calibre-web.conf.j2 index 9ae8b2b66..33a95a950 100644 --- a/roles/calibre-web/templates/calibre-web.conf.j2 +++ b/roles/calibre-web/templates/calibre-web.conf.j2 @@ -1,8 +1,8 @@ - - RequestHeader set X-SCRIPT-NAME {{ calibre_web_url }} + + RequestHeader set X-SCRIPT-NAME {{ calibreweb_url }} RequestHeader set X-SCHEME http - ProxyPass http://localhost:{{ calibre_web_http_port }}/ - ProxyPassReverse http://localhost:{{ calibre_web_http_port }}/ + ProxyPass http://localhost:{{ calibreweb_port }}/ + ProxyPassReverse http://localhost:{{ calibreweb_port }}/ diff --git a/roles/calibre-web/templates/calibre-web.service.j2 b/roles/calibre-web/templates/calibre-web.service.j2 index 7db241695..6cc66bedd 100644 --- a/roles/calibre-web/templates/calibre-web.service.j2 +++ b/roles/calibre-web/templates/calibre-web.service.j2 @@ -2,9 +2,9 @@ Description=Calibre-Web [Service] Type=simple -User={{ calibre_web_user }} -ExecStart=/usr/bin/python " {{ calibre_web_exec_path }} " -WorkingDirectory={{ calibre_web_path }} +User={{ calibreweb_user }} +ExecStart=/usr/bin/python " {{ calibreweb_exec_path }} " +WorkingDirectory={{ calibreweb_path }} [Install] WantedBy=multi-user.target From b804b118b72ce4f1b14058c60f7121eaceba1103 Mon Sep 17 00:00:00 2001 From: Arky Date: Tue, 14 Aug 2018 13:29:18 +0700 Subject: [PATCH 10/67] Remove extranous spaces from calibreweb.service file --- roles/calibre-web/templates/calibre-web.service.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/calibre-web/templates/calibre-web.service.j2 b/roles/calibre-web/templates/calibre-web.service.j2 index 6cc66bedd..53632487b 100644 --- a/roles/calibre-web/templates/calibre-web.service.j2 +++ b/roles/calibre-web/templates/calibre-web.service.j2 @@ -3,7 +3,7 @@ Description=Calibre-Web [Service] Type=simple User={{ calibreweb_user }} -ExecStart=/usr/bin/python " {{ calibreweb_exec_path }} " +ExecStart=/usr/bin/python "{{ calibreweb_exec_path }}" WorkingDirectory={{ calibreweb_path }} [Install] From f8dc5c1b85b4272aeb777b2e98bd1c8c81a17a19 Mon Sep 17 00:00:00 2001 From: Arky Date: Tue, 14 Aug 2018 19:33:04 +0700 Subject: [PATCH 11/67] [Untested] Automatic provisioning with 'app.db' --- roles/calibre-web/README.rst | 4 ++-- roles/calibre-web/defaults/main.yml | 1 + roles/calibre-web/files/app.db | Bin 0 -> 49152 bytes roles/calibre-web/tasks/main.yml | 4 ++-- .../templates/calibre-web.service.j2 | 2 +- 5 files changed, 6 insertions(+), 5 deletions(-) create mode 100644 roles/calibre-web/files/app.db diff --git a/roles/calibre-web/README.rst b/roles/calibre-web/README.rst index 7f2c8adf3..c1b9a0b0b 100644 --- a/roles/calibre-web/README.rst +++ b/roles/calibre-web/README.rst @@ -1,5 +1,5 @@ ==================== -Calibre Web README +Calibre-web README ==================== This Ansible role installs Calibre Web within Internet-in-a-Box. Calibre Web is @@ -48,7 +48,7 @@ $ sudo git pull Backup Content -------------- -Calibre-web stores its configuration into SQLite database file /library/calibre-web/metadata.db. +Calibre-web stores its configuration into SQLite database file /library/calibre-web/app.db. The content is stored in various folders under /library/calibre-web. Please backup the files before upgrading. Also set calibreweb_provision variable to False before upgrading. diff --git a/roles/calibre-web/defaults/main.yml b/roles/calibre-web/defaults/main.yml index 4d8356d7a..bdc355ca1 100644 --- a/roles/calibre-web/defaults/main.yml +++ b/roles/calibre-web/defaults/main.yml @@ -16,6 +16,7 @@ calibreweb_exec_path: "{{ calibreweb_path }}/cps.py" # Calibre-web setup will be provisioned with default administration account, metadata.db and # language. You could turn this to 'False' while reinstalling/upgrading calibre-web. calibreweb_provision: True +calibreweb_database: "{{ calibreweb_path }}/app.db" #calibre-web system user calibreweb_user: root diff --git a/roles/calibre-web/files/app.db b/roles/calibre-web/files/app.db new file mode 100644 index 0000000000000000000000000000000000000000..433744ef65e2ab0889a8b07a19919bcba40bcb8e GIT binary patch literal 49152 zcmeI*Z*SW~90zbaX`8rhFbJjy!8B8lnrduq)Bk|bLhE%ES<2EDGzsB3@g=e9*ui$z zPO6Z)0S|b}`#`(}UIh=~3C}=C@PI!;g1d{I*p1u45E5#?(ULfKXW#ukcV|0Jn(f>v zn?6w*j@#CKWkGma5JlmJq6mVpNbi&M9^NMC!btdnK8um%(-s$n>o0zpqq!65hLCPN zH7$QFf00|6d@%9V_^pYLq&wMz(^f?~1kQ`VXHSWl{N>By=Z>$}EaDO0H|?euKBv~J zYH3$hc1v%SRV7SS3geP#C|i|XbyKY>mF-=nvR5v@s*Fo*-Ly21xc7;xyj!ZS-zru6 z$sNb_!4iXt+*0npk)2hS}8Wx@Fc} zq8VnaJwfit7KJMj*Ke2>N!Z>#d2mWjSknQiX};+vu3dASeNXEUSL^6a6150wc6Hlu z+8QsHludL)t24soRcSbDaZ^ zB;|IxHOs8CYLjve($Kq>uelBdiS}`@?J(bKIR{Dky%OShZEqv3fS$EE_2K^?5+lD6X$ ztv6nWs}5RcxU}!Q7DA$3G*>iXMCA!yW4=WbP$0&U6sOhVyUSDaNa-YJ8U z<1@$aO=R*{uZj-|-yt#*&1(^>p;@NAf8yn2Z1;E~^NhVDFFDwQvZ$x%PK~%zAv#Oq z)kYJNv~F%!)ve766D;r*W|XRWQ?06%b#+JSZGy?t$o%n4er85|^ztAwHYf*y^c-X-Z(Yt<& z?o{@PJ(M8Df*;C0BmTig!)aGo<)bt~fle~BVUidFIqaCO?wgLSY|x|b?$&LUje{he zy~@^|Jyj_Ts^k?#N5kJm>$fDTR+7f@d$Xco+6FoFKD6kmxJK)8_-opKe3v(+C z8b4mjWb#+8h!58|yx|>%Uy7qT(ve)1W>3G*g_Hp%O6!_ay1`dB8P&x;TDc)R%& z;t!cvdxNQU>Y0$Ow_`^OIyQTU%IJ*#4_e!0^bI~A6LaG;hLDe_R{83Dwlg%6tl;&C`nl{mCFi3Hk+e2b}8aIIn>)7 zi(Ice?dMs-jYvZKL3km9UFc)E^rFcdCriCK%RW%k-3PP52VU3c2VPe`U+-P!XD{9u z`Jhlb+HH}el6|y6+@lSX9Bt?xUAB)@livwjpf5K_o8CSCs?8t0nfJY`&!sYdviJWf zxh}|`(g)li009U<00Izz00bZa0SG_<0uXpoftON~LjJOt%RQ5NR?2R6iRatSjo!B& zh@JUUx2!`kC**Ufg!(q;y{7*B?^Z zbY9|D8G7&ke-z|DEk#ox009U<00Izz00bZa0SG_<0uXp|fywk`G5qpDDxJWg|4op8JCD&JCI~ Date: Tue, 14 Aug 2018 21:22:46 +0700 Subject: [PATCH 12/67] [Untested] Adding settings database via CALIBRE_DBPATH envirnoment variable --- roles/calibre-web/defaults/main.yml | 2 +- roles/calibre-web/templates/calibre-web.service.j2 | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/roles/calibre-web/defaults/main.yml b/roles/calibre-web/defaults/main.yml index bdc355ca1..701fd5d7d 100644 --- a/roles/calibre-web/defaults/main.yml +++ b/roles/calibre-web/defaults/main.yml @@ -16,7 +16,7 @@ calibreweb_exec_path: "{{ calibreweb_path }}/cps.py" # Calibre-web setup will be provisioned with default administration account, metadata.db and # language. You could turn this to 'False' while reinstalling/upgrading calibre-web. calibreweb_provision: True -calibreweb_database: "{{ calibreweb_path }}/app.db" +calibreweb_database: app.db #calibre-web system user calibreweb_user: root diff --git a/roles/calibre-web/templates/calibre-web.service.j2 b/roles/calibre-web/templates/calibre-web.service.j2 index e4ed71ec5..702297c4a 100644 --- a/roles/calibre-web/templates/calibre-web.service.j2 +++ b/roles/calibre-web/templates/calibre-web.service.j2 @@ -2,8 +2,9 @@ Description=Calibre-Web [Service] Type=simple +Environment=CALIBRE_DBPATH={{ calibreweb_home }} User={{ calibreweb_user }} -ExecStart={{ calibreweb_exec_path }} -p {{ calibreweb_database }} +ExecStart={{ calibreweb_exec_path }} -p {{calibreweb_home}}{{ calibreweb_database }} WorkingDirectory={{ calibreweb_path }} [Install] From 9388159ca0d4acc9ce7cce185d64c0d5e456b8cf Mon Sep 17 00:00:00 2001 From: Arky Date: Tue, 14 Aug 2018 21:48:54 +0700 Subject: [PATCH 13/67] [Untested]Use calibreweb_database name instead of hardcoded database name --- roles/calibre-web/tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/calibre-web/tasks/main.yml b/roles/calibre-web/tasks/main.yml index f9151cbde..4f3b169a5 100644 --- a/roles/calibre-web/tasks/main.yml +++ b/roles/calibre-web/tasks/main.yml @@ -36,7 +36,7 @@ - name: Provision calibre-web with default administration account and database. copy: src: roles/calibre-web/files/app.db - dest: "{{ calibreweb_home }}/app.db" + dest: "{{ calibreweb_home }}/{{ calibreweb_database }}" owner: "{{ calibreweb_user }}" group: "{{ apache_user }}" mode: 0644 From a4fe6338cf58c6caf022bc107150c89f083b3e43 Mon Sep 17 00:00:00 2001 From: Arky Date: Wed, 15 Aug 2018 14:07:09 +0700 Subject: [PATCH 14/67] Remove old Database files --- roles/calibre-web/files/app.db | Bin 49152 -> 0 bytes roles/calibre-web/files/metadata.db | Bin 348160 -> 0 bytes roles/calibre-web/files/updated-metadata.db | Bin 348160 -> 0 bytes .../templates/calibre-web.service.j2 | 3 ++- 4 files changed, 2 insertions(+), 1 deletion(-) delete mode 100644 roles/calibre-web/files/app.db delete mode 100644 roles/calibre-web/files/metadata.db delete mode 100644 roles/calibre-web/files/updated-metadata.db diff --git a/roles/calibre-web/files/app.db b/roles/calibre-web/files/app.db deleted file mode 100644 index 433744ef65e2ab0889a8b07a19919bcba40bcb8e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49152 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 diff --git a/roles/calibre-web/files/updated-metadata.db b/roles/calibre-web/files/updated-metadata.db deleted file mode 100644 index 828afa0ca8eca2e0370a1d628fa9ed646ccae857..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 348160 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 diff --git a/roles/calibre-web/templates/calibre-web.service.j2 b/roles/calibre-web/templates/calibre-web.service.j2 index 702297c4a..ea422283b 100644 --- a/roles/calibre-web/templates/calibre-web.service.j2 +++ b/roles/calibre-web/templates/calibre-web.service.j2 @@ -3,8 +3,9 @@ Description=Calibre-Web [Service] Type=simple Environment=CALIBRE_DBPATH={{ calibreweb_home }} +Environment=ARGS=-p {{calibreweb_home}}{{ calibreweb_database }} User={{ calibreweb_user }} -ExecStart={{ calibreweb_exec_path }} -p {{calibreweb_home}}{{ calibreweb_database }} +ExecStart={{ calibreweb_exec_path }} $ARGS WorkingDirectory={{ calibreweb_path }} [Install] From 1ac0275c74e28e880c08df781a576b88e7ab3e41 Mon Sep 17 00:00:00 2001 From: Arky Date: Wed, 15 Aug 2018 14:10:55 +0700 Subject: [PATCH 15/67] Updated Systemd unit, use metadata.db as default --- roles/calibre-web/defaults/main.yml | 2 +- roles/calibre-web/tasks/main.yml | 2 +- roles/calibre-web/templates/calibre-web.service.j2 | 3 +-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/roles/calibre-web/defaults/main.yml b/roles/calibre-web/defaults/main.yml index 701fd5d7d..6855c9912 100644 --- a/roles/calibre-web/defaults/main.yml +++ b/roles/calibre-web/defaults/main.yml @@ -16,7 +16,7 @@ calibreweb_exec_path: "{{ calibreweb_path }}/cps.py" # Calibre-web setup will be provisioned with default administration account, metadata.db and # language. You could turn this to 'False' while reinstalling/upgrading calibre-web. calibreweb_provision: True -calibreweb_database: app.db +calibreweb_database: metadata.db #calibre-web system user calibreweb_user: root diff --git a/roles/calibre-web/tasks/main.yml b/roles/calibre-web/tasks/main.yml index 4f3b169a5..3abf806fa 100644 --- a/roles/calibre-web/tasks/main.yml +++ b/roles/calibre-web/tasks/main.yml @@ -35,7 +35,7 @@ - name: Provision calibre-web with default administration account and database. copy: - src: roles/calibre-web/files/app.db + src: roles/calibre-web/files/metadata.db dest: "{{ calibreweb_home }}/{{ calibreweb_database }}" owner: "{{ calibreweb_user }}" group: "{{ apache_user }}" diff --git a/roles/calibre-web/templates/calibre-web.service.j2 b/roles/calibre-web/templates/calibre-web.service.j2 index ea422283b..be1a98678 100644 --- a/roles/calibre-web/templates/calibre-web.service.j2 +++ b/roles/calibre-web/templates/calibre-web.service.j2 @@ -3,9 +3,8 @@ Description=Calibre-Web [Service] Type=simple Environment=CALIBRE_DBPATH={{ calibreweb_home }} -Environment=ARGS=-p {{calibreweb_home}}{{ calibreweb_database }} User={{ calibreweb_user }} -ExecStart={{ calibreweb_exec_path }} $ARGS +ExecStart=/usr/bin/python {{ calibreweb_exec_path }} WorkingDirectory={{ calibreweb_path }} [Install] From 2d15cea37cb5ad37d5fbd115db34c3aae2b708b0 Mon Sep 17 00:00:00 2001 From: Arky Date: Wed, 15 Aug 2018 14:13:47 +0700 Subject: [PATCH 16/67] Adding a pre-provisioned metadata.db file --- roles/calibre-web/files/metadata.db | Bin 0 -> 397312 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 roles/calibre-web/files/metadata.db diff --git a/roles/calibre-web/files/metadata.db b/roles/calibre-web/files/metadata.db new file mode 100644 index 0000000000000000000000000000000000000000..a551bcaf4dc1e13db4b012a243a163790ce27e4c GIT binary patch literal 397312 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 Q0w4eaAOHd&(1F1J2MeQte*gdg literal 0 HcmV?d00001 From 38b71f274db6676c4b0349777db7533fd97e17b7 Mon Sep 17 00:00:00 2001 From: Arky Date: Wed, 15 Aug 2018 17:40:03 +0700 Subject: [PATCH 17/67] Adding cps.conf to encapsulate the variables in systemd unit --- roles/calibre-web/tasks/main.yml | 2 ++ roles/calibre-web/templates/calibre-web.service.j2 | 4 ++-- roles/calibre-web/templates/cps.conf.j2 | 2 ++ 3 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 roles/calibre-web/templates/cps.conf.j2 diff --git a/roles/calibre-web/tasks/main.yml b/roles/calibre-web/tasks/main.yml index 3abf806fa..e5f169441 100644 --- a/roles/calibre-web/tasks/main.yml +++ b/roles/calibre-web/tasks/main.yml @@ -32,6 +32,8 @@ with_items: - { src: 'calibre-web.service.j2', dest: '/etc/systemd/system/calibre-web.service', mode: '0644' } - { src: 'calibre-web.conf.j2', dest: '/etc/apache2/sites-available/calibre-web.conf', mode: '0644' } + - { src: 'cps.conf.j2', dest: "{{ calibreweb_home }}/cps.conf" , mode: '0644' } + - name: Provision calibre-web with default administration account and database. copy: diff --git a/roles/calibre-web/templates/calibre-web.service.j2 b/roles/calibre-web/templates/calibre-web.service.j2 index be1a98678..e96bd2781 100644 --- a/roles/calibre-web/templates/calibre-web.service.j2 +++ b/roles/calibre-web/templates/calibre-web.service.j2 @@ -2,9 +2,9 @@ Description=Calibre-Web [Service] Type=simple -Environment=CALIBRE_DBPATH={{ calibreweb_home }} User={{ calibreweb_user }} -ExecStart=/usr/bin/python {{ calibreweb_exec_path }} +EnvironmentFile={{ calibreweb_home }}/cps.conf +ExecStart=/usr/bin/python {{ calibreweb_exec_path }} $ARG1 $ARG2 WorkingDirectory={{ calibreweb_path }} [Install] diff --git a/roles/calibre-web/templates/cps.conf.j2 b/roles/calibre-web/templates/cps.conf.j2 new file mode 100644 index 000000000..46ac3cc7b --- /dev/null +++ b/roles/calibre-web/templates/cps.conf.j2 @@ -0,0 +1,2 @@ +ARG1 = -p +ARG2 = {{ calibreweb_home }}/{{ calibreweb_database }} From 5728ceb40116d9388efba623db9535f0de2fe1f4 Mon Sep 17 00:00:00 2001 From: Arky Date: Wed, 15 Aug 2018 20:35:10 +0700 Subject: [PATCH 18/67] Updated readme file --- roles/calibre-web/README.rst | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/roles/calibre-web/README.rst b/roles/calibre-web/README.rst index c1b9a0b0b..c61bbef58 100644 --- a/roles/calibre-web/README.rst +++ b/roles/calibre-web/README.rst @@ -18,6 +18,13 @@ To login to Calibre-web enter Password: changme +When a configuration is not found calibre-web uses its default administration credentials. + + Username: admin + + Password: admin123 + + Backend -------- You can manage the backend Calibre-web server manually with the following commands: @@ -35,6 +42,8 @@ Configuration You can login using the default administration account. Then select "Configuration" under admin panel. +The default database path is /library/calibre-web/ + Upgrading --------- Reinstalling Calibre-web automatically upgrades to the latest version. Please backup your configuration From cbabd23a82beb8f361601f1587401f01e32e5a2b Mon Sep 17 00:00:00 2001 From: Arky Date: Wed, 15 Aug 2018 20:45:51 +0700 Subject: [PATCH 19/67] Correct Variables and add tasks for future --- roles/calibre-web/README.rst | 2 +- roles/calibre-web/defaults/main.yml | 2 +- roles/calibre-web/tasks/main.yml | 16 ++++++++++++---- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/roles/calibre-web/README.rst b/roles/calibre-web/README.rst index c61bbef58..43afa6e60 100644 --- a/roles/calibre-web/README.rst +++ b/roles/calibre-web/README.rst @@ -14,7 +14,7 @@ This is front-end application running under Apache2 httpd. To login to Calibre-web enter - Username: admin + Username: Admin Password: changme diff --git a/roles/calibre-web/defaults/main.yml b/roles/calibre-web/defaults/main.yml index 6855c9912..e7ecda429 100644 --- a/roles/calibre-web/defaults/main.yml +++ b/roles/calibre-web/defaults/main.yml @@ -22,5 +22,5 @@ calibreweb_database: metadata.db calibreweb_user: root # calibreweb admin account -# calibreweb_admin_user: admin +# calibreweb_admin_user: Admin # calibreweb_admin_password: changeme diff --git a/roles/calibre-web/tasks/main.yml b/roles/calibre-web/tasks/main.yml index e5f169441..86d5d6161 100644 --- a/roles/calibre-web/tasks/main.yml +++ b/roles/calibre-web/tasks/main.yml @@ -9,14 +9,17 @@ - "{{ calibreweb_home }}" - "{{ calibreweb_path }}" +## TODO: Calibre-web future release might get into pypi https://github.com/janeczku/calibre-web/issues/456 - name: Download calibre-web github repository. git: repo: https://github.com/janeczku/calibre-web.git dest: "{{ calibreweb_path }}" update: yes + depth: 1 version: master when: internet_available +## TODO: Use Ansible native pip module for this. How do you use --target vendor ? - name: Download calibre-web dependencies into vendor subdirectory. command: pip install --target vendor -r ./requirements.txt args: @@ -52,14 +55,14 @@ - name: Enable calibre-web service. service: name: calibre-web - enabled: yes - state: restarted + daemon_reload: yes when: calibreweb_enabled - name: Enable calibre-web httpd2 site command: a2ensite calibre-web.conf when: calibreweb_enabled +# TODO: Use Systemd service daemon_reload instead? - name: Restart Apache after enabling calibre-web httpd2 site. command: apachectl -k graceful when: calibreweb_enabled @@ -75,6 +78,7 @@ command: a2dissite calibre-web.conf when: not calibreweb_enabled +# TODO: Use Systemd service daemon_reload instead? - name: Restart Apache after disabling calibre-web httpd2 site. command: apachectl -k graceful when: not calibreweb_enabled @@ -94,9 +98,13 @@ value: "{{ calibreweb_url }}" - option: calibreweb_path value: "{{ calibreweb_path }}" + - option: calibreweb_home + value: "{{ calibreweb_home }}" - option: calibreweb_port value: "{{ calibreweb_port }}" - - option: enabled + - option: calibreweb_database + value: "{{ calibreweb_database }}" + - option: calibreweb_enabled value: "{{ calibreweb_enabled }}" - - option: True + - option: calibreweb_provision value: "{{ calibreweb_provision }}" From 416a36bbf326f23c27a1343bf29100aa98fce8b9 Mon Sep 17 00:00:00 2001 From: Arky Date: Thu, 16 Aug 2018 16:06:04 +0700 Subject: [PATCH 20/67] Correct Variables and add tasks for future --- roles/calibre-web/tasks/main.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/roles/calibre-web/tasks/main.yml b/roles/calibre-web/tasks/main.yml index 86d5d6161..69a246b78 100644 --- a/roles/calibre-web/tasks/main.yml +++ b/roles/calibre-web/tasks/main.yml @@ -55,7 +55,8 @@ - name: Enable calibre-web service. service: name: calibre-web - daemon_reload: yes + enabled: yes + state: reloaded when: calibreweb_enabled - name: Enable calibre-web httpd2 site From 039c1b4c110886e1726243dd4d1e63cfc76d1344 Mon Sep 17 00:00:00 2001 From: Arky Date: Sun, 26 Aug 2018 13:57:58 +0700 Subject: [PATCH 21/67] Adding the default calibre files Adding 'metadata.db' 'metadata_db_prefs_backup.json' from https://github.com/Technosoft2000/docker-calibre-web repo. --- roles/calibre-web/files/metadata.db | Bin 397312 -> 348160 bytes .../files/metadata_db_prefs_backup.json | 566 ++++++++++++++++++ 2 files changed, 566 insertions(+) create mode 100644 roles/calibre-web/files/metadata_db_prefs_backup.json diff --git a/roles/calibre-web/files/metadata.db b/roles/calibre-web/files/metadata.db index a551bcaf4dc1e13db4b012a243a163790ce27e4c..828afa0ca8eca2e0370a1d628fa9ed646ccae857 100644 GIT binary patch delta 349 zcmZozAknZubb_=X7Xt%BC=kOy+(aE?T`mUQzlE$oArAfQZSGdnQu=Bwp-%pJpRKhaTcd#xO6Gb3{|Q`YqTYOM0x?+UW+ z=ip#CB<*X?(XKx|kcm}d`t%rP{^mH1P%+A`&1mRfuP#A@yNH6%wGnARZ@9% z&bjBF^PTgZdoNxczIb)p2P1<+1VQldvHnUQ?wZ&=MC{rA6$M2>`X*AmO8-OOr~jh= zr2n9QqgUx)=$pQOJs$52xlAr!8yuJ*uPu{X`$N!lQiHFYxUfoJUZqL+c;MrOkFT{# zQ#(fd83^Bb?+hadjI(?zi*x)Mu^ZSJBV$%(Z_5R>FO{|63 z(AMDH;9Zme0c}>U3=Vv^w8l_B1$+eIjX=MTds{D#P?3)#6t#3KMqMD6W=5#X59GjS8nW@C#G|O}- znP?~|6q!_JiapBam`rwx$xNryyO>ZATefvbG$t!Wpy*?kJ(A&lor06O)QLpy40D`4 z!$gH*3>h8C=GfHH43b6hf*6xykFYs5lVm3u!v(Sp#pbj*!XJ*s$c3lcxha4zwo}vX z&o|enX6qg;vxW*3&Yi5Fa>yBTIGatgi401^NKNmZo9V`t9g^8VB#*JlssBW`QD<1keUThe&|4bwS}ZL6(@8U~^5SPOxo&-1tmqQZG-lOtih{x|aCA zuob>>fo0?<=>5uq@2o#OJWO7yVqB06J*QoGAjt+;NJ63NtZVeZvzThexnvQ2d|w<( z6^OmUNw)XUKO#XjD-RAX$dg^ zSYpm!V>8{}%{flquQzdrUYRf$1~g5O%BpJqo^n;hl5S8H1RVzp2Zxsh6-ok%b&;#f zisnoW8^bblsw%o_gB7A&7Nia*&_|cDVe^tA*PPZ6+mcY`V9|s;gu18;u82%^XGqp6 zplBtbU2c?vse***p|Q4Vf;^`QTE}YLhzHRXP9Jyx*HK?M3T^sVc&RAYIBeHVjcx}8 zS!~p#E?T@TJju)8Y$p~v1Or0KiC`AE(Ka`3)X|{;tM4j>spKVD$}4hHb(6@{8p9Or z+ik5u23_M6xr2k|a*Hi$MQ(O;V5FH9k(bm#fGZm_=@P3 zrLGGO?`r5czAki5Wzz|a%weN~f&%O*?+C>`TsVy{t1w_={y5BFs684P-?8DIki;5< zXnl{`x;n2_x`1Ia!Kpc^ceyE>1IoszqlE22g~E0lyYSw~&}@w2V+QhV(@?B+a4)se RdYYkD7US{7_`o6){}1zON1gxx diff --git a/roles/calibre-web/files/metadata_db_prefs_backup.json b/roles/calibre-web/files/metadata_db_prefs_backup.json new file mode 100644 index 000000000..a6b74b252 --- /dev/null +++ b/roles/calibre-web/files/metadata_db_prefs_backup.json @@ -0,0 +1,566 @@ +{ + "tag_browser_hidden_categories": [], + "library_view books view state": { + "column_positions": { + "languages": 11, + "publisher": 8, + "pubdate": 9, + "rating": 5, + "title": 1, + "tags": 6, + "series": 7, + "timestamp": 3, + "authors": 2, + "ondevice": 0, + "size": 4, + "last_modified": 10 + }, + "last_modified_injected": true, + "column_sizes": { + "languages": 0, + "publisher": 62, + "pubdate": 105, + "rating": 86, + "title": 51, + "tags": 100, + "series": 52, + "timestamp": 76, + "authors": 78, + "last_modified": 0, + "size": 88 + }, + "sort_history": [ + [ + "timestamp", + false + ] + ], + "languages_injected": true, + "column_alignment": { + "size": "center", + "pubdate": "center", + "timestamp": "center" + }, + "hidden_columns": [ + "last_modified", + "languages" + ] + }, + "user_categories": {}, + "saved_searches": {}, + "field_metadata": { + "pubdate": { + "table": null, + "is_multiple": {}, + "search_terms": [ + "pubdate" + ], + "is_editable": true, + "is_custom": false, + "rec_index": 15, + "is_csp": false, + "datatype": "datetime", + "name": "Ver\u00f6ffentlicht", + "label": "pubdate", + "is_category": false, + "display": { + "date_format": "MMM yyyy" + }, + "kind": "field", + "column": null + }, + "author_sort": { + "table": null, + "is_multiple": {}, + "search_terms": [ + "author_sort" + ], + "is_editable": true, + "is_custom": false, + "rec_index": 12, + "is_csp": false, + "datatype": "text", + "name": "Autorensortierung", + "label": "author_sort", + "is_category": false, + "display": {}, + "kind": "field", + "column": null + }, + "tags": { + "table": "tags", + "is_multiple": { + "cache_to_list": ",", + "ui_to_list": ",", + "list_to_ui": ", " + }, + "search_terms": [ + "tags", + "tag" + ], + "is_editable": true, + "is_custom": false, + "category_sort": "name", + "is_csp": false, + "datatype": "text", + "name": "Schlagw\u00f6rter", + "link_column": "tag", + "label": "tags", + "is_category": true, + "display": {}, + "kind": "field", + "rec_index": 6, + "column": "name" + }, + "id": { + "table": null, + "is_multiple": {}, + "search_terms": [ + "id" + ], + "is_editable": true, + "is_custom": false, + "rec_index": 0, + "is_csp": false, + "datatype": "int", + "name": null, + "label": "id", + "is_category": false, + "display": {}, + "kind": "field", + "column": null + }, + "news": { + "table": "news", + "is_multiple": {}, + "search_terms": [], + "is_editable": true, + "is_custom": false, + "category_sort": "name", + "is_csp": false, + "datatype": null, + "name": "Nachrichten", + "label": "news", + "is_category": true, + "display": {}, + "kind": "category", + "column": "name" + }, + "cover": { + "table": null, + "is_multiple": {}, + "search_terms": [ + "cover" + ], + "is_editable": true, + "is_custom": false, + "rec_index": 17, + "is_csp": false, + "datatype": "int", + "name": "Titelbild", + "label": "cover", + "is_category": false, + "display": {}, + "kind": "field", + "column": null + }, + "marked": { + "table": null, + "is_multiple": {}, + "search_terms": [ + "marked" + ], + "is_editable": true, + "is_custom": false, + "rec_index": 23, + "is_csp": false, + "datatype": "text", + "name": null, + "label": "marked", + "is_category": false, + "display": {}, + "kind": "field", + "column": null + }, + "series_sort": { + "table": null, + "is_multiple": {}, + "search_terms": [ + "series_sort" + ], + "is_editable": true, + "is_custom": false, + "rec_index": 24, + "is_csp": false, + "datatype": "text", + "name": "Seriensortierung", + "label": "series_sort", + "is_category": false, + "display": {}, + "kind": "field", + "column": null + }, + "comments": { + "table": null, + "is_multiple": {}, + "search_terms": [ + "comments", + "comment" + ], + "is_editable": true, + "is_custom": false, + "rec_index": 7, + "is_csp": false, + "datatype": "text", + "name": "Kommentare", + "label": "comments", + "is_category": false, + "display": {}, + "kind": "field", + "column": null + }, + "ondevice": { + "table": null, + "is_multiple": {}, + "search_terms": [ + "ondevice" + ], + "is_editable": true, + "is_custom": false, + "rec_index": 22, + "is_csp": false, + "datatype": "text", + "name": "Auf Ger\u00e4t", + "label": "ondevice", + "is_category": false, + "display": {}, + "kind": "field", + "column": null + }, + "size": { + "table": null, + "is_multiple": {}, + "search_terms": [ + "size" + ], + "is_editable": true, + "is_custom": false, + "rec_index": 4, + "is_csp": false, + "datatype": "float", + "name": "Gr\u00f6\u00dfe", + "label": "size", + "is_category": false, + "display": {}, + "kind": "field", + "column": null + }, + "title": { + "table": null, + "is_multiple": {}, + "search_terms": [ + "title" + ], + "is_editable": true, + "is_custom": false, + "rec_index": 1, + "is_csp": false, + "datatype": "text", + "name": "Titel", + "label": "title", + "is_category": false, + "display": {}, + "kind": "field", + "column": null + }, + "languages": { + "table": "languages", + "is_multiple": { + "cache_to_list": ",", + "ui_to_list": ",", + "list_to_ui": ", " + }, + "search_terms": [ + "languages", + "language" + ], + "is_editable": true, + "is_custom": false, + "category_sort": "lang_code", + "is_csp": false, + "datatype": "text", + "name": "Sprachen", + "link_column": "lang_code", + "label": "languages", + "is_category": true, + "display": {}, + "kind": "field", + "rec_index": 21, + "column": "lang_code" + }, + "series_index": { + "table": null, + "is_multiple": {}, + "search_terms": [ + "series_index" + ], + "is_editable": true, + "is_custom": false, + "rec_index": 10, + "is_csp": false, + "datatype": "float", + "name": null, + "label": "series_index", + "is_category": false, + "display": {}, + "kind": "field", + "column": null + }, + "path": { + "table": null, + "is_multiple": {}, + "search_terms": [], + "is_editable": true, + "is_custom": false, + "rec_index": 14, + "is_csp": false, + "datatype": "text", + "name": "Pfad", + "label": "path", + "is_category": false, + "display": {}, + "kind": "field", + "column": null + }, + "last_modified": { + "table": null, + "is_multiple": {}, + "search_terms": [ + "last_modified" + ], + "is_editable": true, + "is_custom": false, + "rec_index": 19, + "is_csp": false, + "datatype": "datetime", + "name": "Ge\u00e4ndert", + "label": "last_modified", + "is_category": false, + "display": { + "date_format": "dd MMM yyyy" + }, + "kind": "field", + "column": null + }, + "uuid": { + "table": null, + "is_multiple": {}, + "search_terms": [ + "uuid" + ], + "is_editable": true, + "is_custom": false, + "rec_index": 16, + "is_csp": false, + "datatype": "text", + "name": null, + "label": "uuid", + "is_category": false, + "display": {}, + "kind": "field", + "column": null + }, + "identifiers": { + "table": null, + "is_multiple": { + "cache_to_list": ",", + "ui_to_list": ",", + "list_to_ui": ", " + }, + "search_terms": [ + "identifiers", + "identifier", + "isbn" + ], + "is_editable": true, + "is_custom": false, + "rec_index": 20, + "is_csp": true, + "datatype": "text", + "name": "Kennungen", + "label": "identifiers", + "is_category": true, + "display": {}, + "kind": "field", + "column": null + }, + "formats": { + "table": null, + "is_multiple": { + "cache_to_list": ",", + "ui_to_list": ",", + "list_to_ui": ", " + }, + "search_terms": [ + "formats", + "format" + ], + "is_editable": true, + "is_custom": false, + "rec_index": 13, + "is_csp": false, + "datatype": "text", + "name": "Formate", + "label": "formats", + "is_category": true, + "display": {}, + "kind": "field", + "column": null + }, + "au_map": { + "table": null, + "is_multiple": { + "cache_to_list": ",", + "ui_to_list": null, + "list_to_ui": null + }, + "search_terms": [], + "is_editable": true, + "is_custom": false, + "rec_index": 18, + "is_csp": false, + "datatype": "text", + "name": null, + "label": "au_map", + "is_category": false, + "display": {}, + "kind": "field", + "column": null + }, + "rating": { + "table": "ratings", + "is_multiple": {}, + "search_terms": [ + "rating" + ], + "is_editable": true, + "is_custom": false, + "category_sort": "rating", + "is_csp": false, + "datatype": "rating", + "name": "Bewertung", + "link_column": "rating", + "label": "rating", + "is_category": true, + "display": {}, + "kind": "field", + "rec_index": 5, + "column": "rating" + }, + "publisher": { + "table": "publishers", + "is_multiple": {}, + "search_terms": [ + "publisher" + ], + "is_editable": true, + "is_custom": false, + "category_sort": "name", + "is_csp": false, + "datatype": "text", + "name": "Verlag", + "link_column": "publisher", + "label": "publisher", + "is_category": true, + "display": {}, + "kind": "field", + "rec_index": 9, + "column": "name" + }, + "series": { + "table": "series", + "is_multiple": {}, + "search_terms": [ + "series" + ], + "is_editable": true, + "is_custom": false, + "category_sort": "(title_sort(name))", + "is_csp": false, + "datatype": "series", + "name": "Serie", + "link_column": "series", + "label": "series", + "is_category": true, + "display": {}, + "kind": "field", + "rec_index": 8, + "column": "name" + }, + "timestamp": { + "table": null, + "is_multiple": {}, + "search_terms": [ + "date" + ], + "is_editable": true, + "is_custom": false, + "rec_index": 3, + "is_csp": false, + "datatype": "datetime", + "name": "Datum", + "label": "timestamp", + "is_category": false, + "display": { + "date_format": "dd MMM yyyy" + }, + "kind": "field", + "column": null + }, + "authors": { + "table": "authors", + "is_multiple": { + "cache_to_list": ",", + "ui_to_list": "&", + "list_to_ui": " & " + }, + "search_terms": [ + "authors", + "author" + ], + "is_editable": true, + "is_custom": false, + "category_sort": "sort", + "is_csp": false, + "datatype": "text", + "name": "Autoren", + "link_column": "author", + "label": "authors", + "is_category": true, + "display": {}, + "kind": "field", + "rec_index": 2, + "column": "name" + }, + "sort": { + "table": null, + "is_multiple": {}, + "search_terms": [ + "title_sort" + ], + "is_editable": true, + "is_custom": false, + "rec_index": 11, + "is_csp": false, + "datatype": "text", + "name": "Titelsortierung", + "label": "sort", + "is_category": false, + "display": {}, + "kind": "field", + "column": null + } + }, + "bools_are_tristate": true, + "grouped_search_terms": {} +} \ No newline at end of file From 78c9937d33a001c2cf40372897e082163aed3d43 Mon Sep 17 00:00:00 2001 From: Arky Date: Sun, 26 Aug 2018 13:59:17 +0700 Subject: [PATCH 22/67] Adding 'app.db' settings with IIAB provisioning settings --- roles/calibre-web/files/app.db | Bin 0 -> 49152 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 roles/calibre-web/files/app.db diff --git a/roles/calibre-web/files/app.db b/roles/calibre-web/files/app.db new file mode 100644 index 0000000000000000000000000000000000000000..719553a3479dc02dd7ebb772417f523a24080621 GIT binary patch literal 49152 zcmeI*Z*Sv79tUtc={9lOV9>FO5Vu-WKuxuDoBqj`0)ox9-fkhAvT1uKbSJ!aJV~rN zcFuM-U8zFqF5H8A%KJFoTi{jjkViZNA;AMU=_Ht$*s0yPU08Gy>VC7$znQUTexI4K z9lM+E-m6&wQChCo)dOWkcwP`i;ijSpg76-_&(M2xo2D-&qBrzejJ-bV<$J>QKmVsd zbEmT{A=`RxPX1EYl3XRd3Z)B}!FFQ<7yW+x0zlOKm9iojs+#U#q>LOi5kcvNfN04~VDy zrP|oIQ*Dfrd#)Em3yl){KGA&NR(9`JYc;yYQHJfdEoXcky6+EM&m7BWd2TnJ*mRwi z)z+H2Z5bZXOe@izF!yweqJ@YTv@DyXtnYw4JR>KnX+R7uu!7X34c9&JwI1=bp57*L zi?C)-cTBgd@p5U|L^rjjYxlcON-nQe^GKTu)|npdJ3qZ?!#qvzSsEQ*DOJ$s$IAGm>5(9%7~N6!=~$=j3WyVE zf!_90O3{WUhw%L{5WG28iHeR&_4J@~U)c>jHg=+d zb91qh!wHyLW=i_7v3&d#9mpZ`GM#i7zm(G}PN_L#=P9yUK7COqNC#Oy!F6^Wx)IPa{*^3SgxaN(!K89 z_Fa{YgEXD}`u4qjRVkfR$t#MFhF^;|YDrwJDoqym7e&ExOmgV|!={Jg8m-Ia?`i+> zP2Nf6+R|9k)Nv)3D_*@SK3eDSraN%hPR1X-$S0sj$>#v4%$pS2G_PL`L+8ocleuEC zC_dWf?dDU6Kjaea4X4(bM?#L?P3$e`*c|RE<1_mI(E9Eren9tlVKmFTy2m$M?0GT~ z1M_65=a8qgFr^p5Pif)KQQ6q3)!1RtJDMF$<)!5^PaQjy>7^W#9?*$Gk4I8hV7v5K zaWpnc%Y3cAWfDX8v zuQS@V@bGy`xJy1&S$umjH!)d!`|?@a3qFXJ+2f_T>=O$vv4Ruqv$-hG3iJmz2tWV= z5P$##AOHafKmY;|fWR{>aQrv%bzwowFTAo<$rK8UqL@FHMM=twnL=I=^7#V2(Fb-C z;yO9hyFHs+Z@S%=Si;R%Lib^G3WJ^EW4ZKn$vdY@y}QURrRmIJ7F*A+fCA?cb~uO z@<)IE@BXzHGr6DH=l_h{6y$%>2izb40SG_<0uX=z1Rwwb2tWV=5O`XFS28m~@rqa| zypZ{ml;7$TKXBZe!{2%!PVQ&jwhzUEP%LDQw}xeOvuioRS3TpvY%Ra#cl71TjkhXg zdV8&5)@pBMtSv9ClFDk+TrrHLmC9;MFIPypytdYAtuL>y zuN&*6Y#6Icts90}DX*^)M`kro(Wo-=w}Skw{NvLGh~*#v0SG_<0uX=z1Rwwb2tWV= z5cmTLNZF#u&p%}H*`mbHG7LZee<#TQlfU}|wG>T(00bZa0SG_<0uX=z1Rwwb2teTJ z1!l5W#ORj~GTCfFV!!`Szw{3`2tWV=5P$##AOHafKmY;|fB*z8u)y&9|GpRG@8z#A zaF_@U0uX=z1Rwwb2tWV=5P$##An;5G@az0M(i!oR@UkRr4*z6Sbp2ocf&Tjj=K!9G z!GItk009U<00Izz00bZa0SG|g!V2Vuk%dnuX9J?o{}(oJ1O@>JKmY;|fB*y_009U< z00IzzfWW^05C8uk0|5dMfB*y_009U<00Izz00ba#u?5)me^LIgK!0$900bZa0SG_< z0uX=z1Rwwb2teSX30$II10YHK`~OAxCqe!RfB)~Ibur?B00bZa0SG_<0uX=z1Rwx` RXIVhv!B5hU|Dq&K{sIhWd=CHs literal 0 HcmV?d00001 From 64a1b76f9492336c86500269e9cafa58ef2b7965 Mon Sep 17 00:00:00 2001 From: Arky Date: Sun, 26 Aug 2018 14:30:38 +0700 Subject: [PATCH 23/67] Refactor: Provision calibre-web settings Refactor calibre-web provisioning system. Now the app.db is copy to /library/calibre-web/config folder. --- roles/calibre-web/defaults/main.yml | 9 +++++--- roles/calibre-web/tasks/main.yml | 22 ++++++++++++++++--- .../templates/calibre-web.service.j2 | 7 +++--- 3 files changed, 29 insertions(+), 9 deletions(-) diff --git a/roles/calibre-web/defaults/main.yml b/roles/calibre-web/defaults/main.yml index e7ecda429..348464f75 100644 --- a/roles/calibre-web/defaults/main.yml +++ b/roles/calibre-web/defaults/main.yml @@ -5,17 +5,20 @@ calibreweb_install: False calibreweb_enabled: False -# calibre-web folder to store its data and configuration files. -calibreweb_home: "{{ content_base }}/calibre-web" - calibreweb_port: 8083 calibreweb_url: /calibre-web calibreweb_path: "{{ iiab_base }}/calibre-web" calibreweb_exec_path: "{{ calibreweb_path }}/cps.py" +# calibre-web folder to store its data files. +calibreweb_home: "{{ content_base }}/calibre-web" +# calibre-web folder to store configuration files. +calibreweb_config: "{{ calibreweb_home }}/config" + # Calibre-web setup will be provisioned with default administration account, metadata.db and # language. You could turn this to 'False' while reinstalling/upgrading calibre-web. calibreweb_provision: True +calibreweb_settings_database: app.db calibreweb_database: metadata.db #calibre-web system user diff --git a/roles/calibre-web/tasks/main.yml b/roles/calibre-web/tasks/main.yml index 69a246b78..5f6a1c9a0 100644 --- a/roles/calibre-web/tasks/main.yml +++ b/roles/calibre-web/tasks/main.yml @@ -8,6 +8,7 @@ with_items: - "{{ calibreweb_home }}" - "{{ calibreweb_path }}" + - "{{ calibreweb_config }}" ## TODO: Calibre-web future release might get into pypi https://github.com/janeczku/calibre-web/issues/456 - name: Download calibre-web github repository. @@ -38,16 +39,31 @@ - { src: 'cps.conf.j2', dest: "{{ calibreweb_home }}/cps.conf" , mode: '0644' } -- name: Provision calibre-web with default administration account and database. +- name: Provision calibre-web default metadata. copy: - src: roles/calibre-web/files/metadata.db - dest: "{{ calibreweb_home }}/{{ calibreweb_database }}" + src: "{{ item }}" + dest: "{{ calibreweb_home }}" + owner: "{{ calibreweb_user }}" + group: "{{ apache_user }}" + mode: 0644 + backup: yes + with_items: + - roles/calibre-web/files/metadata.db + - roles/calibre-web/files/metadata_db_prefs_backup.json + when: calibreweb_provision + +- name: Provision calibre-web with default administration settings. + copy: + src: roles/calibre-web/files/app.db + dest: "{{ calibreweb_config }}/{{ calibreweb_settings_database }} " owner: "{{ calibreweb_user }}" group: "{{ apache_user }}" mode: 0644 backup: yes when: calibreweb_provision + + - name: Ask systemd to reread unit files (daemon-reload). systemd: daemon_reload: yes diff --git a/roles/calibre-web/templates/calibre-web.service.j2 b/roles/calibre-web/templates/calibre-web.service.j2 index e96bd2781..f4fa5bd80 100644 --- a/roles/calibre-web/templates/calibre-web.service.j2 +++ b/roles/calibre-web/templates/calibre-web.service.j2 @@ -3,9 +3,10 @@ Description=Calibre-Web [Service] Type=simple User={{ calibreweb_user }} -EnvironmentFile={{ calibreweb_home }}/cps.conf -ExecStart=/usr/bin/python {{ calibreweb_exec_path }} $ARG1 $ARG2 -WorkingDirectory={{ calibreweb_path }} +#EnvironmentFile={{ calibreweb_home }}/cps.conf +#WorkingDirectory={{ calibreweb_path }} +ExecStart=/usr/bin/python {{ calibreweb_exec_path }} -p {{ calibreweb_home }}/{{ calibreweb_settings_database }} + [Install] WantedBy=multi-user.target From 8d198e62a2baca9fc89e8819565763072f52ded9 Mon Sep 17 00:00:00 2001 From: Arky Date: Sun, 26 Aug 2018 14:37:17 +0700 Subject: [PATCH 24/67] Refactor: Use pip extra_args to handle 'pip install --target vendor' --- roles/calibre-web/tasks/main.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/roles/calibre-web/tasks/main.yml b/roles/calibre-web/tasks/main.yml index 5f6a1c9a0..38e4a06d7 100644 --- a/roles/calibre-web/tasks/main.yml +++ b/roles/calibre-web/tasks/main.yml @@ -20,11 +20,11 @@ version: master when: internet_available -## TODO: Use Ansible native pip module for this. How do you use --target vendor ? - name: Download calibre-web dependencies into vendor subdirectory. - command: pip install --target vendor -r ./requirements.txt - args: - chdir: "{{ calibreweb_path }}" + pip: + requirements: requirements.txt + chdir: "{{ calibreweb_path }}" + extra_args: --target vendor - name: Create calibre-web systemd service unit and httpd2 configuration. template: From 21249f062369adcc733de1fc7c687fbd893eea31 Mon Sep 17 00:00:00 2001 From: Arky Date: Sun, 26 Aug 2018 14:45:21 +0700 Subject: [PATCH 25/67] Use systemd service to enable/disable and start/stop calibre-web --- roles/calibre-web/tasks/main.yml | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/roles/calibre-web/tasks/main.yml b/roles/calibre-web/tasks/main.yml index 38e4a06d7..829444723 100644 --- a/roles/calibre-web/tasks/main.yml +++ b/roles/calibre-web/tasks/main.yml @@ -62,17 +62,12 @@ backup: yes when: calibreweb_provision - - -- name: Ask systemd to reread unit files (daemon-reload). +- name: Enable and reload calibre-web service. systemd: - daemon_reload: yes - -- name: Enable calibre-web service. - service: name: calibre-web + daemon_reload: yes enabled: yes - state: reloaded + state: restarted when: calibreweb_enabled - name: Enable calibre-web httpd2 site @@ -85,8 +80,9 @@ when: calibreweb_enabled - name: Disable calibre-web service. - service: + systemd: name: calibre-web + daemon_reload: yes enabled: no state: stopped when: not calibreweb_enabled From 78b0b753d88991d6127adbf8d46d5549c070f02a Mon Sep 17 00:00:00 2001 From: Arky Date: Sun, 26 Aug 2018 23:12:53 +0700 Subject: [PATCH 26/67] Refactor: Simpler Calibre-web service Systemd does take multiple arguments! Removing extranous files and envirnoment variables. --- roles/calibre-web/tasks/main.yml | 5 ++--- roles/calibre-web/templates/calibre-web.service.j2 | 5 +---- roles/calibre-web/templates/cps.conf.j2 | 2 -- 3 files changed, 3 insertions(+), 9 deletions(-) delete mode 100644 roles/calibre-web/templates/cps.conf.j2 diff --git a/roles/calibre-web/tasks/main.yml b/roles/calibre-web/tasks/main.yml index 829444723..d2cdb45b0 100644 --- a/roles/calibre-web/tasks/main.yml +++ b/roles/calibre-web/tasks/main.yml @@ -24,7 +24,8 @@ pip: requirements: requirements.txt chdir: "{{ calibreweb_path }}" - extra_args: --target vendor + extra_args: '--target vendor' + ignore_errors: True - name: Create calibre-web systemd service unit and httpd2 configuration. template: @@ -36,8 +37,6 @@ with_items: - { src: 'calibre-web.service.j2', dest: '/etc/systemd/system/calibre-web.service', mode: '0644' } - { src: 'calibre-web.conf.j2', dest: '/etc/apache2/sites-available/calibre-web.conf', mode: '0644' } - - { src: 'cps.conf.j2', dest: "{{ calibreweb_home }}/cps.conf" , mode: '0644' } - - name: Provision calibre-web default metadata. copy: diff --git a/roles/calibre-web/templates/calibre-web.service.j2 b/roles/calibre-web/templates/calibre-web.service.j2 index f4fa5bd80..8a8c140dc 100644 --- a/roles/calibre-web/templates/calibre-web.service.j2 +++ b/roles/calibre-web/templates/calibre-web.service.j2 @@ -3,10 +3,7 @@ Description=Calibre-Web [Service] Type=simple User={{ calibreweb_user }} -#EnvironmentFile={{ calibreweb_home }}/cps.conf -#WorkingDirectory={{ calibreweb_path }} -ExecStart=/usr/bin/python {{ calibreweb_exec_path }} -p {{ calibreweb_home }}/{{ calibreweb_settings_database }} - +ExecStart=/usr/bin/python {{ calibreweb_exec_path }} -p {{ calibreweb_config }}/{{ calibreweb_settings_database }} [Install] WantedBy=multi-user.target diff --git a/roles/calibre-web/templates/cps.conf.j2 b/roles/calibre-web/templates/cps.conf.j2 deleted file mode 100644 index 46ac3cc7b..000000000 --- a/roles/calibre-web/templates/cps.conf.j2 +++ /dev/null @@ -1,2 +0,0 @@ -ARG1 = -p -ARG2 = {{ calibreweb_home }}/{{ calibreweb_database }} From 7a6a8bf4c23045f9bb7cc630ffb84f8cb2c7a538 Mon Sep 17 00:00:00 2001 From: Arky Date: Sun, 26 Aug 2018 23:25:18 +0700 Subject: [PATCH 27/67] Refactor: Ansible bug prevents use from using 'chdir' with 'extra_args' --- roles/calibre-web/tasks/main.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/roles/calibre-web/tasks/main.yml b/roles/calibre-web/tasks/main.yml index d2cdb45b0..7e662e974 100644 --- a/roles/calibre-web/tasks/main.yml +++ b/roles/calibre-web/tasks/main.yml @@ -20,10 +20,11 @@ version: master when: internet_available +# Ansible Bug: Cannot use 'chdir' with 'extra_args' https://github.com/ansible/ansible/issues/37912 (Patch landed) - name: Download calibre-web dependencies into vendor subdirectory. pip: - requirements: requirements.txt - chdir: "{{ calibreweb_path }}" + requirements: "{{ calibreweb_path }}/requirements.txt" + #chdir: "{{ calibreweb_path }}" extra_args: '--target vendor' ignore_errors: True From ede6306692176d88910957eba9a686a171d98f25 Mon Sep 17 00:00:00 2001 From: Arky Date: Mon, 27 Aug 2018 16:37:45 +0700 Subject: [PATCH 28/67] Revert: Ansible Pip module bug bites --- roles/calibre-web/tasks/main.yml | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/roles/calibre-web/tasks/main.yml b/roles/calibre-web/tasks/main.yml index 7e662e974..08f6d5e2c 100644 --- a/roles/calibre-web/tasks/main.yml +++ b/roles/calibre-web/tasks/main.yml @@ -20,13 +20,21 @@ version: master when: internet_available -# Ansible Bug: Cannot use 'chdir' with 'extra_args' https://github.com/ansible/ansible/issues/37912 (Patch landed) +## Ansible Pip Bug: Cannot use 'chdir' with 'env' https://github.com/ansible/ansible/issues/37912 (Patch landed) +#- name: Download calibre-web dependencies into vendor subdirectory. +# pip: +# requirements: "{{ calibreweb_path }}/requirements.txt" +# chdir: "{{ calibreweb_path }}" +# extra_args: '--target vendor' +# ignore_errors: True +## +# Implmenting this with Ansible command module for now. - name: Download calibre-web dependencies into vendor subdirectory. - pip: - requirements: "{{ calibreweb_path }}/requirements.txt" - #chdir: "{{ calibreweb_path }}" - extra_args: '--target vendor' - ignore_errors: True + command: pip install --target vendor -r ./requirements.txt + args: + chdir: "{{ calibreweb_path }}" + ignore_errors: True + when: internet_available - name: Create calibre-web systemd service unit and httpd2 configuration. template: From 3ba87e57dc8de92bc86f6f6d224899d84ebc38c0 Mon Sep 17 00:00:00 2001 From: Arky Date: Mon, 27 Aug 2018 16:39:12 +0700 Subject: [PATCH 29/67] Settings 'app.db' destination folder is enough This prevents the bug where 'app.db' was copied twice. --- roles/calibre-web/tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/calibre-web/tasks/main.yml b/roles/calibre-web/tasks/main.yml index 08f6d5e2c..a77e2854e 100644 --- a/roles/calibre-web/tasks/main.yml +++ b/roles/calibre-web/tasks/main.yml @@ -63,7 +63,7 @@ - name: Provision calibre-web with default administration settings. copy: src: roles/calibre-web/files/app.db - dest: "{{ calibreweb_config }}/{{ calibreweb_settings_database }} " + dest: "{{ calibreweb_config }}" owner: "{{ calibreweb_user }}" group: "{{ apache_user }}" mode: 0644 From f8c50aa589324b860112f095c378654396f7ea3e Mon Sep 17 00:00:00 2001 From: Arky Date: Mon, 27 Aug 2018 16:41:43 +0700 Subject: [PATCH 30/67] Ansible Systemd doesn't have graceful reload available. According to Ansible developers, there is no feature to do graceful restart either in ansible systemd or in other Ansible apache modules. --- roles/calibre-web/tasks/main.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/roles/calibre-web/tasks/main.yml b/roles/calibre-web/tasks/main.yml index a77e2854e..b937a8e9e 100644 --- a/roles/calibre-web/tasks/main.yml +++ b/roles/calibre-web/tasks/main.yml @@ -82,7 +82,6 @@ command: a2ensite calibre-web.conf when: calibreweb_enabled -# TODO: Use Systemd service daemon_reload instead? - name: Restart Apache after enabling calibre-web httpd2 site. command: apachectl -k graceful when: calibreweb_enabled @@ -99,7 +98,6 @@ command: a2dissite calibre-web.conf when: not calibreweb_enabled -# TODO: Use Systemd service daemon_reload instead? - name: Restart Apache after disabling calibre-web httpd2 site. command: apachectl -k graceful when: not calibreweb_enabled From 826cf7b443004951cbdbd11c37fa6f7c2968812e Mon Sep 17 00:00:00 2001 From: Arky Date: Mon, 27 Aug 2018 17:58:11 +0700 Subject: [PATCH 31/67] Update documentation --- roles/calibre-web/README.rst | 40 +++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/roles/calibre-web/README.rst b/roles/calibre-web/README.rst index 43afa6e60..e7c735158 100644 --- a/roles/calibre-web/README.rst +++ b/roles/calibre-web/README.rst @@ -2,29 +2,27 @@ Calibre-web README ==================== -This Ansible role installs Calibre Web within Internet-in-a-Box. Calibre Web is -a web app providing a clean interface for browsing, reading and downloading eBooks +This Ansible role installs Calibre-web in Internet-in-a-Box. Calibre-web server +provides a clean interface for browsing, reading and downloading eBooks using an existing Calibre database. Access ------ -If enabled and with the default settings Calibre-web should be accessible at http://box/calibre-web. -This is front-end application running under Apache2 httpd. - -To login to Calibre-web enter +After installation you can access Calibre-web at `http://box/calibre-web` using the +following IIAB calibre-web administration account. Username: Admin Password: changme -When a configuration is not found calibre-web uses its default administration credentials. +If the default configuration is not found calibre-web server creates a new settings file +with calibre-web default administration account. Username: admin Password: admin123 - Backend -------- You can manage the backend Calibre-web server manually with the following commands: @@ -39,29 +37,33 @@ You can manage the backend Calibre-web server manually with the following comman Configuration ------------- -You can login using the default administration account. Then select "Configuration" -under admin panel. +To configure calibre-web, first login as 'Admin'. Then select 'Configuration' +under the admin panel. -The default database path is /library/calibre-web/ + +The default calibre-web settings are stored under '/library/calibre-web/config/app.db' +database file. The calibre-web stores its eBook information in calibre database + '/library/calibre-web/metadata.db' file. Upgrading --------- Reinstalling Calibre-web automatically upgrades to the latest version. Please backup your configuration -before reinstalling. To retain your configuration set calibreweb_provision variable to False. +before reinstalling. To retain your configuration set `calibreweb_provision` variable to False. -You can manually upgrade while following commands: +You can manually upgrade using 'git' command: $ cd /opt/calibre-web $ sudo git pull -Backup Content +Backuping Content -------------- -Calibre-web stores its configuration into SQLite database file /library/calibre-web/app.db. -The content is stored in various folders under /library/calibre-web. Please backup the files before -upgrading. Also set calibreweb_provision variable to False before upgrading. +Calibre-web stores eBooks and various configuration settings under /library/calibre-web. +Please backup this folder before upgrading. Also set `calibreweb_provision` variable to +False before upgrading to prevent the Provision script from over-writting your settings. Known Issues ------------ -Current implementation of the calibre-web in Internet in a box doesn't include https/SSL configuration. -Some of the administration login urls might not work. +Trying to access a empty public bookshelf causes a system error. + +Current implementation of the calibre-web in Internet in a box doesn't include ebook converter program. From 4bdb987f4ce4282e804f9e35c3c58b6aed3792fa Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 27 Aug 2018 10:51:38 -0400 Subject: [PATCH 32/67] Update README.rst --- roles/calibre-web/README.rst | 63 +++++++++++++++++++++--------------- 1 file changed, 37 insertions(+), 26 deletions(-) diff --git a/roles/calibre-web/README.rst b/roles/calibre-web/README.rst index e7c735158..9c6b50420 100644 --- a/roles/calibre-web/README.rst +++ b/roles/calibre-web/README.rst @@ -1,31 +1,34 @@ -==================== -Calibre-web README -==================== +================== +Calibre-Web README +================== -This Ansible role installs Calibre-web in Internet-in-a-Box. Calibre-web server -provides a clean interface for browsing, reading and downloading eBooks -using an existing Calibre database. +This Ansible role installs Calibre-Web in Internet-in-a-Box (we'll call it +"calibre-web" from here on). The calibre-web server provides a clean +interface for browsing, reading and downloading e-books using an existing +Calibre database. Access ------ -After installation you can access Calibre-web at `http://box/calibre-web` using the -following IIAB calibre-web administration account. +After installation you can access calibre-web at `http://box:8083` or +`http://box/calibre-web` (in future we may consider `http://box/books`). +You can log in with administrative account: - Username: Admin + Username: Admin - Password: changme + Password: changeme -If the default configuration is not found calibre-web server creates a new settings file -with calibre-web default administration account. +If the default configuration is not found, calibre-web server creates a +new settings file with calibre-web's own default administrative account: Username: admin Password: admin123 Backend --------- -You can manage the backend Calibre-web server manually with the following commands: +------- + +You can manage the backend calibre-web server manually with these commands: systemctl enable calibre-web @@ -37,18 +40,21 @@ You can manage the backend Calibre-web server manually with the following comman Configuration ------------- -To configure calibre-web, first login as 'Admin'. Then select 'Configuration' + +To configure calibre-web, first login as 'Admin'. Then select 'Configuration' under the admin panel. - -The default calibre-web settings are stored under '/library/calibre-web/config/app.db' -database file. The calibre-web stores its eBook information in calibre database - '/library/calibre-web/metadata.db' file. +The default calibre-web settings are stored under +'/library/calibre-web/config/app.db' database file. The calibre-web stores +its eBook information in calibre database '/library/calibre-web/metadata.db' +file. Upgrading --------- -Reinstalling Calibre-web automatically upgrades to the latest version. Please backup your configuration -before reinstalling. To retain your configuration set `calibreweb_provision` variable to False. + +Reinstalling calibre-web automatically upgrades to the latest version. +Please backup your configuration before reinstalling. To retain your +configuration set `calibreweb_provision` variable to False. You can manually upgrade using 'git' command: @@ -57,13 +63,18 @@ $ cd /opt/calibre-web $ sudo git pull Backuping Content --------------- -Calibre-web stores eBooks and various configuration settings under /library/calibre-web. -Please backup this folder before upgrading. Also set `calibreweb_provision` variable to -False before upgrading to prevent the Provision script from over-writting your settings. +----------------- + +calibre-web stores e-books and various configuration settings under +/library/calibre-web. Please backup this folder before upgrading. Also set +`calibreweb_provision` variable to False before upgrading to prevent the +Provision script from over-writting your settings. Known Issues ------------ + Trying to access a empty public bookshelf causes a system error. -Current implementation of the calibre-web in Internet in a box doesn't include ebook converter program. +As of August 2018, calibre-web doesn't include Calibre's e-book conversion +functionality (Calibre itself allows teachers to convert between PDF, epub, txt +etc — to permit reading on a wider array client devices and client software). From 8288435b0dc4ec933c2fcae1947842f7fe6f18a4 Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 27 Aug 2018 10:53:16 -0400 Subject: [PATCH 33/67] Update README.rst --- roles/calibre-web/README.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/roles/calibre-web/README.rst b/roles/calibre-web/README.rst index 9c6b50420..b8b91a1fd 100644 --- a/roles/calibre-web/README.rst +++ b/roles/calibre-web/README.rst @@ -3,7 +3,7 @@ Calibre-Web README ================== This Ansible role installs Calibre-Web in Internet-in-a-Box (we'll call it -"calibre-web" from here on). The calibre-web server provides a clean +"calibre-web" from here on down). The calibre-web server provides a clean interface for browsing, reading and downloading e-books using an existing Calibre database. @@ -62,8 +62,8 @@ $ cd /opt/calibre-web $ sudo git pull -Backuping Content ------------------ +Backup Your Content +------------------- calibre-web stores e-books and various configuration settings under /library/calibre-web. Please backup this folder before upgrading. Also set From 669123a204a169da56b2a9e5038d3f615306eeb9 Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 27 Aug 2018 10:53:43 -0400 Subject: [PATCH 34/67] Update README.rst --- roles/calibre-web/README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/calibre-web/README.rst b/roles/calibre-web/README.rst index b8b91a1fd..e16d30aa0 100644 --- a/roles/calibre-web/README.rst +++ b/roles/calibre-web/README.rst @@ -73,7 +73,7 @@ Provision script from over-writting your settings. Known Issues ------------ -Trying to access a empty public bookshelf causes a system error. +Trying to access an empty public bookshelf causes a system error. As of August 2018, calibre-web doesn't include Calibre's e-book conversion functionality (Calibre itself allows teachers to convert between PDF, epub, txt From 6e7461514a418e0e4738f98893d366750b35e274 Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 27 Aug 2018 10:56:07 -0400 Subject: [PATCH 35/67] Update README.rst --- roles/calibre-web/README.rst | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/roles/calibre-web/README.rst b/roles/calibre-web/README.rst index e16d30aa0..33a61203d 100644 --- a/roles/calibre-web/README.rst +++ b/roles/calibre-web/README.rst @@ -53,8 +53,8 @@ Upgrading --------- Reinstalling calibre-web automatically upgrades to the latest version. -Please backup your configuration before reinstalling. To retain your -configuration set `calibreweb_provision` variable to False. +Please back up your configuration before reinstalling. To retain your +configuration, set `calibreweb_provision` variable to False. You can manually upgrade using 'git' command: @@ -66,9 +66,9 @@ Backup Your Content ------------------- calibre-web stores e-books and various configuration settings under -/library/calibre-web. Please backup this folder before upgrading. Also set -`calibreweb_provision` variable to False before upgrading to prevent the -Provision script from over-writting your settings. +/library/calibre-web. Please back up this folder before upgrading. Also set +variable `calibreweb_provision` to False before upgrading, to prevent the +Provision script from overwriting your settings. Known Issues ------------ From 8c2214c7552830d0e65710d111b25b3ee7d12233 Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 27 Aug 2018 11:11:51 -0400 Subject: [PATCH 36/67] Update main.yml --- roles/calibre-web/defaults/main.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/roles/calibre-web/defaults/main.yml b/roles/calibre-web/defaults/main.yml index 348464f75..458df68a7 100644 --- a/roles/calibre-web/defaults/main.yml +++ b/roles/calibre-web/defaults/main.yml @@ -15,15 +15,15 @@ calibreweb_home: "{{ content_base }}/calibre-web" # calibre-web folder to store configuration files. calibreweb_config: "{{ calibreweb_home }}/config" -# Calibre-web setup will be provisioned with default administration account, metadata.db and -# language. You could turn this to 'False' while reinstalling/upgrading calibre-web. +# calibre-web setup will be provisioned with default administration account, metadata.db and +# language. You could turn this to 'False' while reinstalling/upgrading calibre-web. calibreweb_provision: True calibreweb_settings_database: app.db calibreweb_database: metadata.db -#calibre-web system user +# calibre-web system user calibreweb_user: root -# calibreweb admin account +# calibre-web admin account # calibreweb_admin_user: Admin # calibreweb_admin_password: changeme From 3bca0874b9b35402d1399560bc042ecb7bb2234d Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 27 Aug 2018 11:13:00 -0400 Subject: [PATCH 37/67] Update README.rst --- roles/calibre-web/README.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/roles/calibre-web/README.rst b/roles/calibre-web/README.rst index 33a61203d..a884d3259 100644 --- a/roles/calibre-web/README.rst +++ b/roles/calibre-web/README.rst @@ -3,9 +3,9 @@ Calibre-Web README ================== This Ansible role installs Calibre-Web in Internet-in-a-Box (we'll call it -"calibre-web" from here on down). The calibre-web server provides a clean -interface for browsing, reading and downloading e-books using an existing -Calibre database. +"calibre-web" from here on down, noting that calibreweb_* variables do not +include the dash!) The calibre-web server provides a clean interface for +browsing, reading and downloading e-books using an existing Calibre database. Access ------ From 3b039e5f3c8d50884568b735b902dbf95a4428bf Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 27 Aug 2018 11:41:42 -0400 Subject: [PATCH 38/67] Update main.yml --- roles/calibre-web/tasks/main.yml | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/roles/calibre-web/tasks/main.yml b/roles/calibre-web/tasks/main.yml index b937a8e9e..efc6f9232 100644 --- a/roles/calibre-web/tasks/main.yml +++ b/roles/calibre-web/tasks/main.yml @@ -29,14 +29,14 @@ # ignore_errors: True ## # Implmenting this with Ansible command module for now. -- name: Download calibre-web dependencies into vendor subdirectory. +- name: Download calibre-web dependencies into vendor subdirectory command: pip install --target vendor -r ./requirements.txt args: - chdir: "{{ calibreweb_path }}" + chdir: "{{ calibreweb_path }}" ignore_errors: True when: internet_available -- name: Create calibre-web systemd service unit and httpd2 configuration. +- name: Create calibre-web systemd service unit and httpd2 configuration template: src: "{{ item.src }}" dest: "{{ item.dest }}" @@ -47,7 +47,7 @@ - { src: 'calibre-web.service.j2', dest: '/etc/systemd/system/calibre-web.service', mode: '0644' } - { src: 'calibre-web.conf.j2', dest: '/etc/apache2/sites-available/calibre-web.conf', mode: '0644' } -- name: Provision calibre-web default metadata. +- name: Provision calibre-web default metadata copy: src: "{{ item }}" dest: "{{ calibreweb_home }}" @@ -60,7 +60,7 @@ - roles/calibre-web/files/metadata_db_prefs_backup.json when: calibreweb_provision -- name: Provision calibre-web with default administration settings. +- name: Provision calibre-web with default administration settings copy: src: roles/calibre-web/files/app.db dest: "{{ calibreweb_config }}" @@ -70,7 +70,7 @@ backup: yes when: calibreweb_provision -- name: Enable and reload calibre-web service. +- name: Enable and reload calibre-web service systemd: name: calibre-web daemon_reload: yes @@ -82,11 +82,11 @@ command: a2ensite calibre-web.conf when: calibreweb_enabled -- name: Restart Apache after enabling calibre-web httpd2 site. - command: apachectl -k graceful - when: calibreweb_enabled +#- name: Restart Apache after enabling calibre-web httpd2 site +# command: apachectl -k graceful +# when: calibreweb_enabled -- name: Disable calibre-web service. +- name: Disable calibre-web service systemd: name: calibre-web daemon_reload: yes @@ -98,9 +98,14 @@ command: a2dissite calibre-web.conf when: not calibreweb_enabled -- name: Restart Apache after disabling calibre-web httpd2 site. - command: apachectl -k graceful - when: not calibreweb_enabled +#- name: Restart Apache after disabling calibre-web httpd2 site. +# command: apachectl -k graceful +# when: not calibreweb_enabled + +- name: Restart Apache + systemd: + name: apache2 + state: restarted - name: Add 'calibre-web' to list of services at /etc/iiab/iiab.ini ini_file: From 001976ae89279271d2bc43b59a851bbfc9efc858 Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 27 Aug 2018 11:43:00 -0400 Subject: [PATCH 39/67] Update main.yml --- roles/calibre-web/tasks/main.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/roles/calibre-web/tasks/main.yml b/roles/calibre-web/tasks/main.yml index efc6f9232..71f95386e 100644 --- a/roles/calibre-web/tasks/main.yml +++ b/roles/calibre-web/tasks/main.yml @@ -1,4 +1,4 @@ -- name: Create calibre-web folders to store data and configuration files. +- name: Create calibre-web folders to store data and configuration files file: path: "{{ item }}" owner: "{{ calibreweb_user }}" @@ -11,7 +11,7 @@ - "{{ calibreweb_config }}" ## TODO: Calibre-web future release might get into pypi https://github.com/janeczku/calibre-web/issues/456 -- name: Download calibre-web github repository. +- name: Download calibre-web github repository git: repo: https://github.com/janeczku/calibre-web.git dest: "{{ calibreweb_path }}" @@ -28,7 +28,7 @@ # extra_args: '--target vendor' # ignore_errors: True ## -# Implmenting this with Ansible command module for now. +# Implementing this with Ansible command module for now. - name: Download calibre-web dependencies into vendor subdirectory command: pip install --target vendor -r ./requirements.txt args: @@ -94,11 +94,11 @@ state: stopped when: not calibreweb_enabled -- name: Disable calibre-web httpd2 site. +- name: Disable calibre-web httpd2 site command: a2dissite calibre-web.conf when: not calibreweb_enabled -#- name: Restart Apache after disabling calibre-web httpd2 site. +#- name: Restart Apache after disabling calibre-web httpd2 site # command: apachectl -k graceful # when: not calibreweb_enabled @@ -117,7 +117,7 @@ - option: name value: calibre-web - option: description - value: '"calibre-web is a web app providing a clean interface for browsing, reading and downloading eBooks."' + value: '"calibre-web is a web app providing a clean interface for browsing, reading and downloading e-books."' - option: calibreweb_url value: "{{ calibreweb_url }}" - option: calibreweb_path From e954420b1596ab8e59b3366faf00f65e05ac5cd9 Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 27 Aug 2018 11:46:30 -0400 Subject: [PATCH 40/67] @jvonau recommends avoiding duplicate call --- roles/calibre-web/templates/calibre-web.service.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/calibre-web/templates/calibre-web.service.j2 b/roles/calibre-web/templates/calibre-web.service.j2 index 8a8c140dc..733a723e3 100644 --- a/roles/calibre-web/templates/calibre-web.service.j2 +++ b/roles/calibre-web/templates/calibre-web.service.j2 @@ -3,7 +3,7 @@ Description=Calibre-Web [Service] Type=simple User={{ calibreweb_user }} -ExecStart=/usr/bin/python {{ calibreweb_exec_path }} -p {{ calibreweb_config }}/{{ calibreweb_settings_database }} +ExecStart={{ calibreweb_exec_path }} -p {{ calibreweb_config }}/{{ calibreweb_settings_database }} [Install] WantedBy=multi-user.target From a7831e5ee518e165c596eb8eca5910d3a1c9008e Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 27 Aug 2018 11:50:23 -0400 Subject: [PATCH 41/67] Update README.rst --- roles/calibre-web/README.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/roles/calibre-web/README.rst b/roles/calibre-web/README.rst index a884d3259..f85586ce7 100644 --- a/roles/calibre-web/README.rst +++ b/roles/calibre-web/README.rst @@ -2,10 +2,10 @@ Calibre-Web README ================== -This Ansible role installs Calibre-Web in Internet-in-a-Box (we'll call it -"calibre-web" from here on down, noting that calibreweb_* variables do not -include the dash!) The calibre-web server provides a clean interface for -browsing, reading and downloading e-books using an existing Calibre database. +Calibre-Web server provides a clean interface for browsing, reading and +downloading e-books using an existing Calibre database. This Ansible role +installs Calibre-Web in Internet-in-a-Box (we'll call it "calibre-web" +from here on down, noting that calibreweb_* variables do not include the dash!) Access ------ From f243dad00e02206ca737eb18724c6e7929188eec Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 27 Aug 2018 12:40:38 -0400 Subject: [PATCH 42/67] Update main.yml --- roles/calibre-web/defaults/main.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/roles/calibre-web/defaults/main.yml b/roles/calibre-web/defaults/main.yml index 458df68a7..5de51a47e 100644 --- a/roles/calibre-web/defaults/main.yml +++ b/roles/calibre-web/defaults/main.yml @@ -7,16 +7,17 @@ calibreweb_enabled: False calibreweb_port: 8083 calibreweb_url: /calibre-web -calibreweb_path: "{{ iiab_base }}/calibre-web" +calibreweb_path: "{{ iiab_base }}/calibre-web" # /opt/iiab/calibre-web calibreweb_exec_path: "{{ calibreweb_path }}/cps.py" # calibre-web folder to store its data files. -calibreweb_home: "{{ content_base }}/calibre-web" +calibreweb_home: "{{ content_base }}/calibre-web" # /library/calibre-web # calibre-web folder to store configuration files. calibreweb_config: "{{ calibreweb_home }}/config" -# calibre-web setup will be provisioned with default administration account, metadata.db and -# language. You could turn this to 'False' while reinstalling/upgrading calibre-web. +# calibre-web setup will be provisioned with default administration account, +# metadata.db and language. You may want to make this to 'False' while +# reinstalling/upgrading calibre-web. calibreweb_provision: True calibreweb_settings_database: app.db calibreweb_database: metadata.db From dc70d57de46f0571c1d0d10b67ca3750384dc838 Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 27 Aug 2018 13:27:23 -0400 Subject: [PATCH 43/67] Update main.yml --- roles/calibre-web/tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/calibre-web/tasks/main.yml b/roles/calibre-web/tasks/main.yml index 71f95386e..cf6a35603 100644 --- a/roles/calibre-web/tasks/main.yml +++ b/roles/calibre-web/tasks/main.yml @@ -70,7 +70,7 @@ backup: yes when: calibreweb_provision -- name: Enable and reload calibre-web service +- name: Enable and restart calibre-web service systemd: name: calibre-web daemon_reload: yes From 107cd4bf9fa4c32029070b089d8e19e8febd16eb Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 27 Aug 2018 13:35:57 -0400 Subject: [PATCH 44/67] Update main.yml --- roles/calibre-web/tasks/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/roles/calibre-web/tasks/main.yml b/roles/calibre-web/tasks/main.yml index cf6a35603..724481ca9 100644 --- a/roles/calibre-web/tasks/main.yml +++ b/roles/calibre-web/tasks/main.yml @@ -78,7 +78,7 @@ state: restarted when: calibreweb_enabled -- name: Enable calibre-web httpd2 site +- name: Enable http://box/calibre-web with Apache command: a2ensite calibre-web.conf when: calibreweb_enabled @@ -94,7 +94,7 @@ state: stopped when: not calibreweb_enabled -- name: Disable calibre-web httpd2 site +- name: Disable http://box/calibre-web with Apache command: a2dissite calibre-web.conf when: not calibreweb_enabled From 1cea0d76d419e87b6e38ae118cbb882593b4dbe1 Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 27 Aug 2018 16:13:45 -0400 Subject: [PATCH 45/67] Update local_vars_min.yml --- vars/local_vars_min.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/vars/local_vars_min.yml b/vars/local_vars_min.yml index 78e53e111..f0e55f4dc 100644 --- a/vars/local_vars_min.yml +++ b/vars/local_vars_min.yml @@ -149,6 +149,9 @@ calibre_port: 8080 calibre_web_path: calibre #NEEDS WORK: https://github.com/iiab/iiab/issues/529 # In addition to: http://box/books box/libros box/livres box/livros box/liv +calibreweb_install: False +calibreweb_enabled: False + dokuwiki_install: False dokuwiki_enabled: False From d4352bbfb6f4058bf4b635a259d0c104a9f85f5c Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 27 Aug 2018 16:14:09 -0400 Subject: [PATCH 46/67] Update local_vars_min_vpn.yml --- vars/local_vars_min_vpn.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/vars/local_vars_min_vpn.yml b/vars/local_vars_min_vpn.yml index a60ecaaff..d3b52eb79 100644 --- a/vars/local_vars_min_vpn.yml +++ b/vars/local_vars_min_vpn.yml @@ -149,6 +149,9 @@ calibre_port: 8080 calibre_web_path: calibre #NEEDS WORK: https://github.com/iiab/iiab/issues/529 # In addition to: http://box/books box/libros box/livres box/livros box/liv +calibreweb_install: False +calibreweb_enabled: False + dokuwiki_install: False dokuwiki_enabled: False From 7ae6b2f85329d4f3906ab57502634166ea261881 Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 27 Aug 2018 16:14:46 -0400 Subject: [PATCH 47/67] Update local_vars_medium.yml --- vars/local_vars_medium.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/vars/local_vars_medium.yml b/vars/local_vars_medium.yml index 43f17384a..2848aa0ce 100644 --- a/vars/local_vars_medium.yml +++ b/vars/local_vars_medium.yml @@ -149,6 +149,9 @@ calibre_port: 8080 calibre_web_path: calibre #NEEDS WORK: https://github.com/iiab/iiab/issues/529 # In addition to: http://box/books box/libros box/livres box/livros box/liv +calibreweb_install: True +calibreweb_enabled: True + dokuwiki_install: False dokuwiki_enabled: False From 98e2bb8351c0e4aaa266a6639fa2d696eb383b7f Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 27 Aug 2018 16:15:07 -0400 Subject: [PATCH 48/67] Update local_vars_medium_vpn.yml --- vars/local_vars_medium_vpn.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/vars/local_vars_medium_vpn.yml b/vars/local_vars_medium_vpn.yml index b78bc5f5a..d73fe8699 100644 --- a/vars/local_vars_medium_vpn.yml +++ b/vars/local_vars_medium_vpn.yml @@ -149,6 +149,9 @@ calibre_port: 8080 calibre_web_path: calibre #NEEDS WORK: https://github.com/iiab/iiab/issues/529 # In addition to: http://box/books box/libros box/livres box/livros box/liv +calibreweb_install: True +calibreweb_enabled: True + dokuwiki_install: False dokuwiki_enabled: False From cb565c7e0a1902b1bbdf999cd3a9aa74053941fb Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 27 Aug 2018 16:15:44 -0400 Subject: [PATCH 49/67] Update local_vars_big.yml --- vars/local_vars_big.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/vars/local_vars_big.yml b/vars/local_vars_big.yml index 3c30426bc..464ca014f 100644 --- a/vars/local_vars_big.yml +++ b/vars/local_vars_big.yml @@ -149,6 +149,9 @@ calibre_port: 8080 calibre_web_path: calibre #NEEDS WORK: https://github.com/iiab/iiab/issues/529 # In addition to: http://box/books box/libros box/livres box/livros box/liv +calibreweb_install: True +calibreweb_enabled: True + dokuwiki_install: True dokuwiki_enabled: True From 9c6dbf8ca4e50cd6a8b43b2fdbf083f3e34e5b87 Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 27 Aug 2018 16:16:01 -0400 Subject: [PATCH 50/67] Update local_vars_big_vpn.yml --- vars/local_vars_big_vpn.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/vars/local_vars_big_vpn.yml b/vars/local_vars_big_vpn.yml index 393e84f86..1e7db9e49 100644 --- a/vars/local_vars_big_vpn.yml +++ b/vars/local_vars_big_vpn.yml @@ -149,6 +149,9 @@ calibre_port: 8080 calibre_web_path: calibre #NEEDS WORK: https://github.com/iiab/iiab/issues/529 # In addition to: http://box/books box/libros box/livres box/livros box/liv +calibreweb_install: True +calibreweb_enabled: True + dokuwiki_install: True dokuwiki_enabled: True From 2c3dee0f69664d03bfc914d7321c21fd1bcc7867 Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 27 Aug 2018 16:16:42 -0400 Subject: [PATCH 51/67] Update default_vars.yml --- vars/default_vars.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/vars/default_vars.yml b/vars/default_vars.yml index e7a92d215..4654ae3e0 100644 --- a/vars/default_vars.yml +++ b/vars/default_vars.yml @@ -277,6 +277,9 @@ calibre_port: 8080 calibre_web_path: calibre #NEEDS WORK: https://github.com/iiab/iiab/issues/529 # In addition to: http://box/books box/libros box/livres box/livros box/liv +calibreweb_install: True +calibreweb_enabled: True + # DokuWiki dokuwiki_install: False dokuwiki_enabled: False From d15570604c480a0f0ec10bd68b3ba356ddb1a9be Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 27 Aug 2018 16:22:51 -0400 Subject: [PATCH 52/67] Update main.yml --- roles/9-local-addons/tasks/main.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/roles/9-local-addons/tasks/main.yml b/roles/9-local-addons/tasks/main.yml index 5b8028ec8..ba8d7d74b 100644 --- a/roles/9-local-addons/tasks/main.yml +++ b/roles/9-local-addons/tasks/main.yml @@ -9,6 +9,12 @@ when: calibre_install tags: calibre +- name: CALIBRE-WEB + include_role: + name: calibre-web + when: calibreweb_install + tags: calibre-web + - name: Recording STAGE 9 HAS COMPLETED ==================== lineinfile: dest: /etc/iiab/iiab.env From 1b95bd1614123fc9c4ba66eaf8559f64b53c9a87 Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 27 Aug 2018 16:32:50 -0400 Subject: [PATCH 53/67] Update main.yml --- roles/calibre-web/tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/calibre-web/tasks/main.yml b/roles/calibre-web/tasks/main.yml index 724481ca9..04f4a2d0d 100644 --- a/roles/calibre-web/tasks/main.yml +++ b/roles/calibre-web/tasks/main.yml @@ -36,7 +36,7 @@ ignore_errors: True when: internet_available -- name: Create calibre-web systemd service unit and httpd2 configuration +- name: Create calibre-web systemd service unit file and calibre-web.conf for Apache template: src: "{{ item.src }}" dest: "{{ item.dest }}" From 9b6ba08c910bad061bc833d4a1edf64de4d3429e Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 27 Aug 2018 17:38:16 -0400 Subject: [PATCH 54/67] Update main.yml --- roles/calibre-web/tasks/main.yml | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/roles/calibre-web/tasks/main.yml b/roles/calibre-web/tasks/main.yml index 04f4a2d0d..9a47ce905 100644 --- a/roles/calibre-web/tasks/main.yml +++ b/roles/calibre-web/tasks/main.yml @@ -47,7 +47,12 @@ - { src: 'calibre-web.service.j2', dest: '/etc/systemd/system/calibre-web.service', mode: '0644' } - { src: 'calibre-web.conf.j2', dest: '/etc/apache2/sites-available/calibre-web.conf', mode: '0644' } -- name: Provision calibre-web default metadata +- name: Does /library/calibre-web/metadata.db exist? + stat: + path: /library/calibre-web/metadata.db + register: metadatadb + +- name: Provision/Copy both default metadata files into /library/calibre-web IF metadata.db did not exist copy: src: "{{ item }}" dest: "{{ calibreweb_home }}" @@ -58,9 +63,10 @@ with_items: - roles/calibre-web/files/metadata.db - roles/calibre-web/files/metadata_db_prefs_backup.json - when: calibreweb_provision + when: not metadatadb.stat.exists + #when: calibreweb_provision -- name: Provision calibre-web with default administration settings +- name: Provision/Copy default admin settings to /library/calibre-web/config/app.db IF metadata.db did not exist copy: src: roles/calibre-web/files/app.db dest: "{{ calibreweb_config }}" @@ -68,7 +74,8 @@ group: "{{ apache_user }}" mode: 0644 backup: yes - when: calibreweb_provision + when: not metadatadb.stat.exists + #when: calibreweb_provision - name: Enable and restart calibre-web service systemd: @@ -130,5 +137,5 @@ value: "{{ calibreweb_database }}" - option: calibreweb_enabled value: "{{ calibreweb_enabled }}" - - option: calibreweb_provision - value: "{{ calibreweb_provision }}" +# - option: calibreweb_provision +# value: "{{ calibreweb_provision }}" From 612fa249853a80de58b498f1abae71123f3a4e8a Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 27 Aug 2018 17:42:18 -0400 Subject: [PATCH 55/67] Update main.yml --- roles/calibre-web/defaults/main.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/roles/calibre-web/defaults/main.yml b/roles/calibre-web/defaults/main.yml index 5de51a47e..050645537 100644 --- a/roles/calibre-web/defaults/main.yml +++ b/roles/calibre-web/defaults/main.yml @@ -15,10 +15,9 @@ calibreweb_home: "{{ content_base }}/calibre-web" # /library/calibre-web # calibre-web folder to store configuration files. calibreweb_config: "{{ calibreweb_home }}/config" -# calibre-web setup will be provisioned with default administration account, -# metadata.db and language. You may want to make this to 'False' while -# reinstalling/upgrading calibre-web. -calibreweb_provision: True +# calibre-web setup will be provisioned with default administrative account, +# metadata.db and language if /library/calibre-web/metadata.db does not exist. +# NOT CURRENTLY IN USE: calibreweb_provision: True calibreweb_settings_database: app.db calibreweb_database: metadata.db From dea6c72bdef6bf2abfa37746a95a24384f0db19d Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 27 Aug 2018 19:00:01 -0400 Subject: [PATCH 56/67] Update README.rst --- roles/calibre-web/README.rst | 73 +++++++++++++++++++++++------------- 1 file changed, 46 insertions(+), 27 deletions(-) diff --git a/roles/calibre-web/README.rst b/roles/calibre-web/README.rst index f85586ce7..584d9dcd6 100644 --- a/roles/calibre-web/README.rst +++ b/roles/calibre-web/README.rst @@ -4,26 +4,26 @@ Calibre-Web README Calibre-Web server provides a clean interface for browsing, reading and downloading e-books using an existing Calibre database. This Ansible role -installs Calibre-Web in Internet-in-a-Box (we'll call it "calibre-web" -from here on down, noting that calibreweb_* variables do not include the dash!) +installs Calibre-Web in Internet-in-a-Box (we'll call it 'calibre-web' from +here on down, noting that calibreweb_* variables do not include the dash, per +Ansible recommendations.) Access ------ -After installation you can access calibre-web at `http://box:8083` or -`http://box/calibre-web` (in future we may consider `http://box/books`). -You can log in with administrative account: +After installation you can access calibre-web at http://box/calibre-web (in +future we may consider http://box/books). Log in with administrative account: - Username: Admin + Username: Admin - Password: changeme + Password: changeme If the default configuration is not found, calibre-web server creates a new settings file with calibre-web's own default administrative account: - Username: admin + Username: admin - Password: admin123 + Password: admin123 Backend ------- @@ -32,7 +32,7 @@ You can manage the backend calibre-web server manually with these commands: systemctl enable calibre-web - systemctl start calibre-web + systemctl restart calibre-web systemctl status calibre-web @@ -41,34 +41,53 @@ You can manage the backend calibre-web server manually with these commands: Configuration ------------- -To configure calibre-web, first login as 'Admin'. Then select 'Configuration' -under the admin panel. +To configure calibre-web, login as user 'Admin' then click on 'Admin' panel on +top. See 'Configuration' options near the bottom of the page. -The default calibre-web settings are stored under -'/library/calibre-web/config/app.db' database file. The calibre-web stores -its eBook information in calibre database '/library/calibre-web/metadata.db' -file. +Critical settings are stored in: + + /library/calibre-web/config/app.db + +Your e-book metadata is stored in a Calibre-style database: + + /library/calibre-web/metadata.db + +See also: + + /library/calibre-web/metadata_db_prefs_backup.json + +Back Up Your Content +-------------------- + +Please back up the entire folder ``/library/calibre-web`` before upgrading -- +as it contains your calibre-web content **and** settings! Upgrading --------- Reinstalling calibre-web automatically upgrades to the latest version. -Please back up your configuration before reinstalling. To retain your -configuration, set `calibreweb_provision` variable to False. -You can manually upgrade using 'git' command: +Back up your content **and** settings before reinstalling, as explained above. -$ cd /opt/calibre-web +**Move your /library/calibre-web/metadata.db if you're sure you want to install +a bare/minimal metadata.db and force default settings. Then run:** -$ sudo git pull + cd /opt/iiab/iiab + + ./runrole calibre-web + +Or, to reinstall all of Internet-in-a-Box: -Backup Your Content -------------------- + cd /opt/iiab/iiab -calibre-web stores e-books and various configuration settings under -/library/calibre-web. Please back up this folder before upgrading. Also set -variable `calibreweb_provision` to False before upgrading, to prevent the -Provision script from overwriting your settings. + ./iiab-install --reinstall + +Or, if you just want to upgrade calibre-web code alone, prior to proceeding +manually: + + cd /opt/iiab/calibre-web + + git pull Known Issues ------------ From 1736fec1c615a95f17dd4927dac3fdf1b899b16b Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 27 Aug 2018 19:20:17 -0400 Subject: [PATCH 57/67] Update main.yml --- roles/calibre-web/tasks/main.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/roles/calibre-web/tasks/main.yml b/roles/calibre-web/tasks/main.yml index 9a47ce905..90e277216 100644 --- a/roles/calibre-web/tasks/main.yml +++ b/roles/calibre-web/tasks/main.yml @@ -15,7 +15,8 @@ git: repo: https://github.com/janeczku/calibre-web.git dest: "{{ calibreweb_path }}" - update: yes + force: yes + #update: yes depth: 1 version: master when: internet_available From d1d964b5d38690003987ff181eb980d7d10f288f Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 27 Aug 2018 20:19:11 -0400 Subject: [PATCH 58/67] Update main.yml --- roles/calibre-web/defaults/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/calibre-web/defaults/main.yml b/roles/calibre-web/defaults/main.yml index 050645537..ac47008c2 100644 --- a/roles/calibre-web/defaults/main.yml +++ b/roles/calibre-web/defaults/main.yml @@ -6,7 +6,7 @@ calibreweb_install: False calibreweb_enabled: False calibreweb_port: 8083 -calibreweb_url: /calibre-web +calibreweb_url: /books calibreweb_path: "{{ iiab_base }}/calibre-web" # /opt/iiab/calibre-web calibreweb_exec_path: "{{ calibreweb_path }}/cps.py" From 080a195fa807c027e9554f0eb155f18ca04a43c5 Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 27 Aug 2018 20:20:51 -0400 Subject: [PATCH 59/67] Update README.rst --- roles/calibre-web/README.rst | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/roles/calibre-web/README.rst b/roles/calibre-web/README.rst index 584d9dcd6..4ea83dbb1 100644 --- a/roles/calibre-web/README.rst +++ b/roles/calibre-web/README.rst @@ -11,8 +11,9 @@ Ansible recommendations.) Access ------ -After installation you can access calibre-web at http://box/calibre-web (in -future we may consider http://box/books). Log in with administrative account: +After installation you can access calibre-web at http://box/books + +Log in with administrative account: Username: Admin From a28e5a8dacfea20f1929c5e7aff3b9edbddc41a1 Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 27 Aug 2018 20:27:50 -0400 Subject: [PATCH 60/67] Update README.rst --- roles/calibre-web/README.rst | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/roles/calibre-web/README.rst b/roles/calibre-web/README.rst index 4ea83dbb1..9b247af02 100644 --- a/roles/calibre-web/README.rst +++ b/roles/calibre-web/README.rst @@ -13,30 +13,25 @@ Access After installation you can access calibre-web at http://box/books -Log in with administrative account: +Log in with administrative account:: Username: Admin - Password: changeme If the default configuration is not found, calibre-web server creates a -new settings file with calibre-web's own default administrative account: +new settings file with calibre-web's own default administrative account:: Username: admin - Password: admin123 Backend ------- -You can manage the backend calibre-web server manually with these commands: +You can manage the backend calibre-web server manually with these commands:: systemctl enable calibre-web - systemctl restart calibre-web - systemctl status calibre-web - systemctl stop calibre-web Configuration @@ -45,15 +40,15 @@ Configuration To configure calibre-web, login as user 'Admin' then click on 'Admin' panel on top. See 'Configuration' options near the bottom of the page. -Critical settings are stored in: +Critical settings are stored in:: /library/calibre-web/config/app.db -Your e-book metadata is stored in a Calibre-style database: +Your e-book metadata is stored in a Calibre-style database:: /library/calibre-web/metadata.db -See also: +See also:: /library/calibre-web/metadata_db_prefs_backup.json @@ -71,23 +66,20 @@ Reinstalling calibre-web automatically upgrades to the latest version. Back up your content **and** settings before reinstalling, as explained above. **Move your /library/calibre-web/metadata.db if you're sure you want to install -a bare/minimal metadata.db and force default settings. Then run:** +a bare/minimal metadata.db and force default settings. Then run**:: cd /opt/iiab/iiab - ./runrole calibre-web -Or, to reinstall all of Internet-in-a-Box: +Or, to reinstall all of Internet-in-a-Box:: cd /opt/iiab/iiab - ./iiab-install --reinstall Or, if you just want to upgrade calibre-web code alone, prior to proceeding -manually: +manually:: cd /opt/iiab/calibre-web - git pull Known Issues From 9fb5dcecfd9ada715e52516e7988c587c59c812a Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 27 Aug 2018 20:33:55 -0400 Subject: [PATCH 61/67] Update README.rst --- roles/calibre-web/README.rst | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/roles/calibre-web/README.rst b/roles/calibre-web/README.rst index 9b247af02..a9ea54365 100644 --- a/roles/calibre-web/README.rst +++ b/roles/calibre-web/README.rst @@ -3,10 +3,11 @@ Calibre-Web README ================== Calibre-Web server provides a clean interface for browsing, reading and -downloading e-books using an existing Calibre database. This Ansible role -installs Calibre-Web in Internet-in-a-Box (we'll call it 'calibre-web' from -here on down, noting that calibreweb_* variables do not include the dash, per -Ansible recommendations.) +downloading e-books using an existing Calibre database. + +This Ansible role installs Calibre-Web in Internet-in-a-Box (we'll call it +'calibre-web' from here on down, noting that ``calibreweb_*`` variables do not +include the dash, per Ansible recommendations.) Access ------ @@ -55,7 +56,7 @@ See also:: Back Up Your Content -------------------- -Please back up the entire folder ``/library/calibre-web`` before upgrading -- +Please back up the entire folder ``/library/calibre-web`` before upgrading — as it contains your calibre-web content **and** settings! Upgrading @@ -85,8 +86,8 @@ manually:: Known Issues ------------ -Trying to access an empty public bookshelf causes a system error. +* Trying to access an empty public bookshelf causes a system error. -As of August 2018, calibre-web doesn't include Calibre's e-book conversion +* As of August 2018, calibre-web doesn't include Calibre's e-book conversion functionality (Calibre itself allows teachers to convert between PDF, epub, txt etc — to permit reading on a wider array client devices and client software). From e22cc3fe0329b27518d2ff859cdddfed5ce613c6 Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 27 Aug 2018 20:41:52 -0400 Subject: [PATCH 62/67] Update README.rst --- roles/calibre-web/README.rst | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/roles/calibre-web/README.rst b/roles/calibre-web/README.rst index a9ea54365..e248814b8 100644 --- a/roles/calibre-web/README.rst +++ b/roles/calibre-web/README.rst @@ -88,6 +88,7 @@ Known Issues * Trying to access an empty public bookshelf causes a system error. -* As of August 2018, calibre-web doesn't include Calibre's e-book conversion -functionality (Calibre itself allows teachers to convert between PDF, epub, txt -etc — to permit reading on a wider array client devices and client software). +* As of August 2018, calibre-web doesn't yet include Calibre's e-book + conversion functionality (Calibre 3.27.1 [released 2018-07-06] allows + teachers to convert between PDF, epub, txt etc — to permit reading on a wider + array client devices and client software). From 20ea4fabc14ce20eea57132f0c8dce938518e0e0 Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 27 Aug 2018 21:11:15 -0400 Subject: [PATCH 63/67] Calibre Short URL's still not working, so comment them out (except for http://box/calibre in case it's later fixed!) --- roles/calibre/templates/calibre.conf | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/roles/calibre/templates/calibre.conf b/roles/calibre/templates/calibre.conf index 5f5317268..cf82bcde8 100644 --- a/roles/calibre/templates/calibre.conf +++ b/roles/calibre/templates/calibre.conf @@ -3,21 +3,21 @@ ProxyPass /{{ calibre_web_path }} http://localhost:{{ calibre_port }} ProxyPassReverse /{{ calibre_web_path }} http://localhost:{{ calibre_port }} # http://box/books mnemonic for English speakers -ProxyPass /books http://localhost:{{ calibre_port }} -ProxyPassReverse /books http://localhost:{{ calibre_port }} +#ProxyPass /books http://localhost:{{ calibre_port }} +#ProxyPassReverse /books http://localhost:{{ calibre_port }} # http://box/liv mnemonic for Haitian Creole speakers -ProxyPass /liv http://localhost:{{ calibre_port }} -ProxyPassReverse /liv http://localhost:{{ calibre_port }} +#ProxyPass /liv http://localhost:{{ calibre_port }} +#ProxyPassReverse /liv http://localhost:{{ calibre_port }} # http://box/libros mnemonic for Spanish speakers -ProxyPass /libros http://localhost:{{ calibre_port }} -ProxyPassReverse /libros http://localhost:{{ calibre_port }} +#ProxyPass /libros http://localhost:{{ calibre_port }} +#ProxyPassReverse /libros http://localhost:{{ calibre_port }} # http://box/livres mnemonic for French speakers -ProxyPass /livres http://localhost:{{ calibre_port }} -ProxyPassReverse /livres http://localhost:{{ calibre_port }} +#ProxyPass /livres http://localhost:{{ calibre_port }} +#ProxyPassReverse /livres http://localhost:{{ calibre_port }} # http://box/livros mnemonic for Portuguese speakers -ProxyPass /livros http://localhost:{{ calibre_port }} -ProxyPassReverse /livros http://localhost:{{ calibre_port }} +#ProxyPass /livros http://localhost:{{ calibre_port }} +#ProxyPassReverse /livros http://localhost:{{ calibre_port }} From cb62dfa5f8ef5d508d7159860ecfa6446794e342 Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 27 Aug 2018 21:45:12 -0400 Subject: [PATCH 64/67] Update main.yml --- roles/calibre/tasks/main.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/roles/calibre/tasks/main.yml b/roles/calibre/tasks/main.yml index 5cfb310d0..ec8b8e62a 100644 --- a/roles/calibre/tasks/main.yml +++ b/roles/calibre/tasks/main.yml @@ -99,8 +99,13 @@ # 5. WRAP UP: ENABLE CALIBRE SERVICE, http://box/books ETC -# http://box:8080 & http://box:8080/mobile WORK BUT OTHER URL'S LIKE http://box/books ARE A MESS (BOOKS RARELY DISPLAY) -- name: Create calibre.conf link for UNTESTED http://box/books etc (debuntu) +# http://box:8080 & http://box:8080/mobile WORK BUT OTHER URL'S LIKE http://box/calibre ARE A MESS (BOOKS RARELY DISPLAY) +# +# 2018-08-27 POSSIBLE FIX...CONSIDER THIS ProxyPass / ProxyPassReverse TECHNIQUE: +# https://github.com/iiab/iiab/tree/master/roles/calibre-web/templates/calibre-web.conf.j2 +# (anyway this works great for calibre-web, allowing http://box/books +# to work even better than http://box:8083 when box == 192.168.0.x !) +- name: Create calibre.conf link for UNTESTED http://box/calibre etc (debuntu) file: src: /etc/apache2/sites-available/calibre.conf dest: /etc/apache2/sites-enabled/calibre.conf From eae50899289802c37f55d034c14ed2c14039c538 Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 27 Aug 2018 21:47:18 -0400 Subject: [PATCH 65/67] Update main.yml --- roles/calibre-web/tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/calibre-web/tasks/main.yml b/roles/calibre-web/tasks/main.yml index 90e277216..7856e7e8e 100644 --- a/roles/calibre-web/tasks/main.yml +++ b/roles/calibre-web/tasks/main.yml @@ -112,7 +112,7 @@ - name: Restart Apache systemd: - name: apache2 + name: "{{ apache_service }}" # httpd or apache2 state: restarted - name: Add 'calibre-web' to list of services at /etc/iiab/iiab.ini From 5acc3f10755f69feefc8dd0959659c7f1451a3da Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 27 Aug 2018 21:48:01 -0400 Subject: [PATCH 66/67] Update main.yml --- roles/sugarizer/tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/sugarizer/tasks/main.yml b/roles/sugarizer/tasks/main.yml index ff1ffe6c6..df2ce5cab 100644 --- a/roles/sugarizer/tasks/main.yml +++ b/roles/sugarizer/tasks/main.yml @@ -200,7 +200,7 @@ - name: Restart Apache so http://box/sugarizer works (not just http://box:8089) systemd: - name: apache2 + name: "{{ apache_service }}" # httpd or apache2 state: restarted when: sugarizer_enabled From 885561abacc38a6cad3e63935305edf5e468ba69 Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 27 Aug 2018 21:52:46 -0400 Subject: [PATCH 67/67] Update calibre.conf --- roles/calibre/templates/calibre.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/calibre/templates/calibre.conf b/roles/calibre/templates/calibre.conf index cf82bcde8..0b46aad63 100644 --- a/roles/calibre/templates/calibre.conf +++ b/roles/calibre/templates/calibre.conf @@ -1,4 +1,4 @@ -# http://box/XYZ mnemonic if properly set within /etc/iiab/local_vars.yml +# http://box/XYZ mnemonic set for box/calibre within roles/calibre/defaults/main.yml for now [FAILS AS OF 2018-08-27] ProxyPass /{{ calibre_web_path }} http://localhost:{{ calibre_port }} ProxyPassReverse /{{ calibre_web_path }} http://localhost:{{ calibre_port }}