Initial vault setup
This commit is contained in:
@@ -0,0 +1,129 @@
|
||||
---
|
||||
title: ComicOPDS
|
||||
created: 2026-06-07
|
||||
updated: 2026-06-07
|
||||
type: app
|
||||
tags: [catalogue, books, comics, opds, python, cbr, cbz, liseuse]
|
||||
confidence: medium
|
||||
contested: false
|
||||
sources: [https://selfh.st/apps/?tag=Books, https://github.com/calvinbui/comic-opds]
|
||||
---
|
||||
|
||||
# 🦸 ComicOPDS
|
||||
|
||||
> **Le mini-serveur OPDS pour comics** — exposez vos fichiers CBR/CBZ sur le réseau pour les lire depuis n'importe quelle liseuse compatible OPDS (Kavita, Moon+ Reader, KyBook…).
|
||||
|
||||
| Métadonnée | Valeur |
|
||||
| :--- | :--- |
|
||||
| **Site web** | [https://github.com/calvinbui/comic-opds](https://github.com/calvinbui/comic-opds) |
|
||||
| **GitHub** | [https://github.com/calvinbui/comic-opds](https://github.com/calvinbui/comic-opds) |
|
||||
| **License** | MIT |
|
||||
| **Langage** | Python 3 (Flask) |
|
||||
| **Étoiles GitHub** | 1 ⭐ |
|
||||
| **Dernière MAJ** | 2023-12 |
|
||||
| **Catégorie** | [[cat-books\|Books]] |
|
||||
|
||||
## Description
|
||||
|
||||
ComicOPDS est un **mini-serveur OPDS** écrit en **Python / Flask** dont la fonction est on ne peut plus simple : **scanner un dossier rempli de CBR/CBZ** et exposer un **flux OPDS 1.2** que n'importe quelle liseuse compatible sait consommer. Pas de base de données à monter, pas d'interface web : juste un endpoint HTTP/XML.
|
||||
|
||||
Concrètement, vous montez votre dossier de comics (typiquement `~/comics/`), vous lancez le serveur, et votre liseuse (Android avec **Moon+ Reader**, **KyBook 3** ou **Calibre Companion**, ou même **Kavita** et **Komga** comme clients OPDS) voit instantanément une **bibliothèque OPDS** navigable par titre, série, auteur, année. Le serveur lit les métadonnées depuis les fichiers eux-mêmes (ComicInfo.xml dans les CBZ, ou par parsing du nom de fichier).
|
||||
|
||||
Le projet vise explicitement les **liseuses OPDS légères** : vous avez une grosse collection de comics (centaines de Go) sur un NAS, vous voulez y accéder depuis une **app Android** sans passer par Plex/Komga qui sont plus lourds. ComicOPDS reste **dans les airs** : moins de 100 Mo de RAM, démarrage en 1 seconde, dépendances minimales (Flask, lxml, comicapi).
|
||||
|
||||
**Points forts** : zéro base de données, ultra-léger, OPDS standard, sert de **pont** entre un NAS et une liseuse, parfait pour les setups minimalistes.
|
||||
|
||||
**Points faibles** : **1 seule étoile** sur GitHub, maintenance quasi-arrêtée (dernier commit 2023), pas de gestion des utilisateurs ni d'authentification native, pas d'interface web, pas de métadonnées enrichies (pas de ComicVine), et le projet n'est **pas recommandé pour une exposition publique** sans reverse-proxy authentifiant. À considérer comme un **hack utile** plutôt qu'un produit fini.
|
||||
|
||||
## Installation
|
||||
|
||||
### Via Docker (image communautaire)
|
||||
|
||||
```yaml
|
||||
# docker-compose.yml
|
||||
services:
|
||||
comicopds:
|
||||
build: https://github.com/calvinbui/comic-opds.git
|
||||
container_name: comicopds
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- COMICS_DIR=/comics
|
||||
- PORT=8080
|
||||
volumes:
|
||||
- /srv/comics:/comics:ro # montage en lecture seule
|
||||
ports:
|
||||
- "8091:8080"
|
||||
```
|
||||
|
||||
### Installation manuelle (Python)
|
||||
|
||||
```bash
|
||||
git clone https://github.com/calvinbui/comic-opds.git
|
||||
cd comic-opds
|
||||
python3 -m venv venv
|
||||
source venv/bin/activate
|
||||
pip install -r requirements.txt
|
||||
|
||||
export COMICS_DIR=/srv/comics
|
||||
python app.py
|
||||
```
|
||||
|
||||
Prérequis : **Python 3.9+**, **Flask**, **lxml**, **comicapi** (parsing CBZ/CBR).
|
||||
|
||||
## Configuration
|
||||
|
||||
1. Placer vos comics dans le dossier monté (`/srv/comics` sur l'hôte).
|
||||
2. Définir la variable `COMICS_DIR` ou éditer `config.py`.
|
||||
3. (Recommandé) Mettre derrière un **reverse-proxy HTTPS** avec auth :
|
||||
|
||||
```caddy
|
||||
comics.example.com {
|
||||
basicauth {
|
||||
user $2a$14$hashed_password
|
||||
}
|
||||
reverse_proxy localhost:8091
|
||||
}
|
||||
```
|
||||
|
||||
4. Ajouter l'URL OPDS dans votre liseuse : `https://comics.example.com/opds`.
|
||||
5. Les métadonnées sont extraites au démarrage ; **relancer le conteneur** pour rescanner.
|
||||
|
||||
## Alternatives
|
||||
|
||||
### Open source
|
||||
- [[app-komga]] — Le standard OPDS pour comics/manga/BDs, complet
|
||||
- [[app-kavita]] — Lecteur comics/manga très rapide avec OPDS
|
||||
- [[app-stump]] — Lecteur Rust moderne pour comics
|
||||
- **Ubooquity** — Serveur OPDS comics/BDs (Java, abandonné)
|
||||
- **ComicRack** — Lecteur Windows historique, pas self-hosté
|
||||
|
||||
### Propriétaires
|
||||
- **Plex** — Sert les comics via son agent, mais fermé
|
||||
- **Google Play Livres** — Upload de comics limité, fermé
|
||||
- **Chunky Reader** — App iOS premium, pas self-hostable
|
||||
- **YACReader** — Lecteur multi-plateforme, serveur optionnel et payant
|
||||
|
||||
## Sécurité
|
||||
|
||||
- ✅ **Aucune dépendance base de données** (surface d'attaque minimale)
|
||||
- ✅ **Pas d'auth par défaut** = pas de mot de passe à fuiter
|
||||
- ✅ **HTTPS** via reverse-proxy recommandé (Caddy/Nginx)
|
||||
- ⚠️ **Pas d'authentification native** : **obligatoire** d'ajouter une couche (BasicAuth, Authelia) avant exposition
|
||||
- ⚠️ **CBR** : extraction de RAR via `unar` ou `unrar` — risque sur archives corrompues
|
||||
- ⚠️ **Confiance projet** : 1 ⭐, archivé potentiellement — **fork obligatoire** pour usage long terme
|
||||
- ⚠️ **Logs** : aucune rotation par défaut, configurer `logrotate` ou `journald`
|
||||
|
||||
## Ressources
|
||||
|
||||
- [Dépôt GitHub](https://github.com/calvinbui/comic-opds)
|
||||
- [Spécification OPDS 1.2](https://specs.opds.io/opds-1.2)
|
||||
- [ComicInfo.xml (Anansi Project)](https://anansi-project.github.io/docs/comicinfo/documentation)
|
||||
- [selfh.st — Books](https://selfh.st/apps/?tag=Books)
|
||||
|
||||
## Pages Liées
|
||||
|
||||
- [[cat-books]] — Catégorie parente
|
||||
- [[app-komga]] — Référence OPDS comics/manga, plus complète
|
||||
- [[app-kavita]] — Lecteur moderne multi-formats
|
||||
- [[recettes-docker-compose]] — Templates Docker
|
||||
- [[app-caddy]] — Reverse-proxy HTTPS avec BasicAuth
|
||||
Reference in New Issue
Block a user