Ivan Jeržabek

Ivan Jeržabek

univ. mag. ing. comp.

Software engineer

← Back to home
Managing a VPS

Managing a VPS

As a kid I spent my time playing video games with my friends, and from time to time we would play something together that required a multiplayer server of our own. Whether it was hosting a Minecraft server and port forwarding the family router, or running a VPN using Hamachi to play 7 Days to Die, I had a great interest in running software and making it available to others.

During my later teens this want turned into a need when I was offered payment to develop a moderation bot for Discord. I understood the most basic concept of a VPS but I had zero experience setting up a firewall, managing SSH access or using services such as Cloudflare. However for about 7 euros a month I rented a small VPS with 4 GB of RAM and 4 vCPUs and got to work.

I made the Discord bot using Java and Discord4J then ran it on the VPS. That's it. Nothing but keyless SSH, FTP and one application running on the root user.

After many years of experimenting with different hosting providers, services, going through high school and university, I learned a thing or two.

Right now my server, nick named Kesidi after the serbian alt-rock band Buč Kesidi, looks like this:

Self managed VPS diagram
Self managed VPS diagram

Root user disabled, proper firewall setup, secure SSH access in place, two-factor authentication enabled where possible and necessary, regular updates and backups, observability, discoverability, scalability, caching, common security practices, continuous integration and deployment, documentation et cetera.

Most of these keywords are the bare minimum for secure and reliable public facing infrastructure, even though there are a million more, making this setup astonishingly simple—yet at this scale it very wall may be enough.

As they say,

"Za koga je, dobro je"

Which translates to "For whom it is, it is good".

It is a continuous effort maintaining and improving such a setup, but it has plenty of benefits which make app development and deployment much easier and more enjoyable.

Certainly if anything, this is a great learning experience and an extremely entertaining hobby.

Cover photo by Vladimir Srajber: https://www.pexels.com/photo/close-up-of-a-bunch-of-cables-plugged-into-a-device-13963756/