I already had a server running docker, so throwing a few more containers in was trivial. There's a docker-compose.yml published in the lemmy repo.
Since my server was already running and had free space, it was literally free, but if you're starting from scratch there's more to consider.
I've been self-hosting for over a year now, and the storage does add up. The postgres DB is 11GB, and pictrs service is getting bigger at 29GB. Between all the different services, it can eat up a decent bit of CPU. My (admittedly 10 year old CPU) sits at a load average of 1.9, so you'll probably want 3 or 4 cores minimum. And based on my stats, 4GB of ram should be just enough to keep everything loaded.