I'm looking to set up a server of some kind that I can use to store more or less arbitrary files on demand.
While I have quite a bit of programming experience, I have little-to-no experience in the server-space, so I don't really know where I should be getting started/what kind of pitfalls I should be looking out for/what kind of design choices I should be making early on.
In short: I want some system that allows me to take more or less arbitrary files, send them from either my laptop or phone, and have them stored on a drive that I can have lying around somewhere hooked up to some setup. I don't need any automatic backing up, sending files manually is sufficient. The individual files I'll be sending probably won't be exceeding the MB range of sizes. Remotely downloading files from the storage is not an immediate requirement, if I need to retrieve them I can plug directly into the disk. What I want to protect myself against is the "freak accident" type of thing where all the devices I currently have copies of a file on are lost in a fire, while travelling, or something like that.
Does anyone here have any tips for where I should be looking to get started?
I actually have office locations in two different cities, and my home in a third, so my initial idea was to set up two drives (at one of the office locations and at home) because of course, a backup server in my home wouldn't protect against a house fire (admittedly, that's probably my most far-fetched concern).
My issue with a VPS is that I would very much prefer to have physical access the the drive myself, otherwise I would just pay for iCloud storage. A part of the point is that I want a system where I'm in control of as much as possible, so that I don't have to rely on some corporation playing ball to keep my stuff safe.
I'm perfectly comfortable working through a CLI, and my initial idea was actually to build a system for this myself, but it seems from the comments like there are some good alternatives out there that I may be able to use.
In that case, Tailscale and Syncthing. Again, I haven't used Tailscale (but I've heard positive comments from a tech podcast host who likes it). Syncthing is something I have used and it's awesome. Good luck!
No need for tailscale...