I use calibre and calibre-web. I have the DeDRM and ACSM plug-ins installed in calibre so I can buy a book from ebooks.com or wherever, drop the acsm file in my auto import folder, then just download the drm stripped epub from calibre-web and import to the Books app on my iPad.
Calibre is highly regarded and works well with nearly all e-readers afaik. It has a local server option for browsing, uploading/downloading, and community extensions.
I use Kavita because calibre-web doesn't have reading progress. It can be a bit weird about what metadata it picks up from scanning your library. I have a lot of problems with books having the wrong metadata until I manually rescan the library.
For manga, I use Kavita and connect to it with Tachiyomi on Android. I organize these files by hand outside of any system. I prefer this because it synchronizes and works well.
For regular books, I have Readarr synced with Calibre, which I then have Calibre-Web connected to, which then exposes an endpoint for my devices using opds with apps like moonreader+ on Android or an e-ink device running koreader.
I prefer my regular book setup for the organization Calibre brings along with the flexibility of Calibre-Web.
Calibre for ebooks, and looking into komga for manga and comics. Audiobookshelf for audiobooks.
I've been running calibre forever. It just works. The only thing I find a little cumbersome is adding books, as I add them to a local calibre library, mount my server's calibre library folder and then use the copy to other library function in calibre. Probably not the best way to do it.
For audiobooks I had regularly been scouring the internet for solutions because the ones I had never worked that well for me, until one time suddenly Audiobookshelf popped up. It's simply amazing.
If you're just looking for ebooks Calibre/Calibre-Web will do the job. I wanted a good audiobook player too so I went with Audiobookshelf as it does that and a few other things. You could also go with Jellyfin as I've read it can do epub, but I have no experience with it.
I highly recommend AudioBookShelf . It's mostly geared towards audiobooks/podcasts, but it has a decent reader built into it. That being said, it's not without it's flaws, like some document file types aren't recognized, and not properly syncing progress occasionally.
Edit: I should mention it's actively being developed, devs are active on discord & GitHub, and it's getting better all the time.
AudioBookShelf is awesome for audiobooks. I can't speak to its capability as an eReader but I thought I'd throw that out there for anyone wanting a second opinion. I use it daily and the Android app is great too. My go-to audiobook server for life if it stays just like it is right now.
As a few people have pointed out, Kavita is a solid one. I ultimately used it because it saves your spot in the book server-side instead of with the browser (like calibre-web) so you can pick up where you left off on different devices.
Also has a pretty good PWA for your phone if you want to read on there.
I wouldn't consider myself a power user on ebook servers by any means, but I spun up Kavita a few weeks back and it definitely handles everything I need it to so far. Feels better to use than calibre IMO too.
@midas I have a weird problem with the android app losing my place in the book regularly. I finally just went to downloading the book with audiobookshelf and then using a different audio book player on android.
I'll second Ubooquity. I have a lot of experience with this, as I've been self-hosting my eBooks and Audiobooks for many years now. Ubooquity is not perfect, but if you're willing to tinker with it, you can get it set up pretty nicely. There are themes, and the Plex theme actually makes it look really slick.
Kavita is the new kid on the block for me - I have been testing it out as a general-purpose eReader but I'm not ready to give it my recommendation yet.