1
0
Fork 0
mirror of https://github.com/iiab/iiab.git synced 2025-03-09 15:40:17 +00:00

Merge pull request #220 from iiab/master

sync from iiab/iiab
This commit is contained in:
A Holt 2019-02-25 11:51:27 -05:00 committed by GitHub
commit 28e1565682
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
16 changed files with 45 additions and 54 deletions

View file

@ -1,14 +1,14 @@
# Internet-in-a-Box (IIAB)
Welcome to the GitHub repository for Internet-in-a-Box (IIAB). IIAB is a small and inexpensive device which provides essential Internet resources (Wikipedia, OpenStreetMap, Khan Academy and others) *usable even when offline!*.
Welcome to the GitHub repository for [Internet-in-a-Box (IIAB)](http://internet-in-a-box.org). IIAB is a small and inexpensive device which provides essential Internet resources (Wikipedia, OpenStreetMap, Khan Academy and others) *usable even when offline!*
Create the digital library needed by your school, your medical clinic, your region and/or your very own family — accessible with any nearby smartphone, tablet or laptop.
Internet-in-a-Box provides you the tools to DIY (download and customize) a local content hotspot or server, with the very best of the Worlds Free Knowledge.
Internet-in-a-Box provides you the tools to DIY (download and customize) a local content hotspot or server, using the Internet's crown jewels and the very best of the Worlds Free Knowledge.
Schools can also choose among [30 powerful educational apps](http://wiki.laptop.org/go/IIAB/FAQ#What_services_.28IIAB_apps.29_are_suggested_during_installation.3F) for teachers and students, optionally with a complete LMS (learning management system).
FYI this community product is enabled by professional volunteers working side-by-side with schools, clinics and libraries around the world. *Thank you for being a part of our grassroots technology movement!*
FYI this community product is enabled by professional volunteers working [side-by-side](http://wiki.laptop.org/go/IIAB/FAQ#What_are_the_best_places_for_community_support.3F) with schools, clinics and libraries around the world. *Thank you for being a part of our grassroots technology movement!*
## Installation
@ -18,6 +18,10 @@ Please see "What are the best places for community support?" at http://FAQ.IIAB.
The [Installation](https://github.com/iiab/iiab/wiki/IIAB-Installation) wiki page has more intricate details e.g. if you're trying to install Internet-in-a-Box (IIAB) on a [different platform](https://github.com/iiab/iiab/wiki/IIAB-Platforms) that has not yet been tried.
Then you [add content](https://github.com/iiab/iiab/wiki/IIAB-Installation#add-content), which can of course take time when downloading multi-gigabyte Content Packs!
Finally, you can [customize your Internet-in-a-Box home page](http://wiki.laptop.org/go/IIAB/FAQ#How_do_I_customize_my_Internet-in-a-Box_home_page.3F) (typically http://box or http://box.lan) using our drag-and-drop Admin Console (http://box/admin) — to arrange Content Packs and IIAB Apps (services) for your local community's needs.
#### Built with Ansible
FYI we use [Ansible](http://wiki.laptop.org/go/IIAB/FAQ#What_is_Ansible_and_what_version_should_I_use.3F) as the underlying technology to install, deploy, configure and manage the various software components.
@ -26,16 +30,18 @@ FYI we use [Ansible](http://wiki.laptop.org/go/IIAB/FAQ#What_is_Ansible_and_what
We greatly welcome contributions from educators, librarians *and* IT/UX/QA people of all kinds!
Please see "How can I help?" at http://FAQ.IIAB.IO
Please see "[How can I help?](http://wiki.laptop.org/go/IIAB/FAQ#How_can_I_help.3F)" at: http://FAQ.IIAB.IO
Check out our [Contributors Guide](https://github.com/iiab/iiab/wiki/IIAB-Contributors-Guide) to learn more about contributing directly to Internet-in-a-Box (IIAB) software and its open community architecture for education.
*Thank you for helping us enable offline access to the Internet's open knowledge jewels, as well as "Sneakernet-of-Alexandria" distribution of local/indigenous content, when mass media channels do not serve grassroots voices.*
## Versioning
## Versions
Pre-releases of Internet-in-a-Box (IIAB) are available from http://download.iiab.io — click on the highest version number and then launch the 1-line installer.
Pre-releases of Internet-in-a-Box (IIAB) undergo continuous QA / continuous deployment and are strongly recommended.
You can also track the latest Internet-in-a-Box (IIAB) [official releases here](https://github.com/iiab/iiab/releases).
Install our latest pre-release using the 1-line installer at: http://download.iiab.io
Finally older versions are also available, from [github.com/xsce](http://github.com/xsce) and [schoolserver.org](http://schoolserver.org).
You can also consider the <!--latest Internet-in-a-Box (IIAB)--> official releases at: [github.com/iiab/iiab/releases](https://github.com/iiab/iiab/releases)
Finally, older versions are here: [github.com/xsce](http://github.com/xsce), [schoolserver.org](http://schoolserver.org)

View file

@ -10,7 +10,7 @@ CWD=`pwd`
OS=`grep ^ID= /etc/*release|cut -d= -f2`
OS=${OS//\"/}
MIN_RPI_KERN=4.9.59-v7+
MIN_ANSIBLE_VER=2.6.13
MIN_ANSIBLE_VER=2.6.14
if [ ! -f /etc/iiab/local_vars.yml ]; then

View file

@ -177,27 +177,7 @@ def set_lasttimestamp(ip):
conn.commit()
# ################### Action routines based on OS ################3
def microsoft_splash(environ,start_response):
en_txt={ 'message':"Click on the button to go to the IIAB home page",\
"FQDN": fully_qualified_domain_name, \
'btn1':"GO TO IIAB HOME PAGE",'doc_root':get_iiab_env("WWWROOT")}
es_txt={ 'message':"Haga clic en el botón para ir a la página de inicio de IIAB",\
"FQDN": fully_qualified_domain_name, \
'btn1':"IIAB",'doc_root':get_iiab_env("WWWROOT")}
txt = en_txt
if lang == "en":
txt = en_txt
elif lang == "es":
txt = es_txt
response_body = str(j2_env.get_template("simple.template").render(**txt))
status = '200 OK'
response_headers = [('Content-type','text/html'),
('Content-Length',str(len(response_body)))]
start_response(status, response_headers)
return [response_body]
def microsoft(environ,start_response):
global MICROSOFT_TRIGGERED
# firefox -- seems both mac and Windows use it
agent = environ.get('HTTP_USER_AGENT','default_agent')
if agent.startswith('Mozilla'):
@ -205,7 +185,7 @@ def microsoft(environ,start_response):
logger.debug("sending microsoft redirect")
response_body = ""
status = '302 Moved Temporarily'
response_headers = [('Location','/microsoft_splash'),
response_headers = [('Location','http://box.lan/home'),
('Content-type','text/html'),
('Content-Length',str(len(response_body)))]
start_response(status, response_headers)
@ -228,8 +208,8 @@ def android(environ, start_response):
else:
ip = environ['REMOTE_ADDR'].strip()
system,system_version = platform_info(ip)
if not system_version:
put_302(environ, start_response)
if system_version is None:
return put_302(environ, start_response)
if system_version[0:1] < '6':
logger.debug("system < 6:%s"%system_version)
location = '/android_splash'
@ -340,7 +320,7 @@ def banner(environ, start_response):
status = '200 OK'
headers = [('Content-type', 'image/png')]
start_response(status, headers)
image = open("%s/iiab-menu/menu-files/images/iiab_banner6.png"%doc_root, "rb").read()
image = open("%s/js-menu/menu-files/images/iiab_banner6.png"%doc_root, "rb").read()
return [image]
def bootstrap(environ, start_response):
@ -542,10 +522,6 @@ def application (environ, start_response):
return android(environ, start_response)
# microsoft
if environ['PATH_INFO'] == "/microsoft_splash":
return microsoft_splash(environ, start_response)
if environ['PATH_INFO'] == "/connecttest.txt" and not is_inactive(ip):
return microsoft_connect(environ, start_response)
if environ['HTTP_HOST'] == "ipv6.msftncsi.com" or\
environ['HTTP_HOST'] == "detectportal.firefox.com" or\
environ['HTTP_HOST'] == "ipv6.msftncsi.com.edgesuite.net" or\
@ -557,7 +533,7 @@ def application (environ, start_response):
environ['HTTP_HOST'] == "teredo.ipv6.microsoft.com.nsatc.net":
return microsoft(environ, start_response)
logger.debug("executing the default 204 response. [%s"%data)
logger.debug("executing the default 302 response. [%s"%data)
return put_302(environ,start_response)
# Instantiate the server

View file

@ -5,7 +5,7 @@
# If nec, change them by editing /etc/iiab/local_vars.yml prior to installing!
# Info needed to install Lokole
lokole_version: "0.1.36"
lokole_version: "0.1.38"
lokole_admin_user: admin # lowercase seems nec here (even though uppercase Admin/changeme is IIAB's OOB recommendation!)
lokole_admin_password: changeme
lokole_install_path: "{{ content_base }}/lokole" # /library/lokole

View file

@ -14,13 +14,13 @@ Prior to installing IIAB, make sure your `/etc/iiab/local_vars.yml <http://wiki.
nodered_install: True
nodered_enabled: True
After installing Node-RED as part IIAB, please log in to http://box/nodered or http://box.lan:1880 with:
After installing Node-RED as part IIAB, please log in to http://box/nodered or http://box:1880/nodered with:
Username: ``Admin``
Password: ``changeme``
To change this password, please see: `roles/nodered/defaults/main.yml <defaults/main.yml#L10-L25>`_
To change this password, please see: `roles/nodered/defaults/main.yml <defaults/main.yml#L11-L26>`_
You can monitor the Node-RED service with command::

View file

@ -2,11 +2,12 @@
# nodered_enabled: False
# nodered_port: 1880
# For http://box/nodered reverse proxy of http://box:1880/nodered
# nodered_web_path: nodered
# 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!
nodered_web_path: nodered # http://box/nodered reverse proxies http://box:1880
nodered_user: Admin
nodered_password: changeme # REMOVE THIS PASSWORD REMINDER LINE AS NECESSARY
nodered_password_hash: $2b$08$oxgvoU9et3deSbXY8UNVTOWHSTQAyEASIal86RHVMqYQJhpPMNz7q

View file

@ -192,7 +192,7 @@
name: proxy_wstunnel
when: nodered_install
- name: Restart Apache service ({{ apache_service }}) to enable/disable http://box/nodered (not just http://box:{{ nodered_port }})
- name: Restart Apache service ({{ apache_service }}) to enable/disable http://box/nodered (not just http://box:{{ nodered_port }}/nodered)
systemd:
#daemon_reload: yes
name: "{{ apache_service }}" # httpd or apache2

View file

@ -33,6 +33,13 @@ You can monitor the FreePBX service with command::
systemctl status freepbx
Raspberry Pi Known Issue
------------------------
As of 2019-02-14, "systemctl restart freepbx" fails more than 50% of the time when run on a `BIG-sized <http://wiki.laptop.org/go/IIAB/FAQ#What_services_.28IIAB_apps.29_are_suggested_during_installation.3F>`_ install of IIAB 6.7 on RPi 3 or RPi 3 B+.
It is possible that FreePBX restarts much more reliably when run on a MIN-sized install of IIAB? Please `contact us <http://wiki.laptop.org/go/IIAB/FAQ#What_are_the_best_places_for_community_support.3F>`_ if you can assist here in any way: `#1493 <https://github.com/iiab/iiab/issues/1493>`_
Raspberry Pi Zero W Warning
---------------------------

View file

@ -1,7 +1,7 @@
#!/bin/bash -e
CURR_VER="undefined" # Ansible version you currently have installed
GOOD_VER="2.7.7" # For XO laptops (pip install) & CentOS (yum install rpm)
GOOD_VER="2.7.8" # For XO laptops (pip install) & CentOS (yum install rpm)
# On other OS's we attempt the latest from PPA, which might be more recent
export DEBIAN_FRONTEND=noninteractive

View file

@ -1,7 +1,7 @@
#!/bin/bash -e
CURR_VER="undefined" # Ansible version you currently have installed
GOOD_VER="2.7.7" # For XO laptops (pip install) & CentOS (yum install rpm)
GOOD_VER="2.7.8" # For XO laptops (pip install) & CentOS (yum install rpm)
# On other OS's we attempt the latest from PPA, which might be more recent
export DEBIAN_FRONTEND=noninteractive

View file

@ -1,7 +1,7 @@
#!/bin/bash -e
CURR_VER="undefined" # Ansible version you currently have installed
GOOD_VER="2.7.7" # For XO laptops (pip install) & CentOS (yum install rpm)
GOOD_VER="2.7.8" # For XO laptops (pip install) & CentOS (yum install rpm)
# On other OS's we attempt the latest from PPA, which might be more recent
export DEBIAN_FRONTEND=noninteractive

View file

@ -292,12 +292,13 @@ nodejs_version: 10.x # was 8.x until 2019-02-02
nodered_install: False
nodered_enabled: False
nodered_port: 1880
nodered_web_path: nodered
nextcloud_install: False
nextcloud_enabled: False
# A full-featured PBX (for rural telephony, etc) based on Asterisk and FreePBX.
# Should work on Ubuntu 18.04, Debian 9 and Raspbian/RPi 3. Uses Node.js 10.x
# Works on Ubuntu 18.04, Debian 9. Experimental on Rasp/RPi 3. Uses Node.js 10.x
pbx_install: False
pbx_enabled: False
asterisk_chan_dongle: False

View file

@ -196,9 +196,9 @@ nextcloud_install: True
nextcloud_enabled: True
# A full-featured PBX (for rural telephony, etc) based on Asterisk and FreePBX.
# Should work on Ubuntu 18.04, Debian 9 and Raspbian/RPi 3. Uses Node.js 10.x
pbx_install: True
pbx_enabled: True
# Works on Ubuntu 18.04, Debian 9. Experimental on Rasp/RPi 3. Uses Node.js 10.x
pbx_install: False
pbx_enabled: False
asterisk_chan_dongle: False
# If using WordPress intensively, set apache_high_php_limits in 3-BASE-SERVER

View file

@ -196,7 +196,7 @@ nextcloud_install: True
nextcloud_enabled: True
# A full-featured PBX (for rural telephony, etc) based on Asterisk and FreePBX.
# Should work on Ubuntu 18.04, Debian 9 and Raspbian/RPi 3. Uses Node.js 10.x
# Works on Ubuntu 18.04, Debian 9. Experimental on Rasp/RPi 3. Uses Node.js 10.x
pbx_install: False
pbx_enabled: False
asterisk_chan_dongle: False

View file

@ -196,7 +196,7 @@ nextcloud_install: False
nextcloud_enabled: False
# A full-featured PBX (for rural telephony, etc) based on Asterisk and FreePBX.
# Should work on Ubuntu 18.04, Debian 9 and Raspbian/RPi 3. Uses Node.js 10.x
# Works on Ubuntu 18.04, Debian 9. Experimental on Rasp/RPi 3. Uses Node.js 10.x
pbx_install: False
pbx_enabled: False
asterisk_chan_dongle: False