Core Concept
uBiblio is a small and fast web application to help you manage your personal library (and share it with friends, or form a book club). It provides a unified interface for both physical books and ebooks. It is free, open-source, designed for self-hosting, and will never contain ads or spy on you.
You can get it on my GitHub page. I may offer a download here eventually as well if that becomes useful.
You don't have to connect it to the Internet. It can run on your LAN. Or even on a single computer with no network access at all. Or even on an RISC-V system the size of a postage stamp.
I built this because I started to have a lot of books -- I immigrated to Asia some years ago, but still read most comfortably in English. Opportunities to buy English books are few and far between. So I have to hoard books a little, and capitalize on those moments. I also live in a tiny house -- if you are reading this from the West, it's probably about as wide as your hallway. This is fine and quite normal here, but it means I don't have a lot of space -- so books are stored in numbered bins instead of bookshelves. So the system had to assign clear locations to each book.
I tried a few open-source library management tools. However, they required gigabytes of memory, I found them sort of slow to use, and they had a lot of features I did not need. They seemed really good overall, just not suitable for my use case -- I needed something lean that could run on my VPS alongside a bunch of other applications.
Core Features
- Add, remove, update books
- Search books and see their location
- Autopopulate a book's fields by entering an ISBN
- Withdraw and return books
Read together!
- Multi-user support
- Reading list management for each user
- Book wishlist (set owned=False, then update to True when you buy it)
- Content discovery (browse by genre)
- Access control with admin and non-admin user levels
Compatability and QoL
- Works on most phones and ebook readers.
- Really quite fast, low memory requirements for hosting (~100MB).
- No distractions -- it does what it needs to do and nothing else (by default).
- Ebook support, with the ability to store ebook files and download from your reader (as long as it has a web browser)
- Optional support for cover / book images (up to 16 for each book), with thumbnail support.
- A luxurious TWO optional custom configurable fields.
Installation and Management
- Docker, Docker Hub image, and no-container install options. A big thanks to m0ngr31 for helping with this!
- Backup management, for both the database and files!
- RISCV64 Support
Wait-- It Runs on RISC-V?
Yes, on a LicheeRV Nano. It runs surprisingly well, in fact. All features are supported, it's still fast. Power consumption is quite low, around 150-200mA @ 5V. Memory usage sits around 55%, so you've got enough to also run something else, or just support more concurrent users.

But... Why?
uBiblio takes up around 90MB of memory and is pretty snappy. So since it's already taking under 100MB of memory, why host it on a huge server box? Even an old laptop is way too powerful. An old phone? Still way too huge and wasteful. A raspberry pi would work fine, but what will I even do with all that extra memory?
Why stop there? It must run on a system the size of a postage stamp.
It started out as a joke. Then it accidentally worked (sorry). We all make mistakes sometimes.
...How?
Mostly, the Debian port for RISC-V is really good, so once that was set up, it just sort of worked. There was some juggling of python versions and pip. Some python packages are system-level, some are properly in the venv. It's not ideal, but not awful either.