Did you ever considered to load this lovely BMW Isetta with 2 90kgs dudes, luggages, 2 beer kegs and a Class A amplifier?
If this happens, maybe the tiny 250cc engine won’t tell you “i’m fine, thanks”.
As stated by @Andy_Wismer 1GB of ram could be enough for piHole and squid, but when it comes to manage webservers and db servers, this lead to gamechange. Moreover: storage of Rasperry is usually made by SDCards.
Which improved a lot during these years, but it’s still “slower” and erratic as behaviour when you stack enough disk access with ram consumption and… swap.
Pi boards are really wonderful, but if you are going to build “services” above those, IMVHO load calculation should be done a little better.
You would like to have one device? Consider an x64, capable to 16gb of ram and using mSATA or even NVMe flash drives, faster and more networking interface (this come handy during backups). It has not to be the latest one on the market, according to CPU computational power available you can still look for 5 years or older device.
You want to use Pi? IMVHO the load split should among two boards, both Pi4 at least for not having the USB bus costrain on ethernet connection, if i recall correctly (WiFi is on a separate bus, but don’t use WiFi for providing services). 2GB Ram board should run piHole and Squid just fine, 4gb or more board could run nicely enough a site with MySQL instance.
i’ve also got among others all the software running except for pihole (i’ve had it running natively on a seperate rpi4 i use for development but i know it would run fine on a rpi4b 2g model but obviously would run fine using docker on the same machine) running on a rpi4b 8g it works flawlessly