411 REFERENCE · Wikibooks
FreedomBox for Communities/Offline Wikipedia
Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.
Offline availability of Wikipedia pages, Project Gutenberg, Stack Exchange and other content can be useful for education, especially in situations where Internet connectivity is intermittent or when the bandwidth is congested or metered. It could also be suitable for a class room that might otherwise not have Internet access.
Kiwix is an application that can serve a web interface on which users can browse pages and search them.
Installing Kiwix
Install Kiwix on the FreedomBox server machine by following these instructions.
Download and install kiwix-tools from Kiwix website. Do this as the root user.
sudo su -
cd
wget https://download.kiwix.org/release/kiwix-tools/kiwix-tools_linux-x86_64.tar.gz
tar -xf kiwix-tools_linux-x86_64.tar.gz
cp kiwix-tools*/* /usr/local/bin
Explanation: Kiwix used to be available in Debian package repositories, but isn't anymore.https://wiki.kiwix.org/wiki/Debian The workaround is to install via tarball, as described above. However, the tarball method may make it hard to update or uninstall Kiwix, should this become necessary. Alternatively, it may be possible to use a flatpack, but this is untested. The potential benefits would be the usual ones gained from using a Package manager.
Create a folder for holding Kiwix library in the /srv folder (this can be separate disk so that it can hold larger volumes of data).
mkdir -p /srv/apps/kiwix
Download files from Kiwix content download page.
cd /srv/apps/kiwix
wget http://download.kiwix.org/zim/wikipedia_en_simple_all_nopic.zim
Create and add the .zim files to a library file. Add as many .zim file as you wish in a similar way.
kiwix-manage /srv/apps/kiwix/library.xml add /srv/apps/kiwix/wikipedia_en_simple_all_nopic.zim
Setup kiwix web service to run on the system as soon as the system starts.
addgroup --system kiwix
adduser --system --ingroup kiwix --home /srv/apps/kiwix --gecos 'Kiwix - Offline Wikipedia' kiwix
cat << EOF > /etc/systemd/system/kiwix.service
[Unit]
Description=Kiwix - Offline Wikipedia After=network.target
[Service]
ExecStart=/usr/local/bin/kiwix-serve --library --port=4201 --urlRootLocation=/kiwix /srv/apps/kiwix/library.xml
User=kiwix
Group=kiwix
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable kiwix
systemctl start kiwix
Create Apache configuration to forward requests on /kiwix to kiwix.
cat << EOF > /etc/apache2/conf-available/kiwix.conf
<Location /kiwix>
ProxyPass http://localhost:4201
</Location>
EOF
a2enconf kiwix
systemctl reload apache2
Adding new content repositories
Login as root user and download files from Kiwix content download page.
sudo su -
cd /srv/apps/kiwix
wget <url_to_zim_file>
Add the .zim files to a library file.
kiwix-manage /srv/apps/kiwix/library.xml add </path/to/zim/file.zim>
Accessing Kiwix
Visit the URL http://<myfreedombox.domain>/kiwix/ . You should see an interface showing a entry for each of the .zim file added. Select the entry to start browsing the content of the .zim file. There is also a search interface available to allow you to search within all of the offline content available.