Set up a Kiwix server for your own offline internet

Host a local version of Wikipedia and other sites for you and your friends and family

What is Kiwix? What are ZIM files?

Kiwix is a software project that lets you view several popular websites like Wikipedia, TED, and StackOverflow without having to connect to the internet. This is possible through the availability of ZIM files that are essentially compressed versions of these websites at a moment in time (visit this link to see the kinds of content you can download).

The desktop version of Kiwix can be downloaded for Windows, macOS, and Linux and basically serves as a browser for viewing ZIM files. There also exist ports for iOS and Android. However, the latest release of the desktop app is version 0.9 which was released in 2014 and does not appear to be under active development (the mobile apps do appear to be under active development, however).

Kiwix Server

For users interested in using Kiwix on a desktop, another solution is to use “kiwix-serve” or Kiwix Server, which is a Linux program that runs a server for ZIM files. Instead of using a dedicated desktop app to view ZIMs, one runs this server and simply connects to it using their favorite web browser. Using this approach, one could run Kiwix on a shared server and allow many users to connect to it on their own computers through a local area network.

There are some downsides to using Kiwix Server, however. It is not as easy to manage ZIM files (e.g. add, delete, update them) as in the desktop app. Also, it only runs on Linux, which means one must use virtualization in order to deploy or experiment with it on a non-Linux machine.

For people wanting to write custom applications around Kiwix Server, the API to interact with it programatically are also pretty limited. This could all change, however, as development progresses.

Setting up a Kiwix Server Docker container

To make it “easier” to set up a Kiwix Server, I have a Dockerfile that creates a Linux virtual machine, installs the Kiwix software, installs your chosen ZIM files, and starts up the server for you. You can then play with Kiwix on your personal machine or even set up your router to make Kiwix available to everyone connected to your local area network.

Try it out for yourself; all the instructions are shown in the Github page.

Viewing Kiwix Server in Chrome
Viewing Kiwix Server in Chrome

If you have any questions, please leave an issue on Github, or comment below.

Like what you read? Give Jonathan Boiser a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.