mirror of
https://github.com/iiab/iiab.git
synced 2025-03-09 15:40:17 +00:00
commit
28e1565682
16 changed files with 45 additions and 54 deletions
22
README.md
22
README.md
|
@ -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 World’s 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 World’s 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)
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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::
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
---------------------------
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue