jiffylab is a very interesting project by Preston Holmes to provide sandboxed IPython notebooks instances on a server using docker. There are several user cases, for example:
- In a tutorial about
python
, give users instant access to a working IPython notebook - In a tutorial about some specific
python
package, give users instant access to a python environment with that package already installed - Give students in a research group access to
python
on a server with preinstalled several packages maintained and updated by an expert user.
How to install jiffylab on Ubuntu 12.04
- Install
docker
on Ubuntu Precise - Copy-paste each line of
linux-setup.sh
to a terminal, to check what is going on step by step - To start the application, change user to
jiffylabweb
:
sudo su jiffylabweb
cd /usr/local/etc/jiffylab/webapp/
python app.py #run in debug mode
- Point your browser to the server to check debugging messages, if any.
- Finally start the application in production mode:
python server.py #run in production mode
How jiffylab
works
Each users gets a sandboxed IPython notebook instance, the user can save the notebooks and reconnect to the same session later. Main things missing:
- No real authentication system / no HTTPS connection, easy workaround would be to allow access only from local network/VPN/SSH tunnel
- No scientific packages preinstalled, need to customize the docker image to have
numpy
,matplotlib
,pandas
… - No access to common filesystem, read-only, this I think is the most pressing feature missing, issue already on Github
I think that just adding the common filesystem would be enough to make the project already usable to provide students a way to easily get started with python.