Checked out the Gitea source, I found the code fairly clean given its feature scope but interfaces like HasTLSer really spoiled an otherwise good impression. The advice about interfaces ending in -er was meant when it also makes sense as a word, hence Writer, Reader etc. HasTLSer just doesn't fit. Even TransportEncrypter is imo better than HasTLSer.
But otherwise a pretty solid codebase on a first pass.
The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!