I would like to stand up some self hosted applications that need a significant amount of storage behind them. I’m thinking pixelfed/immich and peertube for now. The intention is to provide a place for my family to store and share photos and videos in an easily accessible place. I would also like to load it up with a long history of media we’ve already accumulated, adding up to about 1TB. I would prefer to host the front end application on a VPS so that I’m not having to rely on my home ISP to serve everything (blocking standard ports and such). However, I want to use the storage I have available at home. Bandwidth is not an issue (500Mbs synchronous). I know these applications can be set up to use object storage from various providers. Has anyone set up self hosted object storage? If so, any recommendations? Another option may be to create an IPSec tunnel or something between the VPN and the home storage to provide file-level access. Perhaps that would perform better? I don’t really want to pay a fat monthly fee for storage when I already have everything stored at home, but I don’t want to host the applications directly from home either. Thinking others have already solved this. Thanks for your input!
I would suggest not separating the storage from the server that far. It would probably be wiser to run the app with less latency to the storage and accept more latency on the web frontend. In short: use your VPS as a gateway only and put the actual host for the respective app into your home behind a VPN.
That really depends, are you looking for an actual filesystem or (for real) object level storage? Does the frontend have compatibility with s3-type endpoints?
I would recommend a vpn like tailscale to encrypt traffic and not expose your local env to the internet
Here are some self-hosted s3 compatible options: https://geekflare.com/self-hosted-s3/
Although I think you might want to reconsider your architecture here. If you’re planning on self-hosting the storage for a frontend hosted on a VPS somewhere latency is probably going to make for a pretty bad experience.
I can’t help with the whole connection between the VPS and your home server bit, but Minio is probably what you’re looking for when it comes to selfhosted object storage.
I’ve never used object storage before, so I’m not even sure that’s the best approach for the use case. It makes sense when you need to access storage provided by a 3rd party in a standardized way, but perhaps it’s overkill when everything is self hosted. I wonder if folks have other ways to connect the application to remote storage that’s less “heavy.” That said, I will certainly dig into Minio, as it seems to be the best of breed. Thanks!
Yeah, I’m not so sure either.
I mostly just played around with it because some application I was testing relied on s3 storage and Minio was the best selfhosted project I could find that was s3 compatible. Worked pretty well, from what I can remember.
Are there really any options other than minio?
I guess there are a few -> https://geekflare.com/self-hosted-s3/
https://garagehq.deuxfleurs.fr/
Might be a good option if you want to add some off-site redundancy.
Otherwise there is no real need to use object storage for this.
Have you used garagehq before? Any idea how it compares to Minio?
I haven’t heard of it before, but it looks simpler than Minio for distributed storage from a quick glance.
No, I have not used it myself yet. It is on my try sometimes in the future list though.
If you’re based in Europe, have a look at Contabov they offer VPS with 1.6TB for about €18/month. The performance are not good (IMHO), but maybe for just family use it can do it.