Since I use many different devices and want to access the same files from all of them, I run my “own cloud” at home with an Odroid-HC2 (a Raspberry 4 or similar device should work just as well). A 2 TB NAS hard disk (Seagate Ironwolf) is connected to the HC2, where all files are stored. Using Docker I have installed Nextcloud for files (documents, photos, etc.) as well as Gitea (code repositories).
Yesterday I ordered an external SSD to have a bit more storage on the go when using my Surface Go, but also to exchange files between my devices (it has an USB C cable, so it should even work with my phone). I have a huge (4TB) external HDD already, but that needs more power than what comes out of the USB C port on the Surface, so when I want to use that, I have to use a charging cable and that’s suboptimal.