Ubuntu VPS setup at digitalocean
Jun 27, 2014
This post is more than 5 years old. While math doesn't age, code and operating systems do. Please use the code/ideas with caution and expect some issues due to the age of the content. I am keeping these posts up for archival purposes because I still find them useful for reference, even when they are out of date!
This blog is hosted on an Ubuntu 14.04 VPS at digitalocean . This post is mainly a reminder for me of the tutorials I used to set things up, however you might find it a helpful guide as well.
Initial server setup
As you might expect, initial server setup is the place to start after you've created a droplet and received a password from digitalocean .
ssh key setup
Next up is ssh key setup . I used a unique ssh port (call it XXXX) and a non-default identity file identity.pub. My command to copy my key to the server was then of the form:
$ ssh-copy-id -i ~/.ssh/identity.pub -p XXXX firstname.lastname@example.org
Once setup, the ssh command is:
$ ssh -i ~/.ssh/identity.pub -p XXXX email@example.com
To save myself from typing this every time, I added this identity to my ~/.ssh/config file with an entry for the server:
This allows me to ssh with the simple command (tab auto-complete works too):
$ ssh chrisstrelioff.ws
and the correct port, identity file, etc are used.
Setup a firewall
Next, I setup a firewall using ufw . The install is simple:
$ sudo apt-get install ufw
Once installed, the status can be seen using the command:
$ sudo ufw status
At this point there should be nothing to see-- simply a notification that the status is inactive. So, let's set some default policies:
$ sudo ufw default deny incoming
$ sudo ufw default allow outgoing
This denies everything incoming and allows all outgoing by default. Next, we must allow incoming ssh. By default ssh uses port 22 and the command to allow incoming ssh is
$ sudo ufw allow ssh
However, if you've setup ssh on a different port (as I have) -- say port XXXX -- the command becomes:
$ sudo ufw allow XXXX/tcp
We'll also allow www traffic:
$ sudo ufw allow www
Finally, enable the firewall using, but, be sure that you've setup your ssh access before doing this!:
$ sudo ufw enable
Now trying the
$ sudo ufw status command
should reflect the ports we allowed above and indicate the firewall is
active. Finally, to disable or reset ufw the commands are
$ sudo ufw disable
$ sudo ufw reset
For more information on ufw try: ufw or setup a firewall .
Install nginx on Ubuntu 14.04
Next, I will install nginx on ubuntu 14.04 , also see nginx for serving web content. The install is exactly as you'd expect:
$ sudo apt-get install nginx
nginx is active by default when installed. So, open a browser and go to the IP/url for your VPS to see the default nginx welcome page.
To stop, start or restart nginx try:
$ sudo service nginx stop
$ sudo service nginx start
$ sudo service nginx restart
Finally, for the initial setup, let's make sure that nginx starts when the server is rebooted:
$ sudo update-rc.d nginx defaults
This command should say that stop/start links for nginx already existed. The next step is set up for the actual content-- try how to setup nginx server blocks on ubuntu 14.04 .
Updating the server
The server will need to updated at times and this has to be done via the terminal. Fortunately updates are pretty simple. For typical (minor) updates of installed software the following will get things done:
$ sudo apt-get update
$ sudo apt-get upgrade
For major updates (like a kernel upgrade) more has to be done:
$ sudo apt-get update
$ sudo apt-get dist-upgrade
Typically this is followed by a reboot of the server:
$ sudo reboot
That's it for all the basic updating needs.