Skip to content

ProjectPyRhO/Prometheus

Repository files navigation

Prometheus: Modelling as a Service

This is a repository for building a customised tmpnb server for optogenetics with PyRhO installed and configured. Credit to the Jupyter team for their work on tmpnb as one of the many great Jupyter projects!

For updates on PyRhO, follow us on twitter (@ProjectPyRhO).

Quickstart: Try PyRhO

Simply go to try.projectpyrho.org and enjoy!

Further Information

A paper introducing Prometheus and Modelling as a Service (MaaS) can be found here. If you use or adapt this work, please use the following citation:

Evans, B. D. and Nikolic, K. (2016) "From Bytes to Insights with Modelling as a Service: A new paradigm for computational modelling illustrated with PyRhO”, in 2016 IEEE Biomedical Circuits and Systems Conference (BioCAS), Shanghai, China. p316–319. doi:10.1109/BioCAS.2016.7833795

@InProceedings{Evans+Nikolic2016c,
  author = {Evans, Benjamin D. and Nikolic, Konstantin},
  booktitle = {2016 IEEE Biomedical Circuits and Systems Conference (BioCAS)}, 
  title = {From Bytes to Insights with Modelling as a Service: A new paradigm for computational modelling illustrated with {PyRhO}},
  year = {2016},
  month = {Oct},
  isbn = {978-1-5090-2959-4},
  location = {Shanghai, China},
  pages = {316--319},
  publisher = {IEEE},
  address = {New York, NY, USA},
  doi = {10.1109/BioCAS.2016.7833795}, 
}

Interactive Docker image

To run the PyRhO docker image:

Clone the repository: git clone https://github.com/ProjectPyRhO/Prometheus.git && cd Prometheus Start the docker service e.g.: sudo service docker start Then run these commands to build the image and launch the notebook:

docker build -t pyrho/minimal .
docker run -p 8888:8888 -it pyrho/minimal

Finally go to your browser and open localhost:8888.

N.B. If you are using docker machine, you will need to replace localhost with the IP address of the host, obtained with the following command: docker-machine ip.

Build Prometheus

Create an account to run the portal and disable root access

See this guide for details including generating ssh keys.

adduser monty
gpasswd -a monty sudo
sudo nano /etc/ssh/sshd_config

Edit the sshd_config file to disable root login:

PermitRootLogin no

Then restart the ssh daemon:

service ssh restart

Log out then log back in with the new (non-root) user account. Finally update the system, install docker, build the image and launch the server!

sudo apt-get update && sudo apt-get upgrade
sudo apt-get install make
git clone https://github.com/ProjectPyRhO/Prometheus.git
cd Prometheus
make setup
make image
make launch

Useful commands

Clean docker images

make clean

Alternatively:

docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)
docker rm $(docker ps -qa --no-trunc --filter "status=exited")
docker rmi $(docker images -q --no-trunc --filter "dangling=true")

Check logs

make log-proxy
make log-tmpnb
sudo iptables -L

N.B. After an os update it may be necessary to run: sudo apt-get install linux-image-extra-$(uname -r)