Skip to content
A Flask app to generate OpenZim files from select Wikipedia pages
Python HTML JavaScript
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Stories in Ready


A Flask app to generate OpenZim files from select Wikipedia pages


  1. Install OpenZim - For Ubuntu 14.04 sudo apt-get install libzim-dev Package
  2. Get zimwriterfs - build and install it
  3. Install lxml requirements - For Ubuntu 14.04 sudo apt-get install libxml2-dev libxslt-dev python-dev zlib1g-dev
  4. Install Redis - build, install & run.

Deploying on Ubuntu with apache2 and mod_wsgi

  1. sudo apt-get install libzim-dev libxml2-dev libxslt-dev python-dev zlib1g-dev python-pip python-virtualenv libapache2-mod-wsgi

  2. git clone

  3. cd Zimbalaka

  4. virtualenv env

  5. . env/bin/activate

  6. pip install -r requirements.txt

  7. Download, build. install and run redis.

     tar xzf redis-3.0.1.tar.gz
     cd redis-3.0.1
     make && make install
     ./utils/ # maintain defaults except datastore location
     cd ..
  8. Put zimwriterfs somewhere or compile and install

  9. Edit zimbalaka/ to reflect your production environment

  10. Edit path in celery.conf

  11. Run supervisord supervisord -c supervisord.conf

  12. mkdir /var/www/zimbalaka

  13. Edit path in zimbalaka.wsgi and cp zimbalaka.wsgi /var/www/zimbalaka/zimbalaka.wsgi

  14. Configure apache2: sudo a2enmod wsgi and add the following to /etc/apache2/sites-available/000-default.conf

    WSGIDaemonProcess zimbalaka threads=5 display-name=%{GROUP}
    WSGIProcessGroup zimbalaka
    WSGIScriptAlias /zimbalaka /var/www/zimbalaka/zimbalaka.wsgi
    <Directory /var/www/zimbalaka>
        Order allow,deny
        Allow from all
  15. sudo service apache2 restart

Now the site should be live at domain/zimbalaka


There are a lot of dependencies in this project which can be changed depending on the deployment situation.

  • Server - Perhaps nginx + gunicorn in palce of apache2+mod_wsgi
  • Celery broker - RabbitMQ in place of Redis, or even Amazon Simple Queue Service
  • Demonizing Celery - something in place of supervisor
You can’t perform that action at this time.