I currently run all my services on a VPS (Virtual Private Server) due to just graduating and not having anywhere to host a homelab fulltime.
I use an OVH Essential VPS with 2 vCores and 4GB RAM. This was a huge upgrade from the base tier Digitial Ocean droplet I had which only allowed me 1 vCore and 1GB RAM. (A great recommendation from my friend Crimsontome who also inspired this blog post.)
Lets get into it!
Docker and Docker Compose
I host all my services within Docker containers for ease of management and for the ability to assign ports to services that do not traditionally use ports such as Discord bots.
While the majority of my services use Docker commands, some of them such as NGINX Proxy Manager use Docker-Compose to be setup.
To manage said containers, I use Portainer.
This great GUI allows for an easy way to start, stop and restart containers while also allowing for easy log viewing of each individual containers.
The ability to see every containers status at a glance is invaluable as the ammount of containers I run grows.
Jekyll Static Sites
I went with Jekykll rather than other static site generators as I wanted to self host and couldnt figure out the best way to get them running in a Docker container.
Plus, the benefit of having this awesome theme is a bonus.
You can find my version here: https://links.kieranrobson.com
Discord Bots and Ouroboros
I develop and host three Discord bots.
The first one is Clarence. This bot is a multipurpose bot used in a private server with my friends.
The next bot is for the Hull University Computer Science Society, in which I used to be president. This bot helps automate some tasks such as the Code of Conduct verification and also allowing for embeds of information rather than traditonal messages.
The final bot is the bot for the Hull University Robotics Society. This bot is similar to the computer science society bot however does slighlty different things such as using buttons rather than dropdown boxes for role assignment and small elements like that.
I put these in their own Docker containers so that I could use monitor them using Uptime Kuma (see below).
A benefit to this approach is that using GitHub actions, I can push code to GitHub and it will be pushed to Docker Hub then pulled down to my containers using Ouroboros, all automatically without the need for me to do anything.
NGINX Proxy Manager
These services together allow me to hide my VPS URL from the outside world by proxying it while also allowing me to get free SSL certificates giving my sites
I might keep this post updated or make montly update posts refering back to this one for when I make big changes to my setup. Who knows.