Last updated on: March 22, 2015 by Musa Kurhula Baloyi
I started preparing to join the Datawinners team while I was still in Braamfontein, Johannesburg. The team is based out of Koramangala, Bengaluru. I found that it was not easy to get started. Although I had my prospective team helping me setup from all the way in Bangalore, I found that I lacked proper understanding as to why we needed this package, this version of that package, this OS, Java on a Python project, etc. I felt that had a detailed README document been prepared, I would have navigated my way better. What could have also helped is an architectural diagram showing how things were connected. But I did not have this luxury. For a small team of 6, somehow I understood why the team never invested in documentation. Afterall, we did not have any open source contributors in spite of the project being of open source nature.
As we change from one package management system to another, one virtualisation provider to another, I felt it would be nice to have some documentation to allow anyone to play with Datawinners the way they wanted, even within the team. It is important to understand how a project is setup, so that when things break, you know where to look. We tend to join long-established teams which give us a VM from which we can start being productive on the first day. There is nothing wrong with this approach, but we need to understand a bit about how packages talk to each other. That is the intent of this blog post.
Installing Datawinners natively on Ubuntu
Carry out the following steps. Quick way would be to copy and paste into a Shell script.
Install python dependencies in a virtual environment. Download this pip file into dw-ubuntu.
Set Postgres up.
Installing Datawinners on MacOS Yosemite using Vagrant
Carry out the following steps. Download this pip file into dw-vagrant.
After editing your Vagrantfile should look like this:
Installing Datawinners on MacOS Yosemite using Ansible
Carry out the following steps.
Installing Datawinners on MacOS Yosemite using Docker
Carry out the following steps to build the various containers that will compose your project.
The python dependency Dockerfile.
The postgres Dockerfile.
The memcached Dockerfile.
The ElasticSearch Dockerfile.
Compulsory steps for all installations
Run these commands on your root directoty to clone the necessary git repositories. On ubuntu, run them from within the dw-ubuntu-native. On vagrant, run them from dw-vagrant.