I use Zotero, which is open source, and sync it between my devices using syncthing. I know this may not be considered self-hosted by some, but it does put you in charge of your data.
I have been using Zotero for a while and syncing my library directory with Syncthing, even though they say not to (no problem in 7 years including PhD and job).
If you want something even more minimalist, it is possible with the command line too, , which is the approximate setup I'm currently using in my pharma job.