How to create an Internet-in-a-Box on a Raspberry Pi

Learn about this inexpensive device for students with restricted internet access and people in remote areas of the world not served by broadband.
647 readers like this.
Neon sign: Internet

If you're a homeschool parent or a teacher with a limited budget, Internet-in-a-Box might be just what you've been looking for. Its hardware requirements are very modest—a Raspberry Pi 3, a 64GB microSD card, and a power supply—but it provides access to a wealth of educational resources, even to students without internet access in the most remote areas of the world.

I recently had a chance to visit with developers Adam Holt and Tim Moody about the project. Adam said this wonderful initiative began with One Laptop per Child at MIT. From there it was forked in 2012 into the School Server Community Edition project, and now it is called Internet-in-a-Box. I learned of the project while attending LinuxConNA last summer in Toronto, where I first met Adam.

While most of us take ubiquitous broadband for granted, this isn't the case in much of the developing world. Internet-in-a-Box can be configured, set up, and operated without a connection to the internet because all its content resides on a microSD card. Therefore, it can provide rich internet content, regardless of your location or access to a high-speed internet connection.

Internet-in-a-Box contains "Wikipedia in 37 languages, a library of 40,000 e-books, most of the world's open source software and source code, hundreds of hours of instructional videos, and worldwide mapping down to street level," according to the project's website. Internet access is required only if you want to add even more content to your device.

For a little over US$ 50, you can have a wealth of open and/or free educational resources on your own network or a subnet in your home, classroom, or library. Internet-in-a-Box is so portable that you could even send it home with your students.

I was eager to try it out.

Getting started

There are a couple of new system images, complete with sample content, that can be downloaded for the Internet-in-a-Box: If you want a full GUI on your Raspberry Pi, then the PIXEL image is for you, but I was content with the Rasbpian Lite image.

After downloading the image file, I extracted it, then transferred it to a 64GB microSD card. If you want more content on your device, you'll want to use a larger card. I inserted it in the Raspberry Pi 3 and started the computer. It took a few minutes to boot the first time, as the initial boot was slowed by the expansion of the filesystem to ext4 and the initial configuration of the 11 content packages. But very soon, I had a functioning Internet-in-a-Box and was serving content on my home network. Subsequent startups were faster.

Adam said the advantage of using these pre-configured images is that Ansible is already configured. Configuration changes take approximately 17 to 20 minutes due to the Raspberry Pi 3 processor; the same process on a standard PC would be about two minutes. However, the cost of the Raspberry Pi at US$ 35 is a fraction of the cost of a standard PC running Debian.

The admin console

Once set up, I connected to the Internet-in-a-Box wireless access point.

Connecting the Internet in a Box wireless access point

Internet-in-a-Box is easily administered by pointing the browser to http://box.lan/admin. Log in with the username xsce-admin and the default/initial password g0adm1n (note the numbers 0 and 1). The web admin interface is very easy to use and is almost self-explanatory, but there is an adequate "Help" available from the menu.

In the admin console, you can change the administrative password and set up other configuration parameters, including configuring the box as a gateway, an appliance, or a LAN controller. I set mine up as a gateway and connected an Ethernet cable to my router so that I could download additional content.

Setting network parameters in admin console

The system includes Squid caching software and DansGuardian, which can function as a content filter when connected to broadband.

For a complete list of default passwords for the project, consult the FAQ.

School server admin console

Adam told me that the project is experimenting with a captive portal implementation so that less literate users can easily connect to Internet-in-a-Box without typing in a URL. Non-English speaking people are not familiar with our alphabet, so entering "http://box.lan" can be an impediment to their use of the software.

Finding and using content

Internet-in-a-Box includes Wikipedia for Schools, Offline Medical Encyclopedia, Wiktionary, Wikispecies, Khan Academy Lite, Moodle, OpenStreetMap, Owncloud, PhET (interactive mathematics and science simulations), Science TED Talks, Sugarizer, and Wikibooks. You can download additional content on your microSD card, depending on its size.

Internet in a Box browser

To access the content, I pointed my Internet-in-a-Box's browser to http://box.lan/home and was presented with an easy-to-use webpage. The "USB" choice (above) is for teacher-supplied content that might be stored on a USB drive.

From here, I can look up "Ray Charles Wikipedia," a demonstration page from Wikipedia. Or, I could download the entire Wikipedia for offline use. I can access Moodle and provide e-course content for students.

I can also access ownCloud to upload content created on attached devices.

Owncloud navigation

I can also view OpenStreetMap, which includes eight levels on the pre-configured Raspberry Pi image. Tim said that a full install of OpenStreetMap would provide 15 levels, with access to street-level maps of major cities like Toronto.

Open Street Map

Getting involved

Internet-in-a-Box is a boon for nearly anyone, including those who want to provide students with walled garden access to rich internet content, as well as people in remote areas of the world not served by broadband.

The off-network content community, which includes the Internet-in-a-Box project, welcomes new members. If you'd like to get more involved, visit the community's wiki. You can also check out the source code repository, licensed under GNU Public License 2, at GitHub.

User profile image.
Educator, entrepreneur, open source advocate, life long learner, Python teacher. M.A. in Educational Psychology, M.S. Ed. in Educational Leadership, Linux system administrator.


There are a lot of poor kids in USA and Canada that could also benefit from this device.
I love to spread the word about this on social media and on a proposed Linux magazine
based in Boston!!!

Markus McLaughlin
Hudson, MA

One of the best uses is within America`s Juvenile and Adult Correctional facilities. Education content that is available - without the internet - a progressive change that is beginning to happen.

In reply to by linuxglobe

I agree completely. There are many areas in the USA that lack good broadband coverage. This is a great solution for everyone regardless of where you live.

In reply to by linuxglobe

It is happening gradually in youth and adult corrections in various formats and hardware in several states. Change is catching on - the future is bright with college content and testing out for credit. A great formula - for progressive making the change.

Thanks Don for enabling our grassroots DIY communities in all countries! e.g. for a preview of some of the ways Internet-in-a-Box is used (in such different ways around the world) see our growing Medical Internet-in-a-Box work in the Dominican Republic:

You're welcome. I watched your video and you are doing amazing work.

In reply to by Adam Holt (not verified)

Trè bèl atik sou yon inovasyon enteresan. Sa mande pou pwofesè ak elèv an Ayiti konnen. Mwen kontan toujou gen moun k ap travay di pou amelyore edikasyon nan zòn ki pa gen aksè entènèt.

[Great article, interesting innovation. That's worth sharing to haitian teachers and students. Glad to see there are always people working hard to improve education in rural areas with no internet.]

The shapshot aspect of this project could make it double as a handy time capsule. . . .

Creative Commons LicenseThis work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License.