1. When you install Seafile you get two services: Seahub that binds to 127.0.0.1 and Seafile that binds to 0.0.0.0 and this isn't explained why one is public and the other isn't. Evidently they expect you to proxy both services, so why make one public at all? To be fair they briefly mention it as an optional step of the optional nginx section, which I hadn't seen before your comment so shame on me!
2. My other issue is that the installation guide doesn't tell you to create a user for seafile and manually start the service as this user. Most services are installed as root and started as root and I would expect most users to do just that. There is nothing inherently wrong with seafile not setuid()ing itself or its install script not creating a user, but it should mention it in the guide.
(To be fair they're really pushing the docker method now and I expect manual installation to be deprecated.)
An interesting take from the post is that nobody other than Seafile is even attempting to cater to the author's requirement. Perhaps it is a very niche requirement? Alternatively, that implementing the requirement in a clean-and-perfect manner is either not possible with the current state of the tech OR it is complicated enough that nobody else bothers to do it given the lack of demand?
It seems that although Seafile's implementation leaves something wanting (I think Option #1 of never sending the key to the server may be a superior option), the sheer fact of the feature's availability trumps the sub-optimality of its implementation. The author also implies that the implementation is "good enough" for his (and presumably most others') use cases.
The thing that really made task management stick for me was the creation of a personalized task management meta-model: What workflows do I wish to follow and which task attributes and views are needed to enable those workflows? After thinking through that, it became easy to find and configure a task management app in a way that it got consistently used.
Here is the reference I used for creating my own task management meta-model: