Last active
November 29, 2021 01:42
-
-
Save johnrees/1985879 to your computer and use it in GitHub Desktop.
Standard Rails 5.* setup for Ubuntu 14.04 LTS
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
| # As root user | |
| sudo su | |
| # Update the OS | |
| sudo apt-get update -y | |
| # Add this to ~/.bashrc to remove timezone warnings | |
| echo 'export LC_ALL="en_US.UTF-8"' >> ~/.bashrc | |
| source ~/.bashrc | |
| # Install Rails Requirements | |
| sudo apt-get install build-essential zlib1g-dev curl git-core python-software-properties libssl-dev openssl libreadline-dev -y | |
| # useful extras: libgeoip-dev | |
| # Install latest stable Nginx | |
| sudo add-apt-repository ppa:nginx/stable | |
| sudo apt-get update -y | |
| sudo apt-get install nginx -y | |
| service nginx restart | |
| # Install Node | |
| curl -sL https://deb.nodesource.com/setup | sudo bash - | |
| sudo apt-get update -y | |
| sudo apt-get install nodejs -y | |
| # Install Firewall | |
| apt-get install ufw -y | |
| ufw enable | |
| # enable ssh, either on default 22 or a port you change it to | |
| ufw allow 22 | |
| # enable http etc... | |
| ufw allow 80 | |
| # Add Deployment User | |
| groupadd admin | |
| adduser deployer --ingroup admin | |
| su deployer | |
| # (logout) | |
| # brew install ssh-copy-id | |
| # ssh-copy-id deployer@SERVER_IP | |
| # ssh deployer@SERVER_IP | |
| # Say hello to git (expect response: Permission denied (publickey).) | |
| ssh git@github.com | |
| # Install rbenv | |
| git clone https://github.com/sstephenson/rbenv.git ~/.rbenv | |
| echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.profile | |
| echo 'eval "$(rbenv init -)"' >> ~/.profile | |
| exec $SHELL -l | |
| # Install Ruby 2.2.2 | |
| git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build | |
| rbenv rehash | |
| rbenv install 2.2.2 | |
| # ^ go and get a coffee, rbenv install takes a while | |
| rbenv global 2.2.2 | |
| # Check installation went OK | |
| ruby -v | |
| # Install Bundler | |
| echo "gem: --no-ri --no-rdoc" > ~/.gemrc | |
| gem install bundler | |
| rbenv rehash | |
| # ... | |
| # Install postgres, redis, varnish etc | |
| # Install Postgres 9.4 | |
| sudo sh -c "echo 'deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main' > /etc/apt/sources.list.d/pgdg.list" | |
| wget --quiet -O - http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | sudo apt-key add - | |
| sudo apt-get update -y --fix-missing | |
| sudo apt-get install -y libpq-dev postgresql-9.4 | |
| sudo -u postgres psql | |
| \password # enter a root user password | |
| create user <appname> with password 'secret'; | |
| create database <appname>_production owner <appname>; | |
| \q | |
| # generate ssh keys for github if private repo | |
| ssh-keygen -t rsa -b 4096 -C "YOUR_EMAIL" | |
| eval "$(ssh-agent -s)" | |
| ssh-add ~/.ssh/id_rsa | |
| cat ~/.ssh/id_rsa.pub # paste in https://github.com/settings/ssh | |
| ssh -T git@github.com | |
| # capistrano 3 | |
| cap production deploy:setup_config | |
| cap production deploy | |
| # java 8 | |
| sudo apt-add-repository ppa:webupd8team/java | |
| sudo apt-get update | |
| sudo apt-get install oracle-java8-installer |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment