Dallinger/Dallinger

View on GitHub
Vagrantfile

Summary

Maintainability
Test Coverage
# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/xenial64"

  config.vm.provider "virtualbox" do |vb|
      vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"]
      vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
      vb.cpus = 2
      vb.memory = 4096
  end



  config.vm.network "public_network",
    use_dhcp_assigned_default_route: true

  config.vm.provision "shell", privileged: false, inline: <<-SHELL
    sudo apt-get update

    # Python dependencies
    sudo apt-get install -y python3.6 python-pip

    # Postgres setup
    sudo apt-get install -y postgresql-9.5 postgresql-server-dev-9.5
    sudo -u postgres createuser -ds ubuntu
    createdb dallinger
    # trust all connections
    sudo sed /etc/postgresql/9.5/main/pg_hba.conf -e 's/md5/trust/g' --in-place
    sudo service postgresql reload

    # Virtual environment
    echo 'source ~/venv/bin/activate' >> ~/.bashrc
    echo 'cd /vagrant' >> ~/.bashrc
    echo 'export HOST=`ifconfig | grep Ethernet -A1 | grep addr: | tail -n1 | cut -d: -f2 | cut -d " " -f1`' >> ~/.bashrc
    sudo pip install virtualenv
    virtualenv --no-site-packages ~/venv
    source ~/venv/bin/activate
    cd /vagrant

    # Documentation building dependencies
    sudo apt-get install -y enchant-2 pandoc zip
    pip install pyenchant
    pip install -r dev-requirements.txt

    # Dallinger install
    python setup.py develop
    dallinger setup
    echo 'base_port = 5000' >> ~/.dallingerconfig

    # Heroku CLI installation
    sudo apt-get install software-properties-common
    sudo add-apt-repository "deb https://cli-assets.heroku.com/branches/stable/apt ./"
    curl -L https://cli-assets.heroku.com/apt/release.key | sudo apt-key add -
    sudo apt-get update
    sudo apt-get install heroku

    # Redis server
    sudo apt-get install redis-server -y

    # Test runner
    sudo apt-get install tox -y


  SHELL
end