guide
  • Introduction
  • Guiding Principles
    • Mission Statement
    • Conflict Resolution Process
  • Operating Model
    • Working Together
    • Holacracy
      • Meetings
      • Specific Roles
      • Terms and Definitions
      • Finer Points
      • Holacracy-Asana Key
    • Getting Things Done
      • Daily, Weekly, Monthly, and Annual Reviews
      • GTD-Asana Key
    • Transparency
    • Language
    • Budgeting
    • By Department
      • Engineering Operations
  • General Guidelines
  • Employment Policies
    • Equal Opportunity Employment
    • At-Will Employment
    • Code of Conduct in the Community
    • Complaint Policy
    • Drug and Alcohol Policy
    • Vacation, Holiday, and Paid Time Off (PTO) Policy
    • Supplemental Policies for Remote Employees and Contractors
    • Supplemental Policy for Bonus, Commissions, and other Performance-based Payments
    • Supplemental Policies for Hourly International Contractors or Workers
    • Supplemental Policies for Hourly International Contractors or Workers
    • Disputes and Arbitration
  • Benefits and Perks
    • Health Care
    • Vacation, Holiday and Paid Time Off (PTO) Policy
    • Holiday List
  • Hiring Documents
    • Acknowledgement of Receipt
    • Partner Proprietary Information and Inventions Agreement
  • Engineering Wiki
    • Code Snippets
      • Front End Code Snippets
    • Setup
      • 1: Overview of development using Audienti
      • 2: How to setup your dev environment on Docker
      • 2a: Setting up on our cloud your dev server
      • 3: Connect to Production using the VPN
      • 4: Import data into your development environment
    • Deployment
      • Docker based deployment of back end (manual)
    • Culture
      • How our development team works
      • Code Best Practices
    • Tips
      • Setting up a new development machine
      • Importing data to Development environment
      • GIT workflow and work tracking
      • Using Slack
      • Using Rubocop
      • Our Code Standards
      • General suggested best practices
      • Tracking your time
      • Naming Iterations
    • Migrations
      • Postgres
      • ElasticSearch
      • Redis
    • Database and System Maintenance
      • Redis Howtos
      • Elasticsearch HowTos
      • Postgres HowTos
      • Administration recipes
      • App maintenance crash course notes
    • Front End
      • 2016 Plan
      • Deploy
      • Assets
      • SearchLogic
      • How to create UI components
      • OMA Standard Tables
    • Monitoring and Alerting
      • Monitoring Systems
      • Monitoring individual controller actions
      • Get notified when a metric reaches a certain threshold
      • Instrumenting your models using Oma Stats
      • Configuring Graphite Charts
      • Tracking your results with StatsD
      • Logging Fields
      • Updating Kibana Filtering
    • Testing
      • Coverage
      • Elasticsearch mapping config synchronization
      • Testing Gotchas
      • Rspec Preloader
      • Test Best Practices
    • Models
      • Backlinks
    • Queueing and Worker System
      • Queueing and Job Overview
    • Processors
      • Rebuilding Spot Instances
      • Deploying processors
      • Running processors in development
      • Reverting to the previous build on a failed deployment
    • Processors / Opportunity Pipeline
      • Opportunity Pipeline
      • Diagram
    • Processors / Enrichment Pipeline
      • Diagram
      • Clustering
    • Processors / Backlink Pipeline
      • Diagram
      • Backlink Pipeline external APIs
      • Backlink pipeline logic
    • Processors / Automation Pipeline
      • Diagram
      • Automation Pipeline Overview
      • Agents
      • Running in development
    • Messaging and Social Accounts
      • Overview
    • API
      • Audienti API
    • Algorithms
    • Troubleshooting
      • Elasticsearch
    • Big Data Pipeline Stuff
      • Spark
    • Our Product
      • Feature synopsis of our product
    • Research
      • Backend framework comparison
      • Internet marketing Saas companies
    • Code snippets
      • Commonly Used
      • Not Used
    • Miscellaneous
      • Proxies and Bax
    • Legacy & Deprecated
      • Search criteria component
      • Classes list
      • Target Timeline
      • Twitter processor
      • Asset compilation
      • Test related information
      • Interface to EMR Hadoop jobs
      • Mongo Dex Indexes to be Built
      • Mongodb errors
      • Opportunity pipeline scoring
      • Graph Page
      • Lead scoring
      • Insights
      • Shard keys
      • Setting up OMA on local
      • Clone project to local machine
      • Getting around our servers in AWS
  • Acknowledgements
  • Documents That Receiving Your First Payment Triggers Acknowledgement and Acceptanace
Powered by GitBook
On this page
  1. Engineering Wiki
  2. Tips

Setting up a new development machine

If you need to setup a development machine from scratch, this is the guide to do it.

The script listed below will run in Ubuntu 16.04 and build out a development machine with the right dependencies for development.

#!/bin/bash
export PRECISE_DEB="deb https://apt.dockerproject.org/repo ubuntu-precise main"
export TRUSTY_DEB="deb https://apt.dockerproject.org/repo ubuntu-trusty main"
export XENIAL_DEB="deb https://apt.dockerproject.org/repo ubuntu-xenial main"

export LINUX_1604_VERSION="https://gist.githubusercontent.com/wflanagan/d2054159936bd4927b30bc610f200549/raw/159729a744ca02f1f74d1fef6e565a8b509a5f57/setup_script.sh"

set -xeu
echo ""
echo "Building OMAlab development environment. YOU WILL BE ASKED around"
echo "10 questions. Have your answers ready. If you do not have you answers,"
echo "ask at support@audienti.com."
echo ""
echo "This script assumes docker is installed, and its on Ubuntu 16.04. If "
echo "this is not true, break out of this script and ask for support."
echo ""
sudo apt-get update -qq
sudo apt-get install -qq -y python-pip curl wget git-core zsh ruby ruby-bundler \
                            apt-transport-https ca-certificates nodejs npm \
                            linux-image-extra-$(uname -r) linux-image-extra-virtual
sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
echo "$XENIAL_DEB" | sudo tee /etc/apt/sources.list.d/docker.list
sudo apt-get update -qq
ruby -e 'File.directory?("~.oh-my-zsh") ? system("mv ~/.oh-my-zsh/ ~/.oh-my-zsh-backup/") : puts("no zsh")'
curl -L http://install.ohmyz.sh | sh
ln -s `which nodejs` /usr/bin/node
sudo pip install --upgrade pip
sudo pip install docker-compose
sudo npm install brackets -g
mkdir -p ~/containers
mkdir ~/.brackets
sudo adduser --disabled-password --gecos "Dev User,Online,,," postgres
sudo usermod -a -G docker postgres
echo ""
echo "\nQuestions now."
echo ""
git clone https://github.com/omalab/audienti.git ~/containers/audienti
cd ~/containers/audienti
echo "Launching Audienti Question-based Configuration. Make sure you have your "
echo "information handy to complete this process.\n"
echo "Your home directory is:"
pwd
echo "\n\n"
bundle install
# gem uninstall -i /usr/share/rubygems-integration/all minitest # if you have the minitest erorr
ruby -e 'puts "Your working folder is: #{Dir.pwd}"'
ruby ./cli.rb config
echo "\n\nRestart your shell, return to this directory and type"
echo "\n\t$> cli download_repos"
echo "\to download audienti repos for development"
echo "\n\n"
echo "How to develop? Use Docker compose to launch:"
echo "  $> dcdb oma "
echo "     - will give you a bash prompt in the OMA repo, installing all the databases needed"
echo "     - from there, bundle install, and import development data."
echo "\n\nHappy developing."
PreviousTipsNextImporting data to Development environment

Last updated 6 years ago