Self-hosting SeaweedFS for industrial workloads
Notes from running SeaweedFS as the object store behind a closed-source enterprise platform for a year. What works, what surprised us, and what we would do again.
The platform we run for one of our industrial clients holds a lot of binary data. Datasheets, technical drawings, certificates, photos of products some of which were specced in 1989. None of it is allowed to leave the EU. Most of it is not allowed to leave their own infrastructure. S3 was off the table from the first conversation.
We picked SeaweedFS. A year in, here is what is worth saying.
What we got right
The S3-compatible API was the right bet. Every client library that talks to S3 talks to SeaweedFS without modification. When we onboarded a new microservice last quarter, the storage integration was about forty lines of config, all of it boilerplate we could copy from another service.
Operationally it has been quiet. The cluster runs on three modest VMs. We have replaced disks twice, both planned. Volume rebalancing handled itself. The dashboard tells you what you need to know without forcing a separate observability stack on you.
Region tagging worked. Every object is pinned to eu-west-1. The audit team asked for proof on day one and we exported it in an afternoon.
What surprised us
Background tasks like garbage collection and erasure coding compete with read traffic in ways the docs are honest about but the defaults are not tuned for. We learned to run the heavier maintenance jobs at night. Anyone who runs a database has been here before. It was still a surprise the first time.
The community is smaller than the public S3-alternative crowd. When we hit a niche issue with our deployment topology, the answer was sometimes a single GitHub thread from 2022. We read source. Worth it.
What we would do again
Self-hosted object storage is a decision that locks you in for years. You own the operational risk and you own the audit story. For an industrial client that has no acceptable cloud-egress story, that trade-off is the entire point.
If you are running a workload that does not need to live on your own iron, you do not need this. If you are, SeaweedFS is the boring answer that holds up.
Continue · next note
BugPin is the bug-reporting widget you actually own
BugPin is MIT-licensed and self-hosted. SQLite plus Docker, drop-in widget under 150 KB. The boring answer to a problem most teams have already paid a SaaS for.