Please note: This Project is Currently NOT Maintained.
MyBibliotheca is a self-hosted personal library and reading-tracker—your open-source alternative to Goodreads, StoryGraph, and Fable! It lets you log, organize, and visualize your reading journey. Add books by ISBN, track reading progress, log daily reading, and generate monthly wrap-up images of your finished titles.
🆕 Multi-User Features: Multi-user authentication, user data isolation, admin management, and secure password handling.
Browse your personal book collection with beautiful cover displays, reading status indicators, and quick access to all your books.
Track your reading sessions with detailed logging including pages read, time spent, and personal notes for every book.
View comprehensive book information including genres, authors, reading status, publication dates, and manage your personal collection.
- 📖 Add Books: Add books quickly by ISBN with automatic cover and metadata fetching. Now featuring bulk-import from Goodreads and other CSV files!
- ✅ Track Progress: Mark books as Currently Reading, Plan to Read, Finished, or Library Only.
- 📅 Reading Logs: Log daily reading activity and maintain streaks.
- Search: Find and import books using the Google Books API.
- 📱 Responsive UI: Clean, mobile-friendly interface built with Bootstrap.
- 🔐 Multi-User Support: Secure authentication with user data isolation
- 👤 Admin Management: Administrative tools and user management
- � Graph Database: Powered by KuzuDB for advanced relationship modeling and queries
🚀 Docker Quick Start: View Documentation
mybibliotheca/
├── app/
│ ├── __init__.py # Application factory
│ ├── auth.py # Authentication routes
│ ├── domain/ # Domain models and business logic
│ ├── infrastructure/ # KuzuDB connection and repositories
│ ├── routes/ # Application routes
│ ├── services/ # Business logic services
│ ├── schema/ # Database schema definitions
│ ├── templates/ # Jinja2 templates
│ ├── static/ # Static assets (CSS, JS, images)
│ └── utils/ # Utility functions
├── data/ # Data directory (mounted volume)
│ ├── kuzu/ # KuzuDB database files
│ ├── covers/ # Book cover images
│ └── uploads/ # User uploaded files
├── scripts/ # Admin and utility scripts
├── docs/ # Documentation
├── docker-compose.yml # Docker Compose configuration
├── Dockerfile # Docker image definition
├── requirements.txt # Python dependencies
├── run.py # Application entry point
└── README.md # This file
Licensed under the MIT License.
MyBibliotheca is open source and contributions are welcome!
- 🐛 Report Bugs: Open an issue on GitHub
- 💡 Feature Requests: Submit ideas for new features
- 🔧 Pull Requests: Contribute code improvements
- 📖 Documentation: Help improve our docs
- 💬 Community: Join our Discord
# Fork and clone the repository
git clone https://github.com/pickles4evaaaa/mybibliotheca.git
cd mybibliotheca
# Create a branch for your changes
git checkout -b feature/my-new-feature
# Make your changes and test
docker compose -f docker-compose.dev.yml up -d
# Submit a pull requestIf you encounter issues:
- Check the logs:
docker compose logs -f - Enable debug mode: Add
MYBIBLIOTHECA_DEBUG=trueto.envand restart - Search existing issues: GitHub Issues
- Ask for help: Discord Community
- Create an issue: Include logs, environment details, and steps to reproduce


