I use calibre to manage my library. Well, mostly just to put them into one place. But to browse/read/download books I've written my own service reads the calibre sqlite database and serves it as a web page. It doesn't have opds support yet, but I'm looking into that. Check it out here: https://sr.ht/~ilikeorangutans/books/