diff --git a/roles/calibre-web/defaults/main.yml b/roles/calibre-web/defaults/main.yml index 4f396a77b..0515068b9 100644 --- a/roles/calibre-web/defaults/main.yml +++ b/roles/calibre-web/defaults/main.yml @@ -3,16 +3,18 @@ # calibreweb_install: False # calibreweb_enabled: False -# calibreweb_port: 8083 # PORT VARIABLE HAS NO EFFECT (as of January 2019) +# calibreweb_port: 8083 # PORT VARIABLE HAS NO EFFECT (as of January 2019) -# calibreweb_url: /books # FOR SHORT URL http://box/books -- add {box/libros, box/livres, box/livros, box/liv} etc? +# calibreweb_url1: /books # For SHORT URL http://box/books (English) +# calibreweb_url2: /libros # For SHORT URL http://box/libros (Spanish) +# calibreweb_url3: /livres # For SHORT URL http://box/livres (French) # calibreweb_home: "{{ content_base }}/calibre-web" # /library/calibre-web for books, metadata.db & config/app.db # All above are set in: github.com/iiab/iiab/blob/master/vars/default_vars.yml # If nec, change them by editing /etc/iiab/local_vars.yml prior to installing! -calibreweb_version: 0.6.3 # WAS: master +calibreweb_version: V0.6.4 # WAS: master calibreweb_venv_path: /usr/local/calibre-web calibreweb_exec_path: "{{ calibreweb_venv_path }}/cps.py" diff --git a/roles/calibre-web/tasks/main.yml b/roles/calibre-web/tasks/main.yml index 85184898b..7882e00de 100644 --- a/roles/calibre-web/tasks/main.yml +++ b/roles/calibre-web/tasks/main.yml @@ -59,7 +59,7 @@ dest: "{{ calibreweb_venv_path }}/vendor" state: link -- name: Install unit file /etc/systemd/system/calibre-web.service & /etc/apache2/sites-available/calibre-web.conf for http://box{{ calibreweb_url }}, from templates +- name: Install unit file /etc/systemd/system/calibre-web.service & /etc/apache2/sites-available/calibre-web.conf for http://box{{ calibreweb_url1 }}, http://box{{ calibreweb_url2 }}, http://box{{ calibreweb_url3 }} from templates template: src: "{{ item.src }}" dest: "{{ item.dest }}" @@ -110,7 +110,7 @@ # Default: http://box/books # SEE ALSO: https://github.com/janeczku/calibre-web/wiki/Setup-Reverse-Proxy -- name: Enable http://box{{ calibreweb_url }} with Apache +- name: Enable http://box{{ calibreweb_url1 }}, http://box{{ calibreweb_url2 }}, http://box{{ calibreweb_url3 }} with Apache command: a2ensite calibre-web.conf when: calibreweb_enabled | bool @@ -126,7 +126,7 @@ state: stopped when: not calibreweb_enabled -- name: Disable http://box{{ calibreweb_url }} with Apache +- name: Disable http://box{{ calibreweb_url1 }}, http://box{{ calibreweb_url2 }}, http://box{{ calibreweb_url3 }} with Apache command: a2dissite calibre-web.conf when: not calibreweb_enabled @@ -150,8 +150,12 @@ value: calibre-web - option: description 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_url1 + value: "{{ calibreweb_url1 }}" + - option: calibreweb_url2 + value: "{{ calibreweb_url2 }}" + - option: calibreweb_url3 + value: "{{ calibreweb_url3 }}" - option: calibreweb_path value: "{{ calibreweb_venv_path }}" - option: calibreweb_home diff --git a/roles/calibre-web/templates/calibre-web.conf.j2 b/roles/calibre-web/templates/calibre-web.conf.j2 index cb81c9ad6..369270aed 100644 --- a/roles/calibre-web/templates/calibre-web.conf.j2 +++ b/roles/calibre-web/templates/calibre-web.conf.j2 @@ -6,17 +6,22 @@ # Unnec when "{{ calibreweb_url }}" is added to Proxy* directive(s) further below # -RequestHeader set X-SCRIPT-NAME {{ calibreweb_url }} +# 2019-07-14: this line remains necessary (page barely renders without it!) +RequestHeader set X-SCRIPT-NAME {{ calibreweb_url1 }} # Appears unnec: -RequestHeader set X-SCHEME http +#RequestHeader set X-SCHEME http -ProxyPass {{ calibreweb_url }} http://localhost:{{ calibreweb_port }}/ +ProxyPass {{ calibreweb_url1 }} http://localhost:{{ calibreweb_port }}/ +ProxyPass {{ calibreweb_url2 }} http://localhost:{{ calibreweb_port }}/ +ProxyPass {{ calibreweb_url3 }} http://localhost:{{ calibreweb_port }}/ # Possibly unnec? (ProxyPassReverse rewrites internal links, that come back # from Apache proxy. Whereas e.g. kiwix.conf doesn't need this, as kiwix itself # prefixes URLs, thanks to --urlRootLocation=/kiwix/ in its systemd file.) -ProxyPassReverse {{ calibreweb_url }} http://localhost:{{ calibreweb_port }}/ +ProxyPassReverse {{ calibreweb_url1 }} http://localhost:{{ calibreweb_port }}/ +ProxyPassReverse {{ calibreweb_url2 }} http://localhost:{{ calibreweb_port }}/ +ProxyPassReverse {{ calibreweb_url3 }} http://localhost:{{ calibreweb_port }}/ # diff --git a/roles/calibre/defaults/main.yml b/roles/calibre/defaults/main.yml index aad43da11..b41475e23 100644 --- a/roles/calibre/defaults/main.yml +++ b/roles/calibre/defaults/main.yml @@ -18,7 +18,7 @@ # http://box:8080 & http://box:8080/mobile WORK FOR NOW, but short/mnemonic # URL's like http://box/calibre DON'T YET WORK -- BOOKS RARELY DISPLAY: # calibre_web_path: calibre # NEEDS WORK: https://github.com/iiab/iiab/issues/529 -# Avoid URL collisions with calibreweb_url ! +# Avoid URL collisions w/ calibreweb_url1, calibreweb_url2, calibreweb_url3 below! # All above are set in: github.com/iiab/iiab/blob/master/vars/default_vars.yml # If nec, change them by editing /etc/iiab/local_vars.yml prior to installing! diff --git a/roles/kiwix/templates/iiab-make-kiwix-lib.py b/roles/kiwix/templates/iiab-make-kiwix-lib.py index b966d6240..7c9cb7412 100755 --- a/roles/kiwix/templates/iiab-make-kiwix-lib.py +++ b/roles/kiwix/templates/iiab-make-kiwix-lib.py @@ -215,7 +215,7 @@ def write_zim_versions_idx(): get_substitution_data(perma_ref, zims_installed, path_to_id_map) zim_versions[perma_ref]['article_count'] = articlecount zim_versions[perma_ref]['media_count'] = mediacount - size = human_readable(size) + size = human_readable(float(size) * 1024) # kiwix reports in K zim_versions[perma_ref]['size'] = size zim_versions[perma_ref]['tags'] = tags zim_versions[perma_ref]['language'] = lang @@ -228,7 +228,7 @@ def write_zim_versions_idx(): fp.close() else: print zim_version_idx_dir + " not found." - + def get_substitution_data(perma_ref,zims_installed, path_to_id_map): #reconstruct the path in the id map path = 'content/' + zim_versions[perma_ref]['file_name'] + '.zim' @@ -290,6 +290,7 @@ def get_kiwix_catalog_item(perma_ref): def human_readable(num): # return 3 significant digits and unit specifier + # TFM 7/15/2019 change to factor of 1024, not 1000 to match similar calcs elsewhere num = float(num) units = [ '','K','M','G'] for i in range(4): @@ -299,7 +300,7 @@ def human_readable(num): return "%.1f%s"%(num,units[i]) if num < 1000.0: return "%.0f%s"%(num,units[i]) - num /= 1000.0 + num /= 1024.0 # Now start the application if __name__ == "__main__": diff --git a/roles/lokole/README.rst b/roles/lokole/README.rst index bbea859f9..d6d8b61c2 100644 --- a/roles/lokole/README.rst +++ b/roles/lokole/README.rst @@ -68,6 +68,15 @@ To reset the database, run the following command:: This command will remove all users and all emails from the system. +Nightly Internet Email Sync (Not Easy!) +--------------------------------------- + +The Lokole software can be configured to access the Internet via USB modem, SIM card, or Ethernet, by setting the environment variable ``OPWEN_SIM_TYPE`` in the configuration file ``/etc/apache2/sites-enabled/lokole.conf``. By default, this installation of Lokole is set to local-only (offline) mode, in which users can only send emails to other users on the same installation and cannot send emails over the Internet. This has been done by setting ``OPWEN_SIM_TYPE`` to ``LocalOnly``. + +If configured to work with a USB modem or other form of Internet connection, Lokole will sync with the cloud server (operated by `Ascoderu `_) on a nightly basis to deliver and receive emails globally. However, arranging this is extremely complicated. You would need a compatible form of connection and an Internet expert familiar with modem protocols, MX records, etc. Ask that person to read the `Lokole software README `_ in its entirety, to help you understand whether this is realistic for your organization. + +Lokole and Internet-in-a-Box would welcome a business plan (whether volunteer-based, grant-based or for-profit) from someone willing to operationalize this — making it relatively hassle-free for schools, clinics, libraries and orphanages around the world — that generally do not have access to technical experts. Please `contact us `_ if you have the capacity to help make such a social enterprise happen. + Troubleshooting --------------- diff --git a/roles/lokole/templates/webapp_secrets.sh.j2 b/roles/lokole/templates/webapp_secrets.sh.j2 index 5bab658f5..1f3c38566 100644 --- a/roles/lokole/templates/webapp_secrets.sh.j2 +++ b/roles/lokole/templates/webapp_secrets.sh.j2 @@ -1,3 +1,4 @@ +export OPWEN_SIM_TYPE='LocalOnly' export OPWEN_STATE_DIRECTORY='{{lokole_run_directory}}' export OPWEN_SESSION_KEY='{{ lookup('password', '/dev/null chars=ascii_letters,digits,_ length=32') }}' export OPWEN_PASSWORD_SALT='{{ lookup('password', '/dev/null chars=ascii_letters,digits,_ length=16') }}' diff --git a/vars/default_vars.yml b/vars/default_vars.yml index 85668f590..bd11ba271 100644 --- a/vars/default_vars.yml +++ b/vars/default_vars.yml @@ -486,7 +486,7 @@ calibre_port: 8080 # http://box:8080 & http://box:8080/mobile WORK FOR NOW, but short/mnemonic # URL's like http://box/calibre DON'T YET WORK -- BOOKS RARELY DISPLAY: calibre_web_path: calibre # NEEDS WORK: https://github.com/iiab/iiab/issues/529 -# Avoid URL collisions with calibreweb_url: below! +# Avoid URL collisions w/ calibreweb_url1, calibreweb_url2, calibreweb_url3 below! # WARNING: Calibre-Web (below) depends on Calibre's own /usr/bin/ebook-convert # program, so we recommend you also install Calibre (above!) @@ -494,9 +494,11 @@ calibre_web_path: calibre # NEEDS WORK: https://github.com/iiab/iiab/issues/5 # Calibre-Web alternative to Calibre, offers a clean/modern UX calibreweb_install: False calibreweb_enabled: False -calibreweb_port: 8083 # PORT VARIABLE HAS NO EFFECT (as of January 2019) +calibreweb_port: 8083 # PORT VARIABLE HAS NO EFFECT (as of January 2019) # http://box/books works. Add {box/libros, box/livres, box/livros, box/liv} etc? -calibreweb_url: /books +calibreweb_url1: /books # For SHORT URL http://box/books (English) +calibreweb_url2: /libros # For SHORT URL http://box/libros (Spanish) +calibreweb_url3: /livres # For SHORT URL http://box/livres (French) calibreweb_home: "{{ content_base }}/calibre-web" # /library/calibre-web # Internet Archive Decentralized Web - create your own offline version box:4244 diff --git a/vars/local_vars_big.yml b/vars/local_vars_big.yml index 8f70661ea..440ab63c5 100644 --- a/vars/local_vars_big.yml +++ b/vars/local_vars_big.yml @@ -306,7 +306,7 @@ calibre_enabled: False calibre_port: 8080 # Change calibre to XYZ to add your own mnemonic URL like: http://box/XYZ calibre_web_path: calibre #NEEDS WORK: https://github.com/iiab/iiab/issues/529 -# Avoid collisions with calibreweb_url: below! +# Avoid URL collisions w/ calibreweb_url1, calibreweb_url2, calibreweb_url3 below! # WARNING: Calibre-Web (below) depends on Calibre's own /usr/bin/ebook-convert # program, so we recommend you also install Calibre (above!) @@ -314,9 +314,11 @@ calibre_web_path: calibre #NEEDS WORK: https://github.com/iiab/iiab/issues/529 # Calibre-Web alternative to Calibre, offers a clean/modern UX calibreweb_install: True calibreweb_enabled: True -calibreweb_port: 8083 # PORT VARIABLE HAS NO EFFECT (as of January 2019) +calibreweb_port: 8083 # PORT VARIABLE HAS NO EFFECT (as of January 2019) # http://box/books works. Add {box/libros, box/livres, box/livros, box/liv} etc? -calibreweb_url: /books +calibreweb_url1: /books # For SHORT URL http://box/books (English) +calibreweb_url2: /libros # For SHORT URL http://box/libros (Spanish) +calibreweb_url3: /livres # For SHORT URL http://box/livres (French) calibreweb_home: "{{ content_base }}/calibre-web" # /library/calibre-web # Internet Archive Decentralized Web - create your own offline version box:4244 diff --git a/vars/local_vars_medium.yml b/vars/local_vars_medium.yml index 955e0c7f5..01e8d4f79 100644 --- a/vars/local_vars_medium.yml +++ b/vars/local_vars_medium.yml @@ -306,7 +306,7 @@ calibre_enabled: False calibre_port: 8080 # Change calibre to XYZ to add your own mnemonic URL like: http://box/XYZ calibre_web_path: calibre #NEEDS WORK: https://github.com/iiab/iiab/issues/529 -# Avoid collisions with calibreweb_url: below! +# Avoid URL collisions w/ calibreweb_url1, calibreweb_url2, calibreweb_url3 below! # WARNING: Calibre-Web (below) depends on Calibre's own /usr/bin/ebook-convert # program, so we recommend you also install Calibre (above!) @@ -314,9 +314,11 @@ calibre_web_path: calibre #NEEDS WORK: https://github.com/iiab/iiab/issues/529 # Calibre-Web alternative to Calibre, offers a clean/modern UX calibreweb_install: True calibreweb_enabled: True -calibreweb_port: 8083 # PORT VARIABLE HAS NO EFFECT (as of January 2019) +calibreweb_port: 8083 # PORT VARIABLE HAS NO EFFECT (as of January 2019) # http://box/books works. Add {box/libros, box/livres, box/livros, box/liv} etc? -calibreweb_url: /books +calibreweb_url1: /books # For SHORT URL http://box/books (English) +calibreweb_url2: /libros # For SHORT URL http://box/libros (Spanish) +calibreweb_url3: /livres # For SHORT URL http://box/livres (French) calibreweb_home: "{{ content_base }}/calibre-web" # /library/calibre-web # Internet Archive Decentralized Web - create your own offline version box:4244 diff --git a/vars/local_vars_min.yml b/vars/local_vars_min.yml index e26d98535..c9e76bbe5 100644 --- a/vars/local_vars_min.yml +++ b/vars/local_vars_min.yml @@ -306,7 +306,7 @@ calibre_enabled: False calibre_port: 8080 # Change calibre to XYZ to add your own mnemonic URL like: http://box/XYZ calibre_web_path: calibre #NEEDS WORK: https://github.com/iiab/iiab/issues/529 -# Avoid collisions with calibreweb_url: below! +# Avoid URL collisions w/ calibreweb_url1, calibreweb_url2, calibreweb_url3 below! # WARNING: Calibre-Web (below) depends on Calibre's own /usr/bin/ebook-convert # program, so we recommend you also install Calibre (above!) @@ -314,9 +314,11 @@ calibre_web_path: calibre #NEEDS WORK: https://github.com/iiab/iiab/issues/529 # Calibre-Web alternative to Calibre, offers a clean/modern UX calibreweb_install: False calibreweb_enabled: False -calibreweb_port: 8083 # PORT VARIABLE HAS NO EFFECT (as of January 2019) +calibreweb_port: 8083 # PORT VARIABLE HAS NO EFFECT (as of January 2019) # http://box/books works. Add {box/libros, box/livres, box/livros, box/liv} etc? -calibreweb_url: /books +calibreweb_url1: /books # For SHORT URL http://box/books (English) +calibreweb_url2: /libros # For SHORT URL http://box/libros (Spanish) +calibreweb_url3: /livres # For SHORT URL http://box/livres (French) calibreweb_home: "{{ content_base }}/calibre-web" # /library/calibre-web # Internet Archive Decentralized Web - create your own offline version box:4244