Over last few years I have been playing with raspberry pi devices for several purposes, one of them being 3d printer (OctoPi is great), but also for testing apps I want to run on Linux.
Using raspberry is one-time investment, and swapping different machines is as easy as swapping SD card, so I decided to dedicate one of them for hosting this blog.
Right now it runs off Raspberry 3b+ with 1GB of RAM. I added small heatsinks to it and put it into one compartment of IKEA Kallax in my office. I use it to house my network switch and NAS drives, and to avoid overheating in closed space, I installed ventilation.
Back side of Kallax insert with holes has 140mm fan:
It seems this insert is not available globally, but you could use some other that has enough airflow on front, like this one.
Make sure you put an dust filter on the back side, to avoid devices clogging up and overheating.
To supply fan and raspberry with power, I added multi-USB charger, 5V to 12V DC-DC step-up-converter (to get 12V out of 5V USB line) and an Noctua NA FC1 4 Pin PWM Fan Control Unit so I can lower the speed of the fan (reduce noise).
For software, I use Ubuntu Server 18.04 for Raspberry 3, with Webmin, NGINX and MySql. WordPress runs on NGINX through php-fpm.
I keep my install scripts on Github so it is easy to reinstall/make another pi.
I am currently setting up an Raspberry 4 with 2GB RAM and Ubuntu Server 20 running off an SSD. I want to use that as my server, but I wanted to run WordPress in Docker container and I still did not set up connecting that WordPress to MySql server which is outside of container in a way that I am happy with.