Skip to content

Instantly share code, notes, and snippets.

@juanhuttemann
Created July 10, 2017 04:22
Show Gist options
  • Save juanhuttemann/b03a84f3ffd99509a46c337e525b5f56 to your computer and use it in GitHub Desktop.
Save juanhuttemann/b03a84f3ffd99509a46c337e525b5f56 to your computer and use it in GitHub Desktop.
Vagrantfile for Rails 5.0.3 on Ubuntu Trusty x64 + Nginx + Phusion Passenger
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/trusty64"
config.vm.network "forwarded_port", guest: 3000, host: 3002
config.vm.network "forwarded_port", guest: 3306, host: 3004
config.vm.network "private_network", ip: "192.168.33.10"
config.vm.synced_folder ".", "/home/vagrant/apps"
config.vm.provider "virtualbox" do |vb|
vb.memory = "2048"
end
config.vm.provision "shell", inline: <<-SHELL
## Ruby, Rails & NodeJS
apt-get update
sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties libffi-dev rpl -y
wget http://ftp.ruby-lang.org/pub/ruby/2.3/ruby-2.3.1.tar.gz
tar -xzvf ruby-2.3.1.tar.gz
cd ruby-2.3.1/
./configure
make
sudo make install
ruby -v
gem install bundler --no-ri --no-rdoc
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs
gem install rails -v 5.0.3 --no-rdoc --no-ri
sudo apt-get install imagemagick -y
## Nginx & Passenger
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 561F9B9CAC40B2F7
sudo apt-get install -y apt-transport-https ca-certificates
# Add Passenger APT repository
sudo sh -c 'echo deb https://oss-binaries.phusionpassenger.com/apt/passenger trusty main > /etc/apt/sources.list.d/passenger.list'
sudo apt-get update
# Install Passenger & Nginx
sudo apt-get install -y nginx-extras passenger
sudo sed -i '1 i\env PATH;' /etc/nginx/nginx.conf
## Configuring Passenger
# Default config backup
sudo rm /etc/nginx/passenger.conf
sudo rm /etc/nginx/sites-enabled/default
sudo echo 'passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;' > /etc/nginx/passenger.conf
sudo echo 'passenger_ruby /usr/local/bin/ruby;' >> /etc/nginx/passenger.conf
sudo echo 'passenger_nodejs /usr/bin/nodejs;' >> /etc/nginx/passenger.conf
sudo echo 'server {' >> /etc/nginx/sites-enabled/default
sudo echo 'listen 80;' >> /etc/nginx/sites-enabled/default
sudo echo 'server_name 127.0.0.1;' >> /etc/nginx/sites-enabled/default
sudo echo 'passenger_enabled on;' >> /etc/nginx/sites-enabled/default
sudo echo 'rails_env production;' >> /etc/nginx/sites-enabled/default
sudo echo 'root /home/vagrant/apps/myapp/public/;' >> /etc/nginx/sites-enabled/default
sudo echo '}' >> /etc/nginx/sites-enabled/default
sudo echo '' >> /etc/nginx/sites-enabled/default
sudo rpl -i -w "# include /etc/nginx/passenger.conf;" "include /etc/nginx/passenger.conf;" /etc/nginx/nginx.conf
sudo service nginx restart
## Installing MySQL
#sudo apt-get install -y mysql-server mysql-client libmysqlclient-dev
SHELL
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment