Installation on Ubuntu

A short installation synopsis (incomplete):

# Install Non-Python dependencies
sudo apt-get install postgresql postgresql-client python-psycopg2 libpq-dev python-glpk libglpk-dev git curl python-dev

# Setup Postgres
su postgres                            # or whatever user your distro defines
createuser -S -d -P datamill-dbuser # set password to datamill-password
createdb datamilldb -O datamill-dbuser
exit                                   # to get back to root or whatever user
/etc/init.d/postgresql* start

# Get the DataMill Source
git clone && cd datamill/master

# On more recent versions of Ubuntu, compile glpk 4.45 from source

#Set up virtual env
virtualenv dev-python

source dev-python/bin/activate

#jpeg support
sudo apt-get install libjpeg-dev
#tiff support
sudo apt-get install libtiff-dev
#freetype support
sudo apt-get install libfreetype6-dev
#openjpeg200support (needed to compile from source)
tar xzvf openjpeg-2.0.1.tar.gz
cd openjpeg-2.0.1/
sudo apt-get install cmake
cmake .
sudo make install
#install pillow
pip install pillow

#Install dependencies
pip install -r dependencies.pip

# Setup logging directory (or change the location of the logging directory)
mkdir -p /var/datamill/log
chown -R <webserver-user>:<webserver-user> /var/datamill

# If you need to adjust any settings for your local dev machine, avoid changing the configuration on the actual master node
cp datamill_django_project/ \

# Add DataMill Schema to our database
./ syncdb --all        # create admin/password for website when prompted
./ migrate
./ createinitialrevisions
./ runserver
./ loaddata  datamill_test_fixture


All django web related code is roughly organized as follows:

  • models are in datamill_website/
  • templates are in datamill_website/templates
  • views are in datamill_website/ (only make new views if the django generic ones don't suffice)

Read up on south ( before doing DB stuff

cd eval-lab/master
./ runserver                               # to start the server
./ test                                    # to run all tests
./ schemamigration datamill_website --auto # to generate migrations (schema changes) when you change the DB structure in
./ migrate datamill_website                # to apply pending migrations on the database
./ syncdb --all                            # to update Meta information (such as perms)

When the server is up and running, you can visit the local DataMill page at port 8000 with any webclient:

./ runserver
curl localhost:8000/experiment/1/ goes to the expermient detail view
curl localhost:8000/admin goes to admin

For access to the admin interface, use the password you set when you ran syncdb