Show HN: LibreRead 1.0 – Self-Hosted Free Ebook Reader

(libreread.org)

210 points | by mysticmode 2324 days ago

24 comments

  • TAForObvReasons 2324 days ago

        Features
        - Built using Golang
    
    More general commentary: For people actually using the software, is the implementation language really a feature?

    EDIT: to be clear, I'm not attacking go as a language but rather the general trend of citing the implementation language as a feature when the audience is more than just "developers"

    • FootballMuse 2324 days ago
      For the end user? No. For the self-hoster making the decision on whether or not to pick this solution? Yes.

      The same goes with "Easy Installation". The end user doesn't care if the install or easy or hard.

      You have to consider the dependencies, resource requirements, and manageability of anything you host.

      • robk 2324 days ago
        Or just containerize and don't think about that :)
        • nxc18 2324 days ago
          Containers can be just as much of a pain in the ass to set up as anything else. I’ve had instances of much better experiences setting up software running out of container than in container.
          • maxaf 2324 days ago
            A lousy Dockerfile or missing docker-compose.yml will do that. Just because someone took the time to lump together a container doesn't mean it's the right one or that it would be reasonably useful to someone seeking to take advantage of the containerized software.
      • tomc1985 2324 days ago
        With self-hosting the host is often the end-user.
    • slezyr 2324 days ago
      It's. And really big one. I don't use Go, but I self host some services. You need to host few services to understand how important this feature really is.

      I hosted owncloud, tiny-tiny-rss, seafile, and some others. It was a nightmare to install any of these, then I installed gitea. That was EASY, REALLY EASY. No need to install and configure php, python2/3 and compile some modules for it.

      With gitea you could just launch binary and it works, that's all. And compiling it from sources was just one command.

    • socksy 2324 days ago
      People ask this every time someone releases something written in Golang advertised as such. ;)

      As a non-Go programmer, with absolutely no inclinations to get into it in the near future, I will happily accept a fast, self-contained Go binary over many other stacks.

      • mariusmg 2324 days ago
        Self containing binary that runs anywhere is the pinnacle of deployment :)
    • ashark 2324 days ago
      That tells me I'm not going to have to install some command line tools, a couple scripting language or JVM runtimes (make sure it's the right version, which may not be the latest!), a new package manager or three, and a bunch of other crap to run the program. Probably it's a one-file or one-file-and-a-config affair.
    • ycmbntrthrwaway 2324 days ago
      Since I installed Gogs recently, I was actively looking for an answer to "is it written in Go?" first of all. I like how easy it is to just bind service to localhost:someport and add one line for reverse proxy to nginx/caddy/apache/whatever, instead of dealing with all those CGI/FastCGI/WSGI/paths/permisions/indexes/whatever. The second thing I look for is "does it require MySQL or can I just make it create its own SQLite database and stop nagging me about configuration?".

      Btw, I have never wrote go besides playing around with web server tutorial recently.

      If only someone can recommend me a chat service that is just as easy to configure as Gogs. Mattermost requires its own domain :(

      • yumaikas 2323 days ago
        You can easily set up Mattermost with a subdomain by using nginx or your proxy of choice, which is only a little extra work, and with LE, can also be easily secured. This is what I did for Mattermost at my previous job, and it worked quite well.
    • mrmondo 2324 days ago
      As an ops engineer - yes, very much so. I hardly ever have problems with applications written in go, but there’s no way in hell you’ll see me installing something written in nodejs, mono or php.
    • woolvalley 2324 days ago
      When your an open source project, your marketing page also becomes a marketing page for more developers. With the word 'libre' in the app name, I think there is some of that kind of marketing going on ;)
      • roryisok 2324 days ago
        I think libre here is a book pun
    • CalChris 2324 days ago
      The poster is saying that it’s written in go so that if an HN reader is interesting hacking or contributing to it, they know this.
    • tomc1985 2324 days ago
      It could be modern tribal signaling
      • tomcam 2324 days ago
        It could be signaling that I have a single binary to just install likely with no other dependencies, which is what I think when I see that statement
        • tomc1985 2324 days ago
          Then why not just say "single binary, no dependencies," rather than bury it under an additional layer of abstraction? A humblebrag is still bragging...
          • philtar 2324 days ago
            Because saying it was built with go says "single binary, no dependencies" and more. It also says that it was built in go for any developers who want to contribute.
            • tomc1985 2324 days ago
              If you know Go, which many don't/won't/can't.

              I've never seen a language so obnoxiously namedropped as Go, it's really annoying. We have such a hard-on for our tools, and it really only results in countless, needless lines drawn in the sand.

  • sundarurfriend 2324 days ago
    Looking at the demo (why does it show the demo login details to have us copy-paste it, instead of autofilling it or even auto-logging in?), I feel like they tweaked the mobile interface a little bit and serve it for the desktop, and called it 'responsive design'. Basic actions like 'Add new books' are hidden in a hamburger menu over at a corner, easily overlooked on a desktop, and the menu fills up the whole screen when expanded, despite having only four options.

    I like the idea, but an explanation or a FAQ would be much more useful than a small list of vague bullet points. It looks like it takes PDFs and epubs and serves them as HTML - but PDF conversion is particularly tricky and prone to failure. Are there options to tweak the conversion like in Calibre, to work around badly formatted PDFs (which seems to be most of them)? How does it handle figures, or tables that are too large for a given mobile screen? Can it fetch covers and/or metadata for books if necessary? Answering some use-case questions like these can give users a better feel for the scope and goals of the project.

    • smhenderson 2324 days ago
      It looks like it takes PDFs and epubs and serves them as HTML - but PDF conversion is particularly tricky and prone to failure.

      When I clicked a PDF link it opened in FireFox's PDF viewer. Thought that was odd/a bug. I checked it out because I would like a ePub/PDF reader that works on any machine I have access to and can connect to a machine running this but at first glance it needs a little work. Still, I'll check in a few weeks from now, it's a good idea if they can overcome the issues you mentioned and make sure things render consistently.

  • orblivion 2324 days ago
    If this gets good reception, would you consider adapting this for Sandstorm.io? Seems like it would be fitting:

    https://apps.sandstorm.io/genre/Media

  • acabal 2324 days ago
    Awesome project!

    I see you're using ebooks from the project I lead, Standard Ebooks, in your front page screenshot. Glad to see you're liking our work, and keep up your own good work!

    Drop me a line if you need any help with epub compatibility/quirks :)

    • mysticmode 2324 days ago
      Thank you! Standard Ebooks is a great project. I personally download and read books from there and also used it for a lot of testing in LibreRead.
  • rahimnathwani 2324 days ago
    I really like full-text search for books. Currently I use:

    - Safari Books Online: expensive, and only works with books on their platform

    - Recoll: libre/free, and can search a local book collection. Built as a desktop app, although there's at least one web client[0]

    If either LibreRead or one of the Recoll web UIs can match the speed and UI of Safari's full-text search, I'll be very happy.

    [0] I haven't tried it, because it didn't occur to me to look for one until today: https://github.com/koniu/recoll-webui

    • aperrien 2324 days ago
      If you get a chance, try DocFetcher[0]. I use it for my personal calibre ebook library at home, and I love the fact that between it's independent indexing and the calibre portable distribution, I have a completely portable library on my network.

      [0] http://docfetcher.sourceforge.net/en/index.html

      • rahimnathwani 2323 days ago
        Thanks. Tried it yesterday. It works well for my use case.
  • cdancette 2324 days ago
    It would be great if we could integrate it with some ereader (kobo, Kindle).

    I don't really like reading ebooks on my desktop or mobile

    • cseelus 2324 days ago
      Yeah, that would really be great.

      Just yesterday I wanted to order the new Kindle Oasis because I think the hardware is perfect (good to hold, physical buttons, …) but was told by a coworker just before ordering it can‘t open .epub files.

      Edit: Thanks for all the tips about .epub + Kindle. I just found out that there also is an option to install Software like KOReader[1] if one wants to go the Jailbreak route.

      [1] https://github.com/koreader/koreader

      • hexis 2324 days ago
        No Kindles can, they're based around Mobi, which is a quick file conversion away from an epub.
        • spookyuser 2324 days ago
          It's quick to convert but I've had varying results going from epub -> mobi, especially with calibre. What's worked for me the best has definitely been kindlegen but it's still not perfect.
          • Mediterraneo10 2324 days ago
            In the Calibre settings, did you specify the exact version of the Kindle you have as the output device? With that set correctly, and not just left as the default, it has been years now since I had any formatting issues going from epub > mobi/azw to read books on my Kindle Paperwhite.
            • spookyuser 2324 days ago
              Thanks, I actually don't think I've done this so I'll give it a shot!
        • dublinben 2324 days ago
          It's easier to just buy a device (literally all other e-readers) that support standard EPUB files out of the box.
      • metal 2324 days ago
        Calibre (https://calibre-ebook.com/) is great for converting epub to mobi.
      • bduerst 2324 days ago
        Can't you email the .epub files to your kindle and it opens them?

        I was doing this with a Kindle Paperwhite.

        • ryanplant-au 2324 days ago
          It does this by converting them to AZW3, which can have poor results or fail entirely for long books, books with lots of images, or books with certain formatting.
    • digikata 2324 days ago
      I was just reading about a couple of ereader apps this morning.

      https://github.com/koreader/koreader

      and a newer one that the developer just announced in a Reddit rust group:

      https://www.reddit.com/r/rust/comments/7iu7q8/plato_a_docume...

      • cdancette 2324 days ago
        I would love to buy some e-reader with koreader already installed, I don't think it exists yet
  • hammerandtongs 2324 days ago
    If this were designed to seamlessly interoperate with Calibre (a filesystem and sqlite3 iirc) this would be potentially useful to me.

    I could more confidently selfhost a web version of my calibre library for reading and bookmarking. Calibre has a web version but I'm not confident in it and would be uninclined to host it even in a sandstorm instance for example.

    The memory issues of libreread, as indicated by others, are too much for hosting in a friendly way with other apps. The value of full text search isn't nearly good enough to warrant the memory usage. Aim for < 60MB serverside.

    Calibre has an large amount of features that are critical for people actually trying to maintain an ebook library. Those features have been added and polished over a decade. I'm very doubtful they can be replicated in a reasonable timeframe.

    Valuable to see people making things in this area though! Cheers.

  • thisisit 2324 days ago
    I have been using Google Books for my reading. And that is just for one reason - all my highlights and notes are stored in Google Docs. You can use the doc to build your summaries or quickly read through all the highlights/notes.

    I have yet to find a reader which can do this.

    • superquest 2324 days ago
      Thanks for sharing this. I've been quite frustrated by the low portability of Kindle annotations lately ...
      • tristanho 2324 days ago
        I hate to self-promote on HN, but I recently developed a service which should help with this exact problem: https://readwise.io

        Would love any feedback, if you have it :)

    • pfooti 2324 days ago
      yeah, I got bummed when ... um .. there was a nice epub app for devices that went under a few years back? whatever that was, went under. I moved my epub library to google books, and it's relatively convenient. I like reading technical books on tablets or computers, as color screens seem to fit with that genre better. google books seems to do a good job of importing stuff I buy from places like pragprog, and then be accessible from whatever devices I have.
    • joekrill 2324 days ago
      Not only that: You can upload your own epubs, and it saves your progress across devices and the web.
  • lostmsu 2324 days ago
    You could make a reader as a static website: just sync data to Google Drive / Dropbox / OneDrive. I have a simple EPub reader doing exactly that: https://h5reader.azurewebsites.net/
  • gravypod 2324 days ago
    Does this track current page in PDFs? I had a quick look and it seems like this feature is supported for epub files.

    I maintain, for personal use, a self-hosted web service that does something similar to this. In my custom service I split each PDF into a collection of images. This lets me download limited sets of the book (10-page chunks) for quick load times and also lets me remember which page was the last one I was reading.

    A similar feature in something like this would be cool. Automatically extract the image from the page, transcode it into the best format supported by the browser, and remember which page is being read (regardless of the source book format).

  • bane 2324 days ago
    This is really nice and I'm definitely planning on giving it a looksee. I currently use Ubooquity since it's a very simply no-fuss reader that works fantastic on tablets and has pretty good format support. I currently have about 40,000 books, magazines and comics setup under it and I like generally how it works (with a few small problems that aren't deal breakers). Installing it involves running a jar file and that's it, so this looks pretty heavy to get setup.

    One thing I really wish I could do with it (LibreRead or Ubooquity) is "add" books from the internet archive to it either as virtual links that simply opened up to the IA reader on their site, or with an option to download locally within the reader interface.

  • JustSomeNobody 2324 days ago
    Nice. This has been on my side project ToDo list for some time. I may need to clear that off now.

    Thanks for this.

  • motdiem 2324 days ago
    I like the idea of having full text search, though I wonder how it behaves on large libraries... Calibre is great for managing a library, but not so much at searching through a large amount of books....
    • ThinkingGuy 2324 days ago
      I had the same reaction after trying the demo. I have tens of thousands of e-books, and have been looking for some kind of self-hosted, web-based library system like this. Calibre has come close; I've also experimented with various digital repository software. If the LibreRead's search function just searched for books by default (by title/author/keyword), perhaps with full-text search as an advanced option, it would be just the solution I've been searching for.
  • one87 2324 days ago
    1GB memory min. That's heavy :/
    • ocdtrekkie 2324 days ago
      FWIW, that seems to be a "here's what your VM should be" statement, not a "here's what the app consumes".

      It does get much heavier (recommended 2 GB) if you enable full-text search with Elasticsearch. The metadata-search only capability was added to get the memory requirements lower.

    • leggomylibro 2324 days ago
      An epub file is basically a web page; HTML/CSS rendering ain't cheap.
      • softawre 2324 days ago
        I love that we've come far enough that we need 1GB to process the most basic HTML/CSS.
      • one87 2324 days ago
        He integrated an Elasticsearch , that's probably why.
      • sigzero 2324 days ago
        It is WAY less than 1GB to process.
  • dsr_ 2324 days ago
    Off the top of my head, this needs:

    Table of Contents support with working links; per-user storable bookmarks; font and color control; margin control; multiple methods of page turning; a non-bookshelf library index (I have over a thousand authors, most of whom have more than one book -- any interface needs to be usable by someone with a library of ten thousand books); and probably a partridge in a pear tree.

    But it looks like a good core on which to build.

    • ocdtrekkie 2324 days ago
      Due to sheer volume of books, I have no intention to browse my ebooks at this juncture personally. Search is the only option if you're in the 10k book range, IMHO.

      LibreRead supports both metadata search and full-text search. (Though the latter requires a lot more RAM.)

      • nerdponx 2324 days ago
        What if you categorize and tag your collection? I like lots of overlapping tags, and I like using tags to filter. I personally hate search.
        • ocdtrekkie 2324 days ago
          I am actually neurotic and have a database with not only tagging, but Dewey Decimal and Library of Congress classification fields. ;) I also usually still use search... I just search for the tags I am looking for.

          LibreRead probably could use some tagging and categorization fields in the metadata, but that is the sort of features that should be relatively easy to add later.

        • arstin 2324 days ago
          Yea I usually don't even know exactly what I'm looking for. I'd love an ebook reader which can nail something roughly like the experience of browsing library stacks.
          • asciimo 2324 days ago
            I would love a reading room with a projector that turns a blank wall into a bookcase. It could interact with software on a tablet to "pull" books off the shelf and browse them on the tablet. It could even be responsive to gestures to roll, sort, etc. It seems like we have all the technology to something like this; calibre, Kinect, camera and projector?
  • rkachowski 2324 days ago
    I'd really like a project like this that could read mobi files. There's also calibre-web[1] which also has a nice mobile interface and also doesn't support mobi. I don't know what it is about the structure of this file that is so resistant to be parsed.

    [1]https://github.com/janeczku/calibre-web

  • cmurf 2324 days ago
    Keep all your ebooks in one place. Access it on any device.

    But then it supports PDF and EPUB, neither of which are directly supported by Kindle, they have to be converted first. So is LibreRead converting to AZW, or to HTML such that the Kindle's permanently experimental web browser can display it?

    • JustSomeNobody 2324 days ago
      If it isn't, using Calibre to batch convert isn't hard (DRM free books, that is).
  • Tharkun 2324 days ago
    Can I use it to store/read nasty formats and nasty DRM from actual ebook vendors like Amazon and Kobo?
    • ythn 2324 days ago
      No because DRM like Adobe ADEPT is very mysterious and only authorized ereaders are given access to it. I highly doubt they would allow an open source ereader to implement ADEPT.
  • jcoffland 2324 days ago
    I'd line to have an high quality TTS engine integrated with the ereader. Google's TTS API would work well for this.
    • ocdtrekkie 2324 days ago
      Implementing a Google API would mostly defeat the point to providing a self-hosted alternative: Google would be able to mine text from your eBook library, hence being able to identify (using their own) which books you have and are reading.
  • realusername 2324 days ago
    Is there any way I can help with some translation? I would use it for people who don't speak English at all.
    • mysticmode 2324 days ago
      Sure, Please come to the chat room or email info [at] libreread.org
  • rplnt 2324 days ago
    It works with the epub book in the demo, but with the pdf one, it just opens the whole pdf file in my viewer.
    • ocdtrekkie 2324 days ago
      It's easy to miss this, but that PDF viewer in your browser is customized! For example, look at the "edit metadata" button on the top towards the right side.
      • rplnt 2324 days ago
        The books are gone now. Anyway, I would prefer the server to give me the book page by page (or some sort of segment) as I had to wait for it to load completely (which took some time in this case). I also lost the UI, the listing was different, etc...

        Not sure how feasible it is with pdfs though. Maybe I would just not include them in the demo, I don't think it's a common ebook format anyway.

        • ocdtrekkie 2324 days ago
          I suspect someone deleted the samples from the demo. :/
  • Quanttek 2324 days ago
    short question: what can you people recommend as eBook reader for one's computer? One that allows me to mark stuff and add comments? So far most readers I saw were low in usability or feature-set. Bonus if also available on mobile
  • xchip 2324 days ago
    Nice! Why did you use golang over other programming languages?
    • mysticmode 2324 days ago
      I initially implemented this app in python, but then seeing the complexity of deployment made me shift to golang. The result is a single binary deployment associated with static files.
  • avryhof 2324 days ago
    I'll stick to Calbre
    • sigzero 2324 days ago
      Calibre is a great piece of software.