Skip to content

Instantly share code, notes, and snippets.

@jsperezg
Created May 13, 2017 07:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jsperezg/010428a0fb62b496f5781218e3268fa5 to your computer and use it in GitHub Desktop.
Save jsperezg/010428a0fb62b496f5781218e3268fa5 to your computer and use it in GitHub Desktop.
#!/usr/bin/env bash
USER=`whoami`
echo Updating installed software
sudo apt-get update >> ~/install.log
sudo apt-get -y -u upgrade >> ~/install.log
echo Installing MySQL
echo 'mysql-server mysql-server/root_password password d3m0pr0j3ct' | sudo debconf-set-selections
echo 'mysql-server mysql-server/root_password_again password d3m0pr0j3ct' | sudo debconf-set-selections
sudo apt-get -y install mysql-server mysql-client >> ~/install.log
sudo apt-get -y install libmysqlclient-dev >> ~/install.log
echo Intalling ruby dependencies
sudo apt-get -y install nodejs >> ~/install.log
sudo apt-get -y install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev >> ~/install.log
sudo apt-get -y install libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties libffi-dev >> ~/install.log
echo Installing ruby
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 >> ~/install.log
curl -sSL https://get.rvm.io | bash -s stable >> ~/install.log
source /home/$USER/.rvm/scripts/rvm >> ~/install.log
rvm use --default --install 2.3.3 >> ~/install.log
gem install bundler >> ~/install.log
echo Installing phusion passenger
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 561F9B9CAC40B2F7 >> ~/install.log
sudo apt-get install -y apt-transport-https ca-certificates >> ~/install.log
sudo sh -c 'echo deb https://oss-binaries.phusionpassenger.com/apt/passenger xenial main > /etc/apt/sources.list.d/passenger.list' >> ~/install.log
sudo apt-get update >> ~/install.log
sudo apt-get install -y nginx nginx-extras passenger >> ~/install.log
echo Installing redis server
sudo apt-get install -y redis-server >> ~/install.log
echo Installing the app
tar xzvf game_house.tgz >> ~/install.log
cd game_house
bundle install >> ~/install.log
rails db:create RAILS_ENV=production >> ~/install.log
rails db:migrate RAILS_ENV=production >> ~/install.log
rails assets:precompile RAILS_ENV=production >> ~/install.log
echo "Enabling passenger in nginx"
sudo sed -i '/#.*passenger\.conf/s/#//' /etc/nginx/nginx.conf
echo Configuring nginx to serve the app
sudo tee /etc/nginx/sites-enabled/default > /dev/null << EOM
server {
listen 80 default_server;
listen [::]:80 default_server;
passenger_enabled on;
passenger_ruby /home/$USER/.rvm/wrappers/default/ruby;
passenger_app_env production;
passenger_min_instances 2;
root /home/$USER/game_house/public;
server_name _;
location /cable {
passenger_app_group_name game_house_action_cable;
passenger_force_max_concurrent_requests_per_process 0;
}
}
EOM
echo Restarting nginx
sudo service nginx restart >> ~/install.log
@jsperezg
Copy link
Author

Installs a rails app in ubuntu 16.04 using phusion passenger and nginx.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment