How to set up SpearmintServer on AWS Amazon Linux EC2 instance - acil-bwh/SpearmintServer GitHub Wiki

Amazon Linux Spearmint Server Setup Instruction:

  1. Launch a new EC2 instance with minimum “small” class

  2. Login to the new instance using ssh

  3. sudo yum update

  4. sudo yum -y groupinstall 'Development Tools'

  5. sudo yum -y install atlas atlas-devel blas lapack

  6. sudo yum -y install httpd httpd-devel mod_wsgi python-pip python-devel mysql-devel mysql-server

  7. Launch mysql server and create the user and database

7.1 Database setup

  • sudo service mysqld start
  • sudo mysql -u root -p -e "CREATE DATABASE spearmintdb;"
  • sudo mysql -u root -p -e "CREATE USER 'acil-user' IDENTIFIED BY 'acil-pwd'
  • sudo mysql -u root -p -e "GRANT ALL PRIVILEGES ON spearmintdb.* TO 'acil-user'@localhost IDENTIFIED BY 'acil-pwd';FLUSH PRIVILEGES"

7.2 Django Database migration

NOTE: Make sure that secret.json with the DB password is copied under SpearmintServer/SpearmintServer/

  1. sudo pip install numpy scipy pymongo

  2. install and run mongodb (http://docs.mongodb.org/manual/administration/install-on-linux):

  • Create a /etc/yum.repos.d/mongodb-org-3.0.repo file with content:
[mongodb-org-3.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/amazon/2013.03/mongodb-org/3.0/x86_64/
gpgcheck=0
enabled=1
  • sudo yum install -y mongodb-org
  • sudo mkdir /data && sudo mkdir /data/db
  • sudo mongod --fork --dbpath /data/db --logpath /var/log/mongod --bind_ip 0.0.0.0 Note: --bind_ip 0.0.0.0 allows connections from any IP to the mongodb
  1. install Apache mod_wsgi for Python 2.7 in Amazon Linux:

    wget https://modwsgi.googlecode.com/files/mod_wsgi-3.4.tar.gz &&
    tar xvzf mod_wsgi-3.4.tar.gz &&
    cd mod_wsgi-3.4 &&
    ./configure --with-python=/usr/bin/python &&
    sudo make install
    
    git clone https://github.com/grisha/mod_python.git &&
    cd mod_python &&
    ./configure --with-python=/usr/bin/python &&
    make && sudo make install
    
  2. sudo pip install git+http://github.com/acil-bwh/Spearmint.git@develop

  3. sudo pip install git+http://github.com/acil-bwh/SpearmintServer.git

  4. create secrets.json in SpearmintServer installation directory (/usr/local/lib/python2.7/site-packages/SpearmintServer)

  5. modify /etc/httpd/conf/httpd.conf to add WSGI section

    WSGIPassAuthorization On
    WSGIApplicationGroup %{GLOBAL}
    
    WSGIScriptAlias / /usr/local/lib/python2.7/site-packages/SpearmintServer/wsgi.py
    WSGIPythonPath /usr/local/lib/python2.7/site-packages
    
    Alias /static/admin/ /usr/local/lib/python2.7/site-packages/django/contrib/admin/static/admin/
    Alias /media/admin/ /usr/local/lib/python2.7/site-packages/django/contrib/admin/static/admin/
    Alias /static/ /usr/local/lib/python2.7/site-packages/SpearmintServer/app/static/
    
    <Directory /usr/local/lib/python2.7/site-packages/SpearmintServer>
    <Files wsgi.py>
    Order deny,allow
    Allow from all
    </Files>
    </Directory>
    
  6. sudo service httpd start

  7. Configure services to start by default

  • sudo chkconfig httpd on
  • sudo chkconfig mysqld on
  1. go to: http://ec2-xx-xx-xx-xxx.us-west-2.compute.amazonaws.com/app/
⚠️ **GitHub.com Fallback** ⚠️