< IIAB(Redirected from XS Community Edition/FAQ)
Jump to: navigation, search

This IIAB XSCE content does not reflect the opinion of OLPC. These pages were created by members of a volunteer community supporting OLPC and deployments.


How does Internet-in-a-Box (IIAB) help?

Bring the power of a free Digital Library of Alexandria into the hands of any school worldwide! Internet-in-a-Box is also used in medical clinics and libraries. Might you want to create your own Internet-in-a-Box? [1] [2]

If so, read about the original Internet-in-a-Box (rich open content often included with IIAB) to build up your community's very own 21st century digital library below.

An Internet-in-a-Box (IIAB) server brings your classroom/school laptops together, communicating & coordinating learning in ways that deeply empower kids, teachers and community.

IIAB is built by professional volunteers, inspired by One Laptop per Child's famous laptops and their innovative Sugar Learning Platform -- but with a wider vision of serving all!

Where is Internet-in-a-Box used?

Internet-in-a-Box (IIAB) was originally called the OLPC School Server Community Edition (XSCE) and is in use in more than a dozen countries, from smaller communities to large-scale deployments.

Examples include several orphanages and schools in Haiti to a youth community in Malaysia, to villages in Northern India, to a girls science school in Rwanda, to rural communities and libraries across southwest Ghana -- and more broad Central American deployments like Nicaragua, Costa Rica and 6 schools in the Dominican Republic beginning late 2015.

Libraries and rural medical clinics are also avid users of IIAB.

Many contributors are also using IIAB for more personal/grassroots purposes as well, helping refine our community product for diverse/larger impacts.

What can I do with E-books and Internet-in-a-Box?

Many quality gems are downloadable to your Internet-in-a-Box server. If however downloading is not feasible, sharing or purchasing a hard-drive packed full of incredible Wikipedia + Maps + Literature + Khan Academy learning resources is possible. Contact http://unleashkids.org volunteers should this be necessary.

If downloading is possible with a very fast Internet connection, follow the "Add Content" instructions.

Either way, entirely new opportunities are opening up for semi-connected schools and offline libraries worldwide, for the 1st time ever. Medical clinics and museums are also taking advantage, with prisons seriously considering Internet-in-a-Box too.

We'd like educators' suggestions especially -- how should kids best take advantage of these crown jewels of learning? Perhaps starting with OLPC/Sugar's laptop browser in places like:

http://box            Your Internet-in-a-Box Library!
http://box/usb        Content from USB sticks/drives, that teachers can insert anytime
http://box:3000       Kiwix (amazing content & videos, contained in searchable ZIM files)
http://box:8008       KA Lite (Khan Academy videos & exercises, with its own content downloader)
http://box:8080       E-Book Library: see Calibre FAQ, calibre-server's manual to customize and calibredb's manual to add books!
http://box/maps       OpenStreetMap: synonym for http://box/iiab/static/map.html or http://box/modules/en-worldmap/map.html
http://box/docs       Future synonym for http://box/nextcloud or http://box/owncloud
http://box/wiki       DokuWiki: collaborate on documents
http://box/elgg       Elgg social network for e-learning
http://box/info       IT support docs & eventually vids, offlined for all
http://box/books      Future Synonym for Calibre E-book Library
http://box/moodle     Moodle 3.1 LTS (learning management system)
http://box/wordpress  WordPress 4.9+ (blogging & community publishing)
http://box/runestone  Runestone Interactive Textbooks (example)
http://box/sugarizer  Sugar Learning Platform originally from One Laptop Per Child
http://box/admin               Admin Console: operators log in here, to improve your Internet-in-a-Box server/system
http://box/munin               Network/Infra monitoring
http://box/awstats/awstats.pl  Usage statistics

In the future, we hope the Pathagar "E-book library" will begin to work much better with IIAB!

See: Can teachers display their own content?
See: How do I customize my server's home page?
See: What are the default passwords?

Can teachers display their own content?

Yes, teachers can spontaneously insert (and remove!) their own USB memory sticks and USB drives anytime. Somewhat like an informal projector, the teacher's content appears for students almost instantly at:



  1. In advance, the teacher must create a folder called "usb" on their USB memory stick, placing audio/video materials, handouts, challenges or presentation(s) inside that folder.
  2. Then the teacher inserts their USB stick/drive into any one of the Internet-in-a-Box server's USB ports.
  3. Done! The "teacher content" is available (live) to students within seconds. WARNING: Older browsers and non-standard phones/devices cannot access http://box/usb, and so require that students type in http://box.lan/usb or

Clarification: we recommend USB memory sticks formatted with the FAT32 filesystem. Linux filesystems like ext4 can also work. Automount support for newer/large exFAT-formatted sticks and NTFS-formatted portable disks was added in February 2018.

Clarification: it's OK to insert multiple USB sticks/drives at the same time. If so, content from each USB stick/drive is visible within http://box/usb, e.g. in sub-folders that will be obvious, like the following:


More details in the Install Doc. Finally, if you have a screen attached to your server, and occasionally see an old error as follows, it is safe to ignore it:

Unable to mount 2.0 GB Volume
Device /dev/sdb1 us already mounted at '/media/usb0'.

See: How do I customize my server's home page?

Can I buy my own Internet-in-a-Box?

You can order a basic medical version of Internet-in-a-Box from the Wiki Project Med Foundation who will ship from Canada or India to almost any location worldwide, if you agree to provide feedback to help improve the product for all.

What hardware should I use?

Internet-in-a-Box (IIAB) is free and open source software that runs on many different hardware platforms:

  • Raspberry Pi 3 ($35 + parts) and the Raspberry Pi Zero W ($10 + parts): It continues to astonish us how powerful these 2 tiny "RPi" computers really are, able to serve 32 students simultaneously, with their powerful built-in Wi-Fi. We strongly recommend the RPi 3, for DIY implementers building their 1st digital library to serve a classroom. For smaller kiosk scenarios serving just a few people (Internet-in-a-Box is used in rural medical clinics and similar) definitely consider the RPi Zero W.
  • Refurbished "Windows" Laptops: Quality donated laptops can sometimes work extremely well to install Internet-in-a-Box, ironically acting as a server for an entire developing world classroom or small school. However an external Wi-Fi router is usually required, making installation more complex than RPi and Mini PCs (whose internal Wi-Fi is generally capable of AP mode, so an external Wi-Fi router is not required in many/most classrooms!) Still, the spaghetti wiring of an external router may be worth it, if the laptop has a reasonably new battery, acting as a de facto UPS (critically important in developing world schools where electricity comes and goes). Of course quality used laptops with large hard disks and multiple GB of memory are better yet. Finally: make sure the laptop runs Linux well, and has a BIOS that permits it to run while the screen is closed.
  • Intel NUC: Avoid classic/desktop PCs whenever possible, as they consume far too much electricity. However tough, well-rounded, low-power Mini PCs (such as the Intel NUC) world extremely well, have proven very effective as school servers in the developing world since 2014. We typically insist on NUC models that accept SATA (2.5 inch hard drives, HDD or SSD) and work with DC voltages up to 19V. Warning: low-end NUC models only work right near 12V, and so are not reliable using lead-acid batteries that you find in most solar installations. Finally: the NUC is not a fan-less device, but nevertheless has proved very reliable across diverse climates.
  • Other Mini PC competitors: MSI units have proven very solid, and Zotac perhaps less so. Definitely consider Gigabyte BRIX (e.g. GB-BSI3H-6100) which is almost an exact clone of the NUC. As a bonus, the BRIX allows internal Wi-Fi to scale beyond the Intel NUC's annoying limitation of 12 connections maximum. To make this happen, insert an appropriate Atheros Wi-Fi module (typically < $10) into the BRIX. George Hunt can answer questions around which Atheros Wi-Fi modules have been tested to work, as of February 2017. Recap: scaling up internal Wi-Fi is sadly not possible with Intel NUCs since 2015 (5th generation NUCs and onwards) as Intel's Wi-Fi module is unfortunately soldered in.
  • ARM Mini PCs: CPUs like TrimSlice / Utilite and Cubox by SolidRun might one day catch up, providing much-needed community momentum and packaging. To date however we have been disappointed with their firmware, and the availability of Linux kernels/drivers working with internal SATA / internal Wi-Fi (e.g. AP mode), to truly make teachers' lives easier. But check back as many more global deployments' experiences accumulate, and rugged low-end hardware increasingly emerges, on OrangePi or similar?
  • One Laptop Per Child: We do NOT recommend the original XO-1 laptop as a server (256MB RAM is insufficient). However several have successfully deployed the very rugged XO-1.5, XO-1.75 (ARM) and XO-4 (ARM) as school servers in Haiti and Malaysia etc. Thanks to George Hunt's amazing work here over the years.

MEMORY: Some do fine with 512MB RAM (even in 2017!) serving static content from the RPi Zero W. Others do just fine serving dozens of simultaneous video streams from an RPi3 with 1GB RAM. Finally, certain others require 8GB or more within a Mini PC, when server-side loads become intensive. For example if you are running an LMS, experiencing a lot of OpenStreetMap traffic, or when fileserver-like capabilities are mandated for all students.

STORAGE: While there's increasing movement from hard disks to SSDs and MicroSDs every year, many others still swear by tried-and-true hard drives. Certainly rotating media are the clear winner when large-capacities are needed at a low price. In the end all storage technologies can fail, each in there own ways. So it's far more more important to start with the actual community's learning goals, engaging educators around their authentic content/interaction needs — and then narrow in on storage capacity/technologies later. Alternative: consider this earlier discussion of external USB hard disks and their possible risks.

HEAT/DIRT/DUST: Ensure your server is positioned with ample room around it for ventilation, away from direct sunlight. Dirt/dust will collect inside it almost regardless, and should certainly be removed from time to time.

Thank you for asking further hardware questions at http://lists.laptop.org/listinfo/server-devel !

What OS should I use?

Our latest OS (Linux distribution) recommendations should always be posted within the IIAB Platforms document. Generally Raspbian on Raspberry Pi 3 is best for people getting their feet wet in 2018, regardless whether they prefer the full/graphical Raspbian with Desktop (includes many amazing desktop apps for learning, on LXDE-pi) or Raspbian Lite (does not include X Windows) for a more classic/headless server.

Others like Reno McKenzie & Josh Dennis were experimenting successfully (some tweaks required!) with IIAB on the lean & mean http://DietPi.com in February/March 2017.

In recent years, Security/Maintenance/TCO concerns have caused deployments to step back from the (bleeding) edge, preferring LTS(*) multi-year support updates that accompany stable OS's like CentOS 7 (security updates until June 30, 2024), Debian 9 (security updates until June 2022) — or Ubuntu LTS (64-bit 16.04) (security updates until April 2021) which was newly supported as of IIAB 6.3.

(*) Many schools/libraries/clinics now believe LTS is necessary to avoid the rapid annual turnover of Fedora (inherited from OLPC in 2012, during the transition from XS to XSCE). Whereas in the past, deployments often preferred the cutting-edge features provided by a recent version of the Fedora OS, similar to OLPC OS 13.2.9.

Finally, if there are situations where porting to a new OS/distro will tangibly help schools/libraries/clinics across an entire region, don't hesitate to reach out (on our server-devel mailing list, or contact holt @ laptop.org) as you assess the scope-of-work to complete such a job.

Is a quick installation possible?

Verify that your hardware and Linux OS are appropriate! Visual shortcuts to some of the more common installs can then be found at the top-right of http://schoolserver.org = http://wiki.iiab.io (please see http://download.iiab.io and the Install Doc for more!)

To install Internet-in-a-Box (IIAB) 6.5 pre-releases onto Raspbian on a $35 Raspberry Pi 3 computer, try any one of our 1-line installers. This is our most popular, including ~12 server apps:

  curl download.iiab.io/6.5/rpi/load.txt | sudo bash

This takes almost 2 hours. An Ethernet cable (connected to fast, live Internet) installed into the back of your Raspberry Pi 3 is strongly recommended during installation, as well as a very modern microSD card (with fast write speeds). For an even faster installation, try just ~6 server apps:

  curl download.iiab.io/6.5/rpi/load-min.txt | sudo bash

For a full suite of ~20 server apps, run the following if you're willing to work through a multi-hour install:

  curl download.iiab.io/6.5/rpi/load-big.txt | sudo bash

If you get stuck installing, definitely get in touch!

On classical PC hardware, follow the "Do Everything from Scratch" instructions. MBR was preferred in the past, but UEFI can work (as set in your PC/server's BIOS) if your Linux distribution supports that. Beware that partitioning is critical particularly with distros like CentOS that attempt to allocate all extra/surplus space to /home by default (this won't work, as the most voluminous content will be placed in /library instead!) Finally, avoid enabling LVM partitioning, especially if you'll later be needing Clonezilla to duplicate the disk.

Then, to get down to real business (education!) there are a variety of ways to add content to your Internet-in-a-Box (IIAB) server.

After installation, please explore learning materials within your server's home page (http://box or http://box.lan) and also get to know the Admin Console (http://box/admin or http://box.lan/admin) which permits you to (1) configure your school server and (2) download new content. Example screenshots: (stale graphics from 2015, but that's the idea!)

Finally, to arrange an elegant portal/home page (typically http://box) for all your students or users to explore, we recommend you organize your chosen Content Packs using the Dynamic Menuing system. As explained just below, this allows you to rapidly prototype and iterate your portal/home page's presentation, tailoring it to your community/library or clinic's precise needs.

Legacy Install Techniques, many of which are deprecated as they long predate 2017, just for the record: Tom Gilliard's 6.0 Installation Notes & Screenshots and Tony Anderson's XSCE 6.0 Install Recipe. Jerry Vonau and others have demonstrated that UEFI support out-of-the-box may in fact be possible in future. Detailed install instructions for the older XSCE 5.1 can still be found here.

See: What hardware should I use?
See: What OS should I use?
See: What are the default passwords?
See: What are the best places for community support?

My Android device says "Connected, no Internet" and won't browse http://box

The message "Connected, no Internet" is normal.

Just beware Android may block you from using Wi-Fi to access Internet-in-a-Box content (preventing your browser from displaying http://box) unless you follow these instructions:

  1. Connect your Android device to the correct Wi-Fi for Internet-in-a-Box.
  2. Recent versions of Android will generally beep within about 1 minute, announcing "Wi-Fi has no Internet access" and "Tap for options".
  3. Tap for more options (you may first need to use your finger to find this notification, pulling it down from the top of your Android screen).
  4. When it asks "This network has no Internet access. Stay connected?" be sure to tap "Yes" !
  5. If you were unable to tap in time, and http://box is still not working in your browser, try to "Forget network" (within Android's Settings -> Wi-Fi networks) then start over, proceeding from Step 1. above.

What are the default passwords?

For KA Lite, ownCloud, Moodle, Elgg, DokuWiki, etc the administrative user is Admin (don't forget the capital A) and the default/initial password is: changeme

For the Admin Console(*) at http://box/admin, http://box.lan/admin or, the username is iiab-admin and the default/initial password is: g0adm1n (note the numbers 0, 1)

Change iiab-admin's password before connecting your server to the Internet. You can do this within http://box/admin -> Utilities menu — or at the command line, if you type "passwd iiab-admin".

If your OS is Raspbian: also change the password for user "pi" from "raspberry" before connecting to the Internet. At the command line, type "passwd pi". Starting with IIAB/XSCE 6.2's standardized images (beginning April 2017) we removed the passwords for user "root" (and where possible for user "pi" too, within headless images), by setting their password fields to * (the asterisk character) within /etc/shadow. This prevents direct ssh access to such accounts.

Still, both users "iiab-admin" and "pi" (if they exist) have root (sudoer) powers. As such, advanced operators generally log in as iiab-admin and then escalate to root using "sudo su -".

(*) While the Admin Console can change iiab-admin's password instantly, it's important to understand that many Admin Console changes (within its Configure menu especially) require you click "Save Configuration" then "Install Configured Options" and then wait for this to complete. Monitor for Status "SUCCEEDED" under Utilities menu -> Display Job Status (takes about 20 min on a Raspberry Pi 3, depending what changes you've requested!)

Finally, certain install-time passwords are listed in local_vars.yml which overrides passwords listed in default_vars.yml. If you change any of these install-time passwords (by modifying local_vars.yml) don't forget to then run "Install Configured Options" above!

Warning: KA Lite's Admin password cannot be changed in a browser, so you need to run "kalite manage changepassword Admin" (http://box:8008 can only change KA Lite's user passwords). Help is available if you type "kalite manage help changepassword".

See: What can I do with E-books and Internet-in-a-Box?
See: What is local_vars.yml and how do I customize it?
See: What security tips exist?
See: How can I remotely manage my Internet-in-a-Box?

How do I customize my server's home page?

Starting April 2017, our install images often include sample content to more quickly springboard implementers into content curation, as outlined within Guidelines for Creating IIAB Images incl Sample Content Packs.

If you want to showcase your school or community logo/colors on your server's home page / landing page / start page / launch page / navigation page / portal (what people see at http://box or http://box.lan) you can customize /library/www/html/home/index.html, where most standard HTML tags should work. Please create a backup copy of your ongoing index.html beautifications regularly!

Starting with IIAB/XSCE 6.1 and 6.2 especially, Dynamic Menuing is an alternative approach for those wanting far less hand-coding, that (as a bonus) auto-adjusts all http://SERVERNAMES:PORTS live using browser-side Javascript, for maximum deployment flexibility. To enable this on your server, please read about Menu Definitions and HTML Fragments within this page: https://github.com/iiab/iiab/wiki/IIAB-Menuing

Likewise as many educators want quick customizations on their portal/menuing beyond the logo, some may consider experimental WYSIWYG tools like DokuWiki, WordPress, or Moodle. For example you might lay out your content in an indigenous language, linking to content gems truly relevant to locals. To try these approaches, visit your server's Admin Console at http://box/admin -> Configure tab -> Server Portal -> Select Server Home Page. As of IIAB/XSCE 6.2, your choices include:

  • /home
  • /wordpress
  • /wiki

Enable WordPress or DokuWiki correspondingly, at the top of that page. Then click "Save Configuration", click "Install Configured Options" then monitor the result (typically takes 15-25min on a Raspberry Pi 3) under "Utilities" tab -> "Display Job Status".

If you need further customization suggestions and tips, don't hesitate to write to: https://groups.google.com/group/unleashkids !

See: What can I do with E-books and Internet-in-a-Box?
See: Can teachers display their own content?
See: What are the default passwords?

How do I provide Solar Power to my school, library or orphanage?

This is a very hard question depending on the growth path of your electrical needs, maintenance options within the country in question, price, theft, etc. Some experienced deployment voices provide concrete examples, typically involving a standard 12-volt deep-cycle battery. But don't hesitate to get your feet wet researching and designing a right-sized solar nanogrid for your own community:

Thanks for taking solar engineering seriously, as we do wherever possible! (Engineers definitely subscribe to Richard Smith's "power" discussion list if you can.)

How do I provide Wi-Fi (wireless) to all my kids?

If you want a self-contained (single-unit) knowledge hotspot, consider Wi-Fi capability physically inside your server (despite its limited radio power?) If so, run "iw list" to determine if it is capable of Access Point (AP) mode, enabled by hostapd. Of course you may need to run "yum install iw" first, so the iw command is available on your server.

If you want higher-powered Wi-Fi equipment and antenna(e) fully external to the server itself, consider approaches from http://villagetelco.org where possible, detailed below. More experimentally, Anish Mangal has experimented successfully with cantenna(e) in India, between classrooms and schools.

Within classrooms, many deployments use the $20 TP-LINK TL-WR841N as these Wi-Fi Routers have proved generally reliable over the years.

We recommend deployments double the classroom capacity of these WR841 routers (to almost 40 simultaneous connections) by trying Terry Gillett's SECN-XSCE firmware here: (based on OpenWrt, but far simpler)


April 2016's RC3 firmware release is increasingly stable: strongly consider it or more recent. It should be followed shortly by a stable/official release we hope. There is firmware for all recent versions of WR841 hardware (v8, v9, v10 and v11) so be sure to select the correct one.

When flashing a TP-LINK with original factory firmware, install using a firmware file labelled "factory" from the RC1 or RC2 folders. Otherwise, use a firmware file labelled "sysupgrade" to upgrade from one OpenWrt-based version to another.

There is also a wiki page outlining how to use PoE (Power over Ethernet) and how to daisy-chain multiple such routers together:


Most important: take advantage of community support, where volunteers are eager to help on the server-devel@lists.laptop.org and xsce-devel@googlegroups.com mailing lists. There's always tons to learn from the latest Wi-Fi fieldwork success stories.

Also consider IRC channel #schoolserver on http://webchat.freednode.net for live chat, and unleashkids@googlegroups.com, which is a great place to ask educators about various schools' filtering recommendations, across different age groups and cultures, whether your school is online or off!

Finally, don't hesitate to blog or write up your own specific recommendations, no matter how large or small your school. This vital engineering shop-talk upholds more schools, libraries and orphanages than we can count (building our community repertoire of Wi-Fi wisdom, often far from the Internet, creating "knowledge hotspots" in every sense) in turn allowing kids to take advantage of amazing free Digital Libraries like http://internet-in-a-box.org and Pathagar e-books.

How do I change the wireless network name?

The wireless network name is how people connect to your school server when they are using a Wi-Fi device. This name is also known as an SSID.

How to change it depends on whether your wireless access point is fully-external (such as a wireless router) or rather under direct OS control (e.g. internal, or a tiny USB-connected wireless adapter) :

  • If it's fully-external, change its SSID (wireless name) using the documentation that came with the router.
  • If it's under direct OS control, then the school server is the wireless access point. Earlier, George Hunt's command "xs-hotspot-on <SSID>" solved this on XO-1.5 and similar. Conversely "xs-hotspot-off" to turn the internal hotspot off entirely. You might also log into your server's Admin Console (http://box/admin) then change the SSID (wireless name) there, under Configure -> Internal WiFi AP -> Internal Wifi Access Point Name. This setting will not take effect until you click on Configure menu -> Install Configured Options (red button), and wait many minutes for all new settings to take effect (monitor status under Utilities menu -> Display Job Status).

WARNING: do not edit /etc/hostapd/hostapd.conf directly, unless you want these custom settings trashed upon updating your Internet-in-a-Box! If you still insist on editing this file despite the danger, consider "systemctl restart hostapd.service" to avoid rebooting.

See: What are the default passwords?

Can I name my server something other than http://BOX.LAN ?

http://box.lan should work in ~99% of all cases, and http://box should work in ~90% of cases; there is no need to change these.

If however a custom name is desired, this can be implemented within each school/library/clinic by logging into Admin Console (http://box/admin) -> Configure menu -> Network Parameters -> Host Name, if you click "Save Configuration" then "Install Configured Options" (waiting patiently for that to complete under Utilities menu -> Display Job Status; which takes ~25min on a Raspberry Pi 3!)

Many different names have been used in the past, such as http://schoolserver.lan and http://school.lan -- anything that resolves locally to should be sufficient with standard networking. For the record, some of these older names are listed within the following links:


Advanced implementers may want to change these 4 zone files too, all within the very same /var/named-xs directory:


See: What are the default passwords?

Any other networking tips?

See local_vars.yml just below.

Please read our high-level networking summary and especially the Common Customizations section at the bottom.

PRO TIP: If you use a USB-to-Ethernet dongle (for upstream Internet, generally) use a permanent marker on the server's correct USB port, so that it's not accidentally moved to another USB port!

Also, do not swap the dongle for another, as each dongle has a fixed/unique MAC address. Worst case if your dongle is lost or broken, you will later (after the new dongle is inserted) need to rerun "./iiab-install --reinstall" (formerly "./runansible") from directory /opt/iiab/iiab when your Internet connection is live.

More advanced networking insights will follow from the stock instructions for setting up upstream and downsteam routers attached to Intel NUC hardware, just as an example.

NOTE: Some prefer Gigabyte BRIX (a drop-in replacement Mini PC, instead of the Intel NUC) as an Atheros internal Wi-Fi module can be inserted, to scale beyond Intel's soldered-in limit of 12 Wi-Fi connections maximum.

Classrooms within 100 meters of your school server can easily be connected using standard Ethernet wiring, or using Wi-Fi repeaters. Outdoor wiring is possible (preferably fiber optic cables below ground) but check with experts to avoid problems with lightning. Beyond 100 meters, a more deliberate tree and branch solution may be needed.

Please ask questions about your specific school's networking/wiring challenges on mailing list server-devel@lists.laptop.org !

What is local_vars.yml and how do I customize it?

Put variables within /opt/iiab/iiab/vars/local_vars.yml for all your Internet-in-a-Box installation(s), to override defaults, if use of the Admin Console (http://box/admin) is not immediately possible.

Do NOT modify default_vars.yml, as explained in the IIAB Architecture and IIAB Variables docs.

An example local_vars.yml is posted for comparison. Also, a couple very practical networking variables are posted at the bottom of the IIAB Networking document.

Implementers should place changes in local_vars.yml using a text editor such as vi, nano, or emacs. Remember to enact all variable changes by running "cd /opt/iiab/iiab" followed by "./iiab-install --reinstall" (formerly "./runansible") (takes ~15 min to ~2 hours on Raspberry Pi 3).

Or, the essential 1+6 "post-install" roles of Ansible's 1+9 overall stages can be run from Admin Console (log in to http://box/admin) -> Configure menu -> Install Configured Options button. Then monitor the progress (typically ~20 min on Raspberry Pi 3) within Utilities menu -> Display Job Status. PRO TIP: monitor live progress using "tail -f /tmp/job-<JOB NUMBER>"

PRO TIP: Those who prefer the command-line can consider these options:

  • Use './iiab-install' for regular installs, or to continue an install.
  • Use './iiab-install --reinstall' to force running all Stages 0-9.
  • Use './iiab-install --debug' to run Stage 0, followed by Stages 3-9.
  • Use './runtags' to run a single Stage or Tag or Role.
  • Use './iiab-network' to run Network sections.

PRO TIP: if you've accidentally made changes that prevent "cd /opt/iiab/iiab; git pull" from merging GitHub's repo cleanly onto your local machine, consider backing up your local_vars.yml and starting completely fresh. Starting fresh (after you've backed up everything as a precaution) means removing all of /opt/iiab/iiab, recloning from GitHub, and then restoring your local_vars.yml into /opt/iiab/iiab/vars

See: What are the default passwords?
See: What are the best places for community support?

Is a "Rapid Power Off" button possible for low-electricity environments?

Yes. Small medical clinics and electricity-starved remote libraries typically require this, given that Raspberry Pi computers do not have a physical Power Off button, and it is asking too much for non-technical users to use the Admin Console.

Set "allow_apache_sudo: True" in local_vars.yml and then run "cd /opt/iiab/iiab" then "./iiab-install --reinstall" (formerly "./runansible") which runs for about 20min on a Raspberry Pi 3.

To power off, any user can then click on a URL like: http://box/common/services/power_off.php

(Whereas most schools do not want this, for obvious reasons — a mischievous student could shut down the Internet-in-a-Box at any time! This is the reason most schools prefer "allow_apache_sudo: False".)

Earlier Known Issue in IIAB 6.3: You also needed to run "cp /opt/iiab/iiab/roles/httpd/files/html/services/power_off.php /library/www/html/common/services" to enable the "Rapid Power Off" button.

See: What is local_vars.yml and how do I customize it?

What technical documentation exists?

Please see our new IIAB Contributors Guide for developers, first published in October 2017.

Implementers should start 2017's new IIAB Installation document.

Living Docs are ever-evolving for good reasons, as technical progress is rapid, so you may want to monitor recent GitHub merges as well.

Offline operators should check our growing collection of Internet-in-a-Box technical support docs (and eventually videos!) being made available at http://box/info. Some operators prefer to download the very latest tech support documentation every few months when their server is briefly online, by running "/usr/bin/iiab-refresh-wiki-docs" which is equivalent to roles/httpd/templates/refresh-wiki-docs.sh (based on the pandoc document converter).

Historically, core IIAB/XSCE 6.2 Docs were migrated to https://github.com/xsce/xsce/wiki for IIAB/XSCE 6.2 in early 2017, and then to https://github.com/iiab/iiab/wiki in June 2017 for IIAB 6.3.

The earlier XSCE 5.1 + Internet-in-a-Box Install Doc for Intel NUC from 2015 can sometimes be very useful for larger hardware implementers.

Also see George Hunt's foundational collection of XSCE (School Server Community Edition) docs from 2012-2015 at http://schoolserver.wordpress.com

Finally, Anish Mangal hopes to formally write up his deployment recommendations / 8-part training materials based on his experiences setting up IIAB/XSCE in Northern India, while http://unleashkids.org with http://kidsoncomputers.org document the human experience around Haiti/Mexico deployments and beyond.

Please suggest improvements to this FAQ where you can, and check back to reread at a later date, Thank You!

How do I get Internet-in-a-Box updates every few months or semester?

Great question: the magicians behind http://internet-in-a-box.org anticipated this would be critical, despite the near-impossibility of downloading large Content Packs to remote locations in the developing world. Certainly, Internet-in-a-Box improved its Wikipedia full-text-search in 2014/2015 (which remains compatible with XSCE 0.4, 5.x and IIAB/XSCE 6.x) and some remote upgrades are occasionally possible.

And yet an honest calculation of terabyte download costs and frustrations explains why drop-shipped hard drives' "content catalogs" are more economic and efficient than overweight monolithic download torrents.

On the high end, IIAB's Admin Console (http://box/admin -> Install Content) supports piecewise incremental content updates for those schools with extremely high/affordable bandwidth. As of early 2017, note that Content Packs must be manually removed, when space is needed (e.g. after that content is no longer in use). An exception is KA Lite, whose administrative interface (log in as "Admin" to http://box:8008) supports deletion of lessons/videos, as well as downloading new ones.

As a practical matter, remote schools may receive updates via hard drive or USB memory stick every semester or so, flown/driven in by a partner, bringing new maps/encyclopedias/E-books and video lessons.

Keep in touch as new options evolve! Make contact with http://unleashkids.org if you want to order a copy of the latest Internet-in-a-Box content from these volunteers' community effort.

See: What are the default passwords?

How do I know what version of IIAB I'm running?

Log into your Internet-in-a-Box server's Admin Console (http://box/admin) and click "About" in the top-right. Look at both fields "Version" and "Commit ID".

The "Version" field should show something like "release-6.5" or something else if you're running an earlier pre-release from https://github.com/iiab/iiab/commits (= https://github.com/iiab/iiab/commits/master)

Compare the 40-character string "Commit ID" to "Latest commit" at https://github.com/iiab/iiab/releases (such as https://github.com/iiab/iiab/tree/release-6.4) to reconfirm you have IIAB 6.4 (e.g. it should begin with 3ab0386 if you're running the official IIAB 6.4 from October 5, 2017.

Caution: The letter 'g' is sometimes added in front of 7-character githash (abbreviated from the full 40-character githash as above) within "install image" filenames, in places like http://download.iiab.io/6.2/rpi/ and http://download.iiab.io/6.2/x86/

See: What are the default passwords?

Can I upgrade or reinstall server apps?

Yes, at your own risk you can individually delete the following files or directories, to attempt an upgrade or reinstall of these common server apps, which will happen the next time you run "./iiab-install --reinstall" :

  • /library/wordpress (WordPress version stored in /library/wordpress/wp-includes/version.php)
  • /usr/bin/calibre-uninstall (Calibre version shown by "calibre --version")
  • /opt/nextcloud/version.php (Nextcloud version stored therein; OR delete the entire /opt/nextcloud etc if you installed much earlier in 2017)
  • /opt/iiab/kiwix/bin/kiwix-serve (Kiwix version corresponds to timestamps shown by "ls -l /opt/iiab/kiwix/bin")
  • /opt/iiab/moodle/config-dist.php (Moodle version stored in /opt/iiab/moodle/version.php)
  • /library/pgsql-iiab/pg_hba.conf (PostgreSQL version shown by "psql -V" client or "[PATH]/bin/postgres -V" server)
  • /library/www/html/sugarizer/index.html (Sugarizer version shown by "ls -l /library/www/html/sugarizer")
  • /library/ka-lite/database/data.sqlite then "systemctl restart kalite-serve", then you may need to re-register and delete/re-download KA Lite's English "content pack" at http://box:8008/update/languages/ (KA Lite version stored in /library/ka-lite/httpsrv/static/docs/index.html)
  • [no file deletion required, online-upgrade or offline-reinstall is automatic/mandatory during "./iiab-install --reinstall"] (Elgg version shown by "ls -l /opt/elgg")
  • [no file deletion required, online-upgrade or offline-reinstall is automatic/mandatory during "./iiab-install --reinstall"] (phpMyAdmin version shown by "ls -l /opt/phpmyadmin")
  • /usr/libexec/iiab-startup.sh (delete this if you want to upgrade to IIAB's latest e.g. /opt/iiab/iiab/roles/2-common/templates/iiab-startup.sh)

WARNING #1: Data loss of kids', teachers' and users' personal materials is always possible, ALWAYS back up any relevant databases first!

WARNING #2: Beware you will likely lose settings that you've set within Internet-in-a-Box's Admin Console GUI at http://box/admin

WARNING #3: Testing is ongoing to make sure this works sufficiently in these 2 typical situations below, ensuring that a wholesale revert to default settings is at least plausible:

  1. When intermittently online, an operator may want an online upgrade of a server app to the very latest available version.
  2. When completely offline, an operator might want an offline reinstall of a server app using its original zipfile-or-similar installer that resides within /opt/iiab/downloads

See: What are the default passwords?
See: KA Lite Administration: What tips & tricks exist?

What security tips exist?

NOTE: Many install images include ssh keys which permit developers to log into your machine, to enable remote support during Beta programs and similar. You can disable this feature by running terminal command "rm -f /home/iiab-admin/.ssh/authorized_keys".

Whether running your server online or offline, please see IIAB/Security and help us contribute to this evolving knowledge & repertoire of 21st century hygiene, thanks to professional volunteers from many backgrounds.

See: What are the default passwords?
See: How can I remotely manage my Internet-in-a-Box?

How can I remotely manage my Internet-in-a-Box?

Large-scale implementers should consider rolling their own OpenVPN for all remote administration needs, or paying a management service like remot3.it (formerly known as Weaved).

Small-scale implementers may consider XSCENET, which is a minimal remote management solution (with a much more basic remote console, enabling ssh and http among a trusted group). Contact holt @ laptop.org for details. If you are using XSCENET, the "iiab-remote-on" command is generally equivalent to "systemctl enable openvpn@xscenet; systemctl start openvpn@xscenet" and the "iiab-remote-off" command is generally equivalent to "systemctl disable openvpn@xscenet; systemctl stop openvpn@xscenet". If you do not yet have these commands, you can implement them as aliases within /root/.bashrc

NOTE: Developers' ssh keys come included with several install images, to enable remote support during Beta programs and similar. Read "What security tips exist?" if you want instructions to remove these keys.

Those with a graphical environment (X Windows) on their Internet-in-a-Box often take advantage of TeamViewer for full visual/remote control. This can be priceless when mentoring/learning at a distance, thanks to TeamViewer's screen-sharing, keyboard-sharing and mouse-sharing. Simply install TeamViewer, which by default randomizes TeamViewer's password (needed for remote access) every time TeamViewer is launched, preserving local operator control.

You can also enable TeamViewer's fully "unattended access" by setting a "permanent" password for remote access within: Settings/Extras/Options -> Security -> Password.

Raspberry Pi: If you have the full Raspbian with Desktop (OS with full graphical environment) on an RPi3, you want the minimal "TeamViewer Host" (e.g. https://download.teamviewer.com/download/linux/teamviewer-host_armhf.deb was version 13.0.5641 as of January 2018). It works as a single-click install (or "apt install ./teamviewer-host_armhf.deb", or "dpkg -i teamviewer-host_armhf.deb; apt-get -f install") and is more robust than the 2016 version (unattended access is now far more reliable!) It also now includes seamless ongoing upgrades via apt.

Bonus: headless installation/configuration is also now supported (e.g. on Raspbian Lite) with "teamviewer info" "teamviewer passwd <ACTUAL-PASSWORD>" and "teamviewer help" per https://community.teamviewer.com/t5/Knowledge-Base/How-to-install-TeamViewer-Host-for-Linux/ta-p/6318 In future, it might even be possible to install directly with "apt install teamviewer-host" ?

Ubuntu/Debian: If you insist on installing the Calibre E-Book Reader via .debs (instead of the normal way via /opt/iiab/downloads/calibre-installer.py) you'll likely damage your installation of TeamViewer 12/13, which requires Qt 5.5.1 and does not yet support Qt 5.9.1 as of January 2018.

Admin Console: Please note that "systemctl restart iiab-cmdsrv.service" is sometimes necessary when http://box/admin shows red errors upon login.

See: What are the default passwords?
See: What security tips exist?

KA Lite Administration: What tips & tricks exist?

Khan Academy videos and exercises are extremely popular thanks to KA Lite, which stores these famous videos (.mp4) and thumbnails (.png) within /library/ka-lite/content, and can be customized in different ways. Note this folder also contains 3 critical subfolders, after you've installed KA Lite's mandatory English content pack as part of a new install: (IIAB's 1-line installers do this for you!)

  • assessment (836 MB on a new install)
  • locale (16 KB on a new install)
  • srt (subtitles, 105MB on a new install)

To change KA Lite's Admin and user-level passwords, see "What are the default passwords?" above.

For starters, log into http://box:8008 as the Admin user, and learn how to install language packs and then download/delete videos in different languages.

Instead of the above, many prefer torrenting the compressed KA Lite videos (available in 7 common languages) as their storage footprint is more than 3X smaller! If you need BitTorrent client software to make this happen, consider Tixati on Windows, and aria2 on Linux.

Click "Scan content folder for videos" within http://box:8008/updates/videos/ (when logged in as user Admin) if KA Lite's DB gets out of sync from the video collection on your disk.

You can run "/opt/iiab/iiab-factory/content/khan/ka-scan" to remove obsolete videos, which will be moved to /library/ka-videos/obsolete to help you free up space!

More advanced administrators can take a look at the scripts in /opt/iiab/iiab-factory/content/khan and /opt/iiab/iiab-factory/box/generic contributed by Tim Moody.

In general, you can restart the KA Lite service using "systemctl restart kalite-serve" if attempting such changes under the hood. Two common such example customizations follow:

Multilingual? Consider running 2 or 3 instances of KA Lite on the same Internet-in-a-Box server, e.g. we sometimes put English on port 8008, Spanish on port 8007, and French on port 8006. Examine the mk-other-kalite script if you too want *direct* access to Spanish videos in /library/ka-lite-es, or *direct* access to French videos in /library/ka-lite-fr, etc. If you do this, you may need to modify iian-gen-iptables to open ports below 8008, if you want "campus-wide" (WAN) access to these materials.

Monolingual in Spanish or French or similar? Fool /opt/iiab/iiab-menu/config.json by changing the line with "es-kalitePort" from 8007 to 8008 — or change the line with "fr-kalitePort" from 8006 to 8008 (this works to get rid of English, even if "en-kalite-Port" remains 8008!)

See: What are the default passwords?

Elgg Administration: What tips & tricks exist?

You may want to set a campus-wide URL for your Elgg social network (other than the http://box/elgg default) such as http://hogwarts/elgg or

If so, please see the table `elgg_sites_entity` as documented in roles/elgg/templates/elggdb.sql.j2

It (might) also be possible to have more than one Elgg URL, each with a different hostname and/or IP address. However this (might) possibly cause the creation of distinct Elgg sites, each with different content.

See: What are the default passwords?

How can I try XO laptop services?

If you're working with One Laptop Per Child's XO laptops, and want to experiment with XO services on IIAB 6.4: uncomment the line that contains "5-xo-services" in /opt/iiab/iiab.yml — then set your local_vars.yml appropriately. Finally, run "cd /opt/iiab/iiab" and "./iiab-install --reinstall" (formerly "./runansible") being patient until it finishes.

NEW: starting with IIAB 6.5, you can test XO laptop services starting directly with local_vars.yml, without having to touch iiab.yml (which is increasingly being replaced by /opt/iiab/iiab-stages.yml).

See: What is local_vars.yml and how do I customize it?

Can my XO-based server boot with a unique startup sound?

Yes, when using an XO as a server, it is easy to mistake it for a child's laptop, when it has been detached from storage and networking components.

Here are instructions for adding a unique startup sound.

Is campuswide access possible for all server apps?

No: several of these server apps fail when accessed over the WAN side of an Internet-in-a-Box, but work well over the LAN side or internal-WiFi of an Internet-in-a-Box.

Still: WordPress, Nextcloud and others can be modified using an evolving arsenal of tricks that we hope you too can help refine!

The challenge is to get the most urgently needed campuswide LMS-like apps working well enough for campus-like environments (rather than perfectly in all situations, unfortunately not possible given modern cybersecurity threats!)

See: What security tips exist?

What are the best places for community support?

Start with live chat on irc or post to one of these 2 mailing lists:

Describe your issue in full (with context) so that others may help — including screenshots if possible, Thanks!

If you need live (irc) chat support from global volunteers, but have intermittent Internet, consider an intermediary computer (irc bouncer). An irc bouncer accumulates irc responses when you're offline. This enables you to follow the flow of conversations that are ongoing 24x7, when you return online. Finally, if you're a regular contributor to Internet-in-a-Box, we can help arrange an irc bouncer for you. If so please get in touch, and please see Reno McKenzie's irc instructions.

Community Technology/Design calls take place live most Mondays & Thursday off of: http://MINUTES.IIAB.IO

CONTACT: if need to get in touch regarding strategic alliances or partnerships with Internet-in-a-Box, please email Adam Holt (holt @ laptop.org).

See: What are the default passwords?

How can I help?

Great you asked, this is the question!

Technical developers please see our IIAB Contributors Guide, brand new in October 2017.

All please take a look at our quasi-weekly Agenda/Minutes to see what others are working on, as we prepare to refresh out list of volunteer microtasks for 2018!

Please post your suggestion(s) to one of these 2 mailing lists:

Serious digital librarians are invited us to join us during our content engineering calls, typically on the 1st and 3rd Saturday of each month.

Note this section below will be overhauled, as our work accelerates into important new areas.

Take seriously the "Features Planned" section of our Features page helping schools globally getting their highest priorities implemented.

Schools greatly benefit from testing on diverse hardware if you can help! Online contribution are strongly welcome, with in-person human interaction at our quasi-quarterly face-to-face meetups advancing our education efforts faster yet.

Finally, organizing everyone's many ideas, use cases and docs is real work, and as such we very strongly welcome savvy communicators!

Please also suggest your own ideas on mailing list server-devel@lists.laptop.org, or contact Adam Holt (holt @ laptop.org), thanks!

Where can older versions of IIAB/XSCE be found?

Since May 2017, IIAB code has been available at: https://github.com/iiab

Prior to May 2017, XSCE code was available at: https://github.com/xsce/xsce

Release History:

Such older RPM builds from 2013 might be available from http://archive.org and similar, at your own risk, using their original URLs: http://xsce.activitycentral.com/repos/xsce/devel.

Or consider main repo definition: http://xsce.activitycentral.com/repos/xsce-devel.repo

How did IIAB/XSCE's design evolve?

Here's our brief-but-growing participatory design archive / lineage:

  • Our earliest work is based on One Laptop Per Child's original XS design and implementation which arose in January 2007 to be used in many countries, thanks to John Watlington and Daniel Drake.
  • Jerry Vonau greatly cleaned up XS(CE) networking, from approximately 2010 onwards, so that vital new hardware and networking topologies became possible.
  • After the XS Community Edition grassroots team came together during the middle of 2012, using the XSCE name selected by George Hunt, Sridhar Dhanapalan wrote the Design Document in September 2012.
  • Field implementer Tony Anderson expanded on these ideas laying out some Use Cases in October 2012, while many others contributed to a broadening roadmap of features.
  • Internet-in-a-Box (also built by volunteer professional, including Caltech and JPL software engineers) was founded separately by Braddock Gaskill in this same mid-2012 timeframe, in Southern California.
  • David Farning's Activity Central team supported several developers to work on XSCE during the 2013 and 2014 timeframe, including Anish Mangal, Anna Schoolfield and others!
  • German Ruiz at Fundación Zamora Terán expanded support for XSCE in Nicaragua, Columbia, Dominican Republic and Honduras (etc), as the natural successor to OLPC's original XS.
  • The XSCE project embraced the Internet-in-a-Box name and IIAB's underlying OpenStreetMap work increasingly from 2013 onwards, until formally adopting the Internet-in-a-Box name (IIAB) in early 2017.
  • Beginning in 2014, the XSCE project greatly increased its content collaboration with Internet-in-a-Box (hence our new name), with Kiwix.org, and with RACHEL (Remote Area Hotspot for Educational and Learning) -- in each case greatly assisted by Tim Moody.
  • George Hunt and Jerry Vonau made our critical transition to Raspberry Pi (and Ubuntu, and Debian) possible, with foundational OS/infra/networking work in 2016 permitting 2017's breakthrough into so many more communities. Enabling so many grassroots implementations that could never have afforded traditional PC-class servers and associated computer lab facilities/upkeep.

Community history is vital to all seeking to avoid reinventing mistakes of the past, thanks to Everyone's thoughtful input past & present!

Personal tools
  • Log in
  • Login with OpenID
About OLPC
About the laptop
About the tablet
OLPC wiki
In other languages