Skip to content

Native Setup

Naren Dasan edited this page Apr 18, 2017 · 2 revisions

Getting Started

Note: It is necessary for you to have an ssh key (without a password if you want it to be even easier) attached to your github

First Time Dependency Setup

  1. Install repo - https://android.googlesource.com/tools/repo/

    Mac OS

    brew install repo 

    Ubuntu 14.04+

    sudo apt install repo
    
  2. Make a directory to house your groot work

    mkdir groot
  3. Within this directory run the following command to start managing the projects

    repo init -u [email protected]:acm-uiuc/groot-manifest
  4. Run the following command to grab the latest releases of the services and frontend

    repo sync
  • Golang

    • Install Software
    mkdir [SOME DIRECTORY]
    mkdir [SOME DIRECTORY]/bin && mkdir [SOME DIRECTORY]/lib \
    && mkdir [SOME DIRECTORY]/src
    mkdir -p [SOME DIRECTORY]/src/github.com/acm-uiuc

    --- Add to .profile (.zshrc/.bashrc) ---

    export GOPATH=[SOME DIRECTORY]
    
    #macOS 
    export GOROOT=/usr/local/opt/go/libexec
    #Ubuntu 14.04+
    export GOROOT=/usr/local/go
    
    export PATH=$PATH:$GOPATH/bin
    export PATH=$PATH:$GOROOT/bin
    #macOS
    brew install go
    #Ubuntu 14.04+
    sudo curl -O https://storage.googleapis.com/golang/go1.7.linux-amd64.tar.gz
    sudo tar -xvf go1.7.linux-amd64.tar.gz
    sudo mv go /usr/local
    • Add groot to GOPATH
    ln -s [PATH to groot-deploy]/groot-api-gateway [SOME DIRECTORY]/src/github.com/acm-uiuc/groot-api-gateway
    • Install groot dependecies
    go get github.com/gorilla/mux
    
    go get github.com/boltdb/bolt
    
    go get github.com/kennygrant/sanitize
    
    go get github.com/acm-uiuc/arbor/server
    
    go get github.com/acm-uiuc/arbor/services
    
    go get github.com/acm-uiuc/arbor/security
    
    go get github.com/acm-uiuc/arbor/proxy
    
    go install github.com/gorilla/mux
    
    go install github.com/boltdb/bolt
    
    go install github.com/kennygrant/sanitize
    
    go install github.com/acm-uiuc/arbor/server
    
    go install github.com/acm-uiuc/arbor/services
    
    go install github.com/acm-uiuc/arbor/security
    
    go install github.com/acm-uiuc/arbor/proxy
    • Install packages
    go install github.com/acm-uiuc/groot-api-gateway/config
    
    go install github.com/acm-uiuc/groot-api-gateway/services
  • Node

    • Install Software
    #macOS
    brew install node
    #Ubuntu 14.04+  
    sudo apt-get install nodejs
    sudo apt-get install npm
    sudo apt-get install build-essential
    sudo apt-get update
    sudo apt-get install build-essential libssl-dev
    curl -sL https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh -o install_nvm.sh
    bash install_nvm.sh
    source ~/.profile
    nvm install 7.2.0
    nvm use 7.2.0
    sudo npm install -g forever
  • Ruby

    • Install Software
    #macOS
    brew install rbenv
    #Ubuntu 14.04+
    sudo apt-get install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm3 libgdbm-dev
    git clone https://github.com/rbenv/rbenv.git ~/.rbenv
    echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc (~/.profile / ~/.zshrc)
    echo 'eval "$(rbenv init -)"' >> ~/.bashrc (~/.profile / ~/.zshrc)
    source ~/.bashrc (~/.profile / ~/.zshrc)
    git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
    
    rbenv install 2.3.1
    rbenv global 2.3.1
    # You may have to restart your terminal session
    gem install bundler
  • Python

    • Install Software
    #macOS 
    brew install python 
    #Ubuntu
    sudo apt install python-pip
    
  • MySQL

    • Install Software
    #macOS
    brew install mysql
    mysqladmin -u root password 'yourpassword' 
    mysql.server restart
    #Ubuntu 14.04+
    sudo apt-get install mysql-server
    sudo apt-get install libmysqlclient-dev
    sudo mysqld --intialize
    
    mysql -u root
    mysql> CREATE DATABASE groot_recruiter_service;
    mysql> CREATE DATABASE acm_users;
    mysql> CREATE DATABASE groot_meme_service;
    mysql> CREATE DATABASE groot_quotes_service;

Launching the App

  1. Run the dev_spinup.sh script to start up a dev instance of groot (will grab the latest version of each service on github)
  2. Run the prod_spinup.sh script to start a production version of groot (will grab the latest version of each and place them in their respective containers, so you will need docker)

Grabbing latest

repo sync
Clone this wiki locally