Skip to content

Instantly share code, notes, and snippets.

@gouvermxt
Last active August 15, 2017 12:11
Show Gist options
  • Save gouvermxt/e795262b3c6ecd6b57e98f3bfea02964 to your computer and use it in GitHub Desktop.
Save gouvermxt/e795262b3c6ecd6b57e98f3bfea02964 to your computer and use it in GitHub Desktop.
Setups an Ubuntu machine for Rails development.
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure(2) do |config|
config.vm.box = "ubuntu/trusty64"
config.vm.network "private_network", ip: "10.2.2.2"
config.vm.network :forwarded_port, guest: 3000, host: 3000
config.vm.network :forwarded_port, guest: 5432, host: 5432
config.vm.provider "virtualbox" do |vb|
#Customize the amount of memory on the VM:
vb.memory = "768"
end
config.vm.provision 'shell', privileged: true, inline: <<-SHELL
apt-get -y update
apt-get -y upgrade
apt-get install -y curl build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison subversion libgmp-dev nodejs libpq-dev
SHELL
config.vm.provision 'shell', privileged: false, inline: <<-SHELL
command curl -sSL https://rvm.io/mpapis.asc | gpg --import -
curl -L https://get.rvm.io | bash -s stable
source ~/.rvm/scripts/rvm
rvm requirements
rvm install 2.4.1
echo "gem: --no-ri --no-rdoc" > ~/.gemrc
gem install bundler
gem update --system
cd /vagrant
SHELL
config.vm.provision 'shell', privileged: true, inline: <<-SHELL
export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
locale-gen en_US.UTF-8
dpkg-reconfigure locales
apt-get install -y postgresql postgresql-contrib postgresql-server-dev-9.3
sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD 'root'"
sudo -u postgres psql -c "CREATE USER vagrant WITH PASSWORD 'vagrant'"
sudo -u postgres psql -c "ALTER USER vagrant CREATEDB"
echo 'host all all all password' >> /etc/postgresql/9.3/main/pg_hba.conf
echo "listen_addresses = '*'" >> /etc/postgresql/9.3/main/postgresql.conf
/etc/init.d/postgresql restart
SHELL
config.vm.provision 'shell', privileged: false, inline: <<-SHELL
cd /vagrant
bundle install
rails db:create
rails db:migrate
rails db:seed
SHELL
config.vm.provision 'shell', privileged: true, run: 'aways', inline: <<-SHELL
rm -f /vagrant/tmp/pids/*.pid
SHELL
config.vm.provision 'shell', privileged: false, run: 'aways', inline: <<-SHELL
cd /vagrant
rails s -b 0.0.0.0
SHELL
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment