This is a working document with no clear goal yet.

For the past couple of years I've had fun managing a teeny-tiny VPS from Ramnode. In my early years I would scrounge around craigslist and office buildings for old, un-used PCs. I would wipe the drive and install a different linux distrbution each week. Distributions are fun, but servers are more fun!

Running a 24/7 server out of your bedroom is more of hassle than it's worth. Old desktops consume at least $200 a year in electricity. (Source) Setting up access from outside your network is nontrivial Take up a good 2 square ft of floorspace Generate heat (only a problem if you're running the A/C)

VPS's operate 24 hours a day for a fraction of the cost. As a bonus you also get a static IP which you can map to a domain. Having a static IP opens up a whole new world of projects.

It's tons of fun! Learn Linux sans inconvenience. Breathe the freedom of running your own services.

What VPS to get?

The cheapest one. It's not an investment, it's a toy, so don't feel beholden to it later. Only 128MB of RAM? Good, constraints force innovation. I pay just over a dollar a month.

What OS?

Whichever you want to learn. It doesn't matter too much. I chose Debian. Here's the trick, your server probably isn't strong enough to sport a Desktop Manager, even if it is, how are you going to set that up? (slowly, that's how).

You'll be working on the command line. Use this as chance to perfect your bash-foo.

How to start?

  • Install the OS/Get set-up
  • Look around your provider's control panel. Learn what the stats mean, and what sort of control you have.
  • Set-up SSH so you can login to your server remotely. It's a good idea to up keys and whatnot, but don't worry if you can't figure it out right away.
  • Create a user account which isn't ROOT. Set it up with Sudo permissions. You may have to install Sudo and create various groups. Do it.
  • Learn how to copy files to and from your server with scp and rsync
  • Learn.

What to do with your VPS?

  • Use it for constantly running processes: Bots, Web-scrapers, Midnight Cron Jobs
  • Have your own Tiny Tiny RSS Client, or TTRSS, available everywhere
  • Try Subsonic music streamer (Warning: lots of RAM)
  • Host a website, or two, or three.
  • Run a proxy ad-blocking server to reduce the amount of data your phone uses. Pi-hole works well, I followed dlaa.me's derivative, Sky-Hole
  • Use it to send files to friends (lots of methods for this)
  • Set-up MOSH for a better remote experience
  • Mumble Server for a low-latency audio chatroom. This is super nice.
  • Write a networking program and run your server here (until you have to move it)
  • Test out new software before downloading it to your machine
  • Setup a devenvironment accessible from anywhere