Kind of inspired by https://github.com/geek1011/BookBrowser/
Download an appropriate release from the release page
Please, please, please be careful. I'm pretty sure it shouldn't eat up your collection, but it might. If your are testing booksing, please copy your files into the import dir. Do not move them until you feel comfortable with booksing.
- Easy-to-use
- List view
- Light weight, blazing fast, static html web interface, that even works on the terrible kindle browser
- Automatic deletion of duplicates and unparsable epubs
- Automatic sorting of books based on Author
- See what books have been downloaded
- If you have an authenticating proxy booksing can determine the username from a header, and the admin user will be able to grant users access.
- can convert .epub into .mobi for kindle reading
- (optional) calibre to enable .epub to .mobi conversion
Set the following env vars to configure booksing:
env var | default | required | purpose |
---|---|---|---|
BOOKSING_ADMINUSER | unknown |
❌ | This determines the admin user, the only user that can login by default unless allowallusers is set to true |
BOOKSING_ALLOWALLUSERS | true |
❌ | This determines whether all users can login |
BOOKSING_BINDADDRESS | localhost:7132 |
❌ | The bind address, if external access is needed this should be changed to :7132 |
BOOKSING_BOOKDIR | ./books/ |
❌ | The directory where books are stored after importing |
BOOKSING_DATABASEDIR | ./db/ |
❌ | The path to put the database files (sqlite based) |
BOOKSING_FAILDIR | ./failed |
❌ | The directory where books are moved if the import fails |
BOOKSING_IMPORTDIR | ./import |
❌ | The directory where booksing will periodically look for books |
BOOKSING_LOGLEVEL | info |
❌ | determines the loglevel, supported values: error, warning, info, debug |
BOOKSING_MAXSIZE | 0 |
❌ | If set, any epub larger than this size in bytes will be automatically deleted, can be useful with limited diskspace |
BOOKSING_TIMEZONE | Europe/Amsterdam |
❌ | Timezone used for storing all time information |
BOOKSING_USERHEADER | - |
❌ | The header to take the username from (if behind cloudflare access, this should be: Cf-Access-Authenticated-User-Email ) |
- For large collections, it is perfectly acceptable to place the ebooks themselves on an external USB drive, but you should place the database dir on a faster (preferable SSD) disk.
- The database file is regular sqlite, so you can just copy and paste it to make a backup, and use sqlite3 cli to explore the database
- Booksing does not try to create directories to place its sqlite database, or any of the other directories, please create them yourself.
- Regular search is kind of fuzzy thanks the sqlite's full text search. You can also use advanced queries like:
author:Mark Twain, title:the adventures of tom sawyer
author:mark twain
$ mkdir booksing booksing/failed booksing/import booksing/db
$ cd booksing
$ wget 'https://github.com/gnur/booksing/releases/download/v9.0.5/booksing_9.0.5_linux_x86_64.tar.gz'
$ tar xzf booksing*
$ mkdir books db failed import
$ ./booksing &
$ mv ~/library/*.epub import/
# visit localhost:7132 to see the books in the interface
There is an example systemd unit file available on the releases page, can also be found in includes/booksing.service