Created
September 3, 2014 07:53
-
-
Save Epigene/fa8a6b8c88b3a38d2fc3 to your computer and use it in GitHub Desktop.
Droplet Image Setup
This file contains 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
## | |
## Here is what image already has | |
## | |
#add repos | |
add-apt-repository ppa:nginx/stable | |
add-apt-repository ppa:chris-lea/node.js | |
sudo sh -c "echo 'deb http://apt.postgresql.org/pub/repos/apt/ precise-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 - | |
# Setup deployer user | |
adduser deployer --ingroup sudo | |
su deployer; cd | |
sudo chmod 777 /etc/environment; echo "LC_ALL=en_US.UTF-8" >> /etc/environment; echo "LANG=en_US.UTF-8" >> /etc/environment; echo "LC_ALL=en_US.UTF-8" >> /etc/default/locale; echo "LANG=en_US.UTF-8" >> /etc/default/locale; sudo chmod 744 /etc/environment | |
# postgresql | |
sudo -u postgres createuser creative | |
sudo -u postgres psql | |
postgres=# \password creative | |
# Install block | |
apt-get -y update | |
apt-get -y install python-software-properties software-properties-common curl git-core nginx postgresql-common postgresql-9.2 libpq-dev telnet postfix nodejs libgdbm-dev libncurses5-dev automake libtool bison libffi-dev | |
# nginx installed | |
# Postfix installed | |
# Node.js installed | |
# Install rvm + ruby + bundler (for rails apps) | |
curl -L https://get.rvm.io | bash -s stable | |
source ~/.rvm/scripts/rvm | |
rvm install 2.1.2 | |
rvm use 2.1.2 --default | |
# ruby -v | |
echo "gem: --no-ri --no-rdoc" > ~/.gemrc | |
gem install bundler | |
git config --global color.ui true | |
# Configure Nginx | |
sudo ln -s /opt/nginx/ /etc/nginx # links the nginx executable into etc | |
cd /etc/init.d; sudo touch nginx_start.sh | |
echo "#!/bin/bash\nsudo /etc/init.d/nginx start" >> /etc/init.d/nginx_start.sh | |
sudo chmod +x /etc/init.d/nginx_start.sh | |
sudo update-rc.d nginx_start.sh defaults | |
## | |
## Here is what is app-specific | |
## | |
# Postgres database | |
sudo -u postgres psql | |
# create database <app> owner creative; | |
# Configure GIT | |
git config --global user.name "<YourGitName>" | |
git config --global user.email "<YourEmail>" | |
// From local terminal `ssh-copy-id -i ~/.ssh/id_rsa.pub deployer@<DROPLET_IP>` | |
ssh -T git@github.com | |
# Secure the server | |
sudo chmod 400 /home/deployer/.ssh/authorized_keys | |
sudo chown deployer:sudo /home/deployer -R | |
sudo nano /etc/ssh/sshd_config // PermitRootLogin yes -> no | |
# SSL | |
openssl genrsa -des3 -passout pass:x -out server.pass.key 2048 | |
openssl rsa -passin pass:x -in server.pass.key -out server.key | |
rm server.pass.key | |
openssl req -new -key server.key -out server.csr | |
## Self signed | |
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt | |
# after deploy:setup | |
chmod +x /etc/init.d/unicorn_<APP_NAME> # set as executable | |
# after deploy:cold | |
rm /etc/nginx/sites-enabled/default | |
service nginx restart | |
update-rc.d -f unicorn_<APP_NAME> defaults |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment