Operating Seafile was a very frustrating experience. In the first place, setting it up on my Kubernetes (k3s) cluster was quite a ride. It didn’t have a Helm chart or any manifests ready to spin it up, so I had to build my own. This turned out to be pretty difficult because it was clear that the software was not designed with containers in mind and it took significant amount of hacking to even just get it to work. But once it did, then you’d need to manually run garbage collection every few months, because that was a Paid Feature™. I put up with it because of the sunk cost fallacy and because other than that five minutes every 3 months or so, it was working okay. Until it wasn’t.