b32e747990856e3593fafbf7a761250692cc9b2f
📚 ComicOPDS
ComicOPDS is a lightweight OPDS 1.2 server written in Python, designed for serving CBZ comics with metadata extracted from ComicInfo.xml.
It's optimized for large libraries (10k–100k+ comics), supports FastAPI + SQLite + FTS5 search, thumbnail caching, and streaming (OPDS PSE 1.1).
Works great with Panels for iOS and other OPDS readers.
✨ Features
- 📂 Browse your folder hierarchy
- 🔍 Full-text search (title, series, writer, publisher, year, etc.)
- 📥 Download comics (CBZ)
- 📖 Page streaming (OPDS PSE 1.1)
- 🖼️ Thumbnail extraction & caching (from CBZ covers)
- 📊 Dashboard with stats & charts
- 🧠 Smart Lists (saved search filters)
- 🔐 Optional Basic Auth
- 🐋 Runs easily with Docker / Docker Compose
- ⚡ Fast indexing with SQLite FTS5
- 🔄 File system watching for auto-updates
- 📱 Mobile-optimized dashboard
📱 Clients
Supported Clients
| App | Downloads | Search | Streaming |
|---|---|---|---|
| Panels (iOS) | ✔️ | ✔️ | ✔️ |
| KyBook 3 (iOS) | ✔️ | ✔️ | ❌ |
| Cantook (iOS) | ✔️ | ❌ | ❌ |
| Marvin 3 (iOS) | ✔️ | ❌ | ❌ |
| Chunky (iOS) | ✔️ | ❌ | ❌ |
📋 Documentation
- Quick Start
- Configuration
- API Documentation
- Dashboard
- Smart Lists
- Search
- Client Setup
- Troubleshooting
- License
🔗 Links
- Repository: Gitea
- OPDS Specification: OPDS 1.2
- OPDS Page Streaming Extension: OPDS PSE 1.1
- Buy Me a Coffee: frederikb
Made with ❤️ for comic book enthusiasts
Description
ComicOPDS is a lightweight OPDS server written in Python, designed for serving CBZ comics with metadata extracted from
ComicInfo.xml. It's optimized for large libraries, supports FastAPI + SQLite + FTS5 search, thumbnail caching, and streaming (OPDS PSE 1.1).
Languages
Python
67.2%
HTML
28.9%
Jinja
3.3%
Dockerfile
0.6%