I always thought every developer needs to have their own VPS. I created one about 4 years ago, when I just graduated college and got my first full time job. Even though I did not use it that often, it was still essential for me to have some remote machine ready at any given time. It let me run anything, especially long-running jobs or something which needed high bandwidth. It also enabled my apps to be accessed via my own domain with minimal setup.

I used DigitalOcean for my VPS, but for no particular reason. I could always spin up new short-lived instances for more CPU/RAM demanding tasks, so until now the single droplet of the lowest spec (1 GB RAM/1 CPU/25 GB disk) was enough to cater my VPS needs.

I decided to migrate my VPS to a new one for the following reasons.

I took this opportunity to document every step along the way, to learn what works and what doesn't, and so I could replicate the same process easily in the future. And I decided to share it here as well.


Thanks for the 4 years of service! Now it's time to retire.

General Architecture

One of my objectives was to conceal the droplet's IP. I decided to hide my server behind Cloudflare. I also put a lot of things at once in my VPS, and I used Nginx reverse proxy to redirect the traffic to the appropriate port by subdomain or path.


The general architecture looks like this. Pretty simple, but it caters my needs.

Powered by Fruition