#Ubuntu Server Setup
##Create Server
- DigitalOcean or other cloud service
- Setup DNS A record
##User Setup
As root:
#change root password
passwd
#add new user, add to group 'sudo'
sudo adduser <username>
sudo adduser <username> sudo
#edit root priviledges
visudo
# add line to give root priviledges to group 'sudo'
# %sudo ALL=(ALL:ALL) ALL
# ctrl-x, y to exit & save
#edit ssh config
nano /etc/ssh/sshd_config
# Port 22 #change to between 1025 and 65536
# Protocol 2
# PermitRootLogin no
# AllowGroups sudo
# ctrl-x, y to exit & save
#restart sshd
service ssh restart
Logout, login as new user
##Get the repos ready and run updates
sudo apt-get update && sudo apt-get upgrade
##RVM - Ruby, Rails
sudo apt-get install curl
curl -L get.rvm.io | bash -s stable --autolibs=enabled
. ~/.bash_profile
rvm autolibs enable #necessary?
rvm requirements
Example 'rvm requirements':
sudo apt-get install git-core patch gcc make libc6-dev libreadline6-dev zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev autoconf libc6-dev libgdbm-dev libncurses5-dev automake libtool bison pkg-config libffi-dev
Then
rvm list known
rvm install 2.0.0
rvm install 1.9.3
rvm install 1.8.7
rvm --default use 2.0.0-p0
rvm use 2.0.0 --default
rvm rubygems current
gem install rails
##NVM - NodeJS, NPM
git clone git://github.com/creationix/nvm.git ~/.nvm
printf "\n\n# NVM\nif [ -s ~/.nvm/nvm.sh ]; then\n\tNVM_DIR=~/.nvm\n\tsource ~/.nvm/nvm.sh\nfi" >> ~/.bashrc
NVM_DIR=~/.nvm
source ~/.nvm/nvm.sh
nvm ls-remote
##Add databases.
sudo apt-get install postgresql postgresql-contrib libpq-dev pgadmin3
sudo -u postgres createuser --superuser `logname`
#Ruby
gem install pq
sudo apt-get install mysql-server mysql-client libmysqlclient-dev
#Ruby
gem install mysql2
###SQLite
sudo apt-get install sqlite3 libsqlite3-dev libsqlite3-0
##Git Configuration
git config --global user.name <git-username>
git config --global user.email <git-email-address>
ssh-keygen -t rsa -C <git-email-address>
ssh -T [email protected]
ssh -T [email protected]
git config --global core.editor vim
git config --global color.diff auto
git config --global color.status auto
git config --global color.branch auto
git config --global color.status.changed yellow
git config --global color.status.added green
git config --global color.status.untracked red
git config --list
#shutdown
sudo shutdown -h now
sudo shutdown -h 0
#poweroff
sudo halt
sudo poweroff
#reboot
sudo reboot
sudo shutdown -r 0
#list a specific user's groups
groups username
#list all groups (sudo apt-get install members)
members groupname
#check directory size (disk used)
du -sh