FreedomBox for Communities/Offline Wikipedia

From Wikibooks, open books for an open world
< FreedomBox for Communities
Jump to navigation Jump to search

Offline availability of Wikipedia pages, Project Guntenburg, 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 access Internet access.

Kiwix is an application that can serve a web interface on which users can browse pages and search them.

Installing Kiwix[edit]

Install Kiwix on the FreedomBox server machine by following these instructions.

  1. 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
    
  2. 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
    
  3. Download files from Kiwix content download page.
    cd /srv/apps/kiwix
    wget http://download.kiwix.org/zim/wikipedia_en_simple_all_nopic.zim
    
  4. 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
    
  5. 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
    
  6. 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[edit]

  1. Login as root user and download files from Kiwix content download page.
    sudo su -
    cd /srv/apps/kiwix
    wget <url_to_zim_file>
    
  2. Add the .zim files to a library file.
    kiwix-manage /srv/apps/kiwix/library.xml add </path/to/zim/file.zim>
    

Accessing Kiwix[edit]

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.