An organizer for your books that allows you to read them in your browser. With a focus on simplicity and ease of use. Currently only supports epub (cbz is almost impl. too) files.
My intention will be to make it Plex for Books.
TODO:
- Better Separation of books' Sections
- Utilize sqlite transactions for multi table changes.
- Implement database migrations
- Cache & Clear external searches for each task ran
To run and build the application you need to do the following:
-
Install Rust. It's used for coding this whole application.
-
Install Trunk. It's used for building the frontend.
- Ensure a C Linker is installed - Lazy?
sudo apt install build-essential
will install all essentials including the linker
- Ensure a C Linker is installed - Lazy?
-
Add Wasm32 Target to Rust:
rustup target add wasm32-unknown-unknown
- Used for frontend
Import the submodules
git submodule update --init
Inside root folder execute these commands:
cargo run --bin books-backend
The server will now be hosted on 127.0.0.1:8084
Error: could not find system library 'openssl' required by the 'openssl-sys' crate
Execute one of these commands
To build:
cd crates/frontend
trunk build --public-url "/dist" -d "../../app/public/dist"
To build and watch:
cd crates/frontend
trunk watch --public-url "/dist" -d "../../app/public/dist"
Packaging will store the frontend in to the reader executable and extract files when ran.
Execute this first
To build:
cd crates/frontend
trunk build --release --public-url "/dist" -d "../../app/public/dist"
Inside root folder execute these commands:
cargo build --bin backend-bundled --release --features=bundled
The packaged executable will now be inside target/release