Created
July 10, 2017 04:22
-
-
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- 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