(New screenshots coming soon!)
Libaraxia is a modern web application designed to help you catalog and manage your personal library with style and efficiency. Built with Flask and SQLite, it offers a seamless interface for organizing your book collection, tracking your reading progress, and maintaining your literary life away from the prying eyes of corporations and AI.
What started as a hobbyist project has evolved into a feature-rich library management system. While it's still growing and improving, it's already a robust and portable solution for personal library organization.
Currently, Libaraxia is in active development, not stable, and not recommended for production use. However, if you're feeling adventurous and want to help me beta test; the below instructions should, in theory, work. You can now install using docker if you know your way around it!
- git clone the repository and cd into it
git clone https://github.com/philcifone/libaraxia
cd libaraxia- Create a Google Books API Key from https://console.cloud.google.com and add it to the .env.example file (.env.example included) while you also change SECRET_KEY and then run:
mv .env.example .env
mv docker-compose.yml.example docker-compose.yml # you shouldn't need to update this- Build
sudo docker compose build --no-cache
# -d for detached mode or keep it off to watch the console
sudo docker compose up -d - Access via the browser at localhost:5000 (local ip can be accessed after it is accessed from local host, no idea why yet.)
If needed (i.e running headless on the same network) you can use the docker container IP
Run:
sudo docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' libaraxia-web-1and copy and paste the ip address followed by :5000 in your browser.
-
Register admin account upon initial startup.
-
Use the Add Book button in the bottom right to start adding books via search or ISBN (no barcode scanner yet) and start tracking your own digital library!
- git clone the repository and cd into it
git clone https://github.com/philcifone/libaraxia
cd libaraxia- Install required packages with the requirements.txt
pip install -r requirements.txt- To initialize SQLite database with the provided create_database.sql file run the following command:
sqlite3 your_database.db < create_database.sql- Configure your environment variables:
### EXAMPLE ###
SECRET_KEY=your_secret_key
DATABASE_URI=sqlite:///library.db
FLASK_APP=app:create_app
GOOGLE_BOOKS_API_KEY=get_yours_at_https://console.cloud.google.com- Run in project root with flask/gunicorn/python, whichever. python3 is easiest for a development server, for a production server I use gunicorn as a systemd service in an LXC container. So this will depend on your use-case I think. Happy to help if needed.
python3 app.py- Access via the browser at localhost:5000 (local ip can be accessed after it is accessed from local host, no idea why yet.)
- Tiled library view
- Add/edit/delete book
- ISBN fetch auto fill
- Book title and author search & autofill
- Catalog search
- Catalog sort
- Catalog filter
- User cover upload
- Account register (admin only)
- Multi-user login & authentication
- Email and Password update
- Library & user stats
- csv export
- Custom book tags per user
- Custom collections per user
- Rating & comment system per user
- Barcode scanner - still in development
- Admin & user settings
- Library Activity Feed
Found a bug? Have a feature idea? Contributions are welcome! While this started as a personal project, I believe in the power of community-driven development, and I am not a trained developer. This has been the product of a lot of AI collaboration, and I'd love for experienced human eyes to check this out. PLEASE feel free to:
- Open issues for bugs or feature requests
- Submit pull requests (I've never made it this far with github so bear with me as I learn to do more than commit/push/pull)
- Share your ideas and feedback
- Help with documentation
- Backup project files!!
- Have fun!!!!!
- Fix tile text alignment
- Add Author to tile
- Add better back to list on search page inside search container
- Fix add book button
- Style main page search bar add sort
- Heading on Add Book page
- Update book details style to match
- Hamburger menu and side bar
- Add book floating button
- View more button for description
- Fix collections toolbar (show read state)
- Added tailwind css
- Better search bar functionality
- Better back to catalog button
- Refactor styles.css
- Make add & edit book pages prettier!!
- Better fonts
- better mobile on book details page
- Side scroll of books on collections page
- separate recent books/reviews feed/list?
- Test Docker packaging
- Release docker packaging
- Fetch book descriptions
- Multi-user creation & login authentication
- Sort catalog feature
- Admin only access to CRUD functions
- Search function
- Version Control
- Fix image upload in add_image route
- Image resize/optimize during upload
- Refactor code, add blueprints
- secret key to server/dev env instead of codebase
- Remove books table read column (will be a future user table column)
- Add rating & comments
- Improve & fix bookshelves (collections, now reading lists)
- auto image download
- Cover image fetch script/button (auto fetch during add but user can replace in add and edit) - revisit
- User book details
- User profile
- Add "DNF" section to reading status & list
- Genre & subtitle add to API fetch & book details
- Filter options!!! (year read, year published, page count, genre, is_read, etc.)
- Export to spreadsheet/csv
- User created bookshelves/collections
- Admin & user settings
- tailwind css - added but not used
- vanishing header bar
- hamburger menu and sidebar
- moved "collections" to "user profile", switching name to "reading list"
- need to create ability for users to create their own collections for collections page
- Better refactoring of blueprints.books.py to utils.book_utils.py
- Fixed cover fetch
- Layouts for book details and rate & review are much cleaner and polished
- More symbols/icons in use for UX/UI
- Better sidebar features
- User profile password and email update
- Implemented title/author search functionality
- Added CSV library & user info export
- Enhanced book addition with auto-fill
- Improved cover image fetching and quality
- Refined UI/UX with smoother transitions
- Added reading statistics dashboard
- Enhanced filter and sort capabilities
- Implemented tag management system
- Created custom collections
- Started barcode scanner feature
Been awhile since I updated after starting other projects. I started to rebuild this in React but realized it would be easier to simply add tailwindcss since the backend seems to function quite well here.
- Updated tailwindcss for:
- search/sort/filter
- sidebar
- add book
- book details
- index
- Added google books api key to book utils and books route - unsure if working!
needs addressed:
- better mobile style on book details - centered
- api title search and display on add book, need to test! - javascript??
- search bar inside top navbar, sort/filter dropdown.
- sort reset button instead of on change?
- untracked read status not resetting? others work, low priority
- Commited and pulled from repo to prod server and works!
- Tried updating search/navbar/sidebar into something more modern but couldn't get it.
- almost forgot to add the google api key :)
- mostly fixed after excruciating debugging.
- Author and genre info are not fetching from the json data, see console, utils, and books.py.
- see diff between old and new add_books.js, and old scripts.js (comment: populate data, fillBookForm)??
- need to add "selected" javascript to button once the book data is fetched and populated below
- need to add "no-cover.png" to prod server, or just do text placement. JavaScript goes brrrrr looking for it if it isn't there.
- WOOHOO fixed the search, cover fetch, and info fetch. Updated styles, working on fonts. Cant quite get it.
- Been awhile since any meaningful updates! Happy to have docker packaging figured out.
- trying to add github workflows, might be helpful.
Built with β and π₯ by a π lover, for π lovers.




