9e9139f43a13944d202e2a2f4582f5bef8dbf424
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Manga Reader
Lector web de manga autoalojado, con las dos fuentes de
Tanko (src/servers/):
- LeerCapitulo (español, por defecto): mucho más catálogo. El scraper está reescrito para el sitio actual y ya no necesita navegador headless (las páginas vienen en el HTML).
- MangaDex (multi-idioma): español = es-la + es combinados. Muchos títulos populares no tienen capítulos por licencias; la ficha ofrece buscarlos en LeerCapitulo.
- Búsqueda, populares y actualizados recientemente.
- Lector por página (toques/flechas, izq→der o der→izq) o en vertical, modo ahorro de datos.
- Usuarios con contraseña; el historial y la página exacta se guardan en el servidor
(
data/manga.db), así que puedes seguir desde cualquier dispositivo/sesión. - Descargas: botón "⬇ Descargar" en la ficha. Baja el manga entero en segundo plano a
/zdata/media/mangas/<Título>/Capitulo NNNN.cbz(+cover.jpg,ComicInfo.xmlen cada CBZ), compatible con Kavita/Komga/Mihon. Se reanuda tras reinicios; repetirla baja solo los capítulos nuevos. Los capítulos descargados se leen desde disco y, sin conexión, la ficha usa los datos guardados. - Novedades: los mangas que empiezas a leer (o marcas con "Seguir") se revisan cada
CHECK_INTERVAL_HOURS(3 h). El inicio muestra "N caps. nuevos", la ficha marca NUEVO, los mangas con copia local descargan lo nuevo solos, y se puede avisar por ntfy o Telegram (Ajustes). - Lector: una página, doble página (tablet horizontal/PC; portada y páginas apaisadas van solas) o vertical. Modo, ajuste y dirección se recuerdan por manga (por defecto: manhwa/manhua en vertical, manga por página de derecha a izquierda). Zoom con pellizco, doble toque en el centro, Ctrl+rueda o + / − / 0.
- Estadísticas: rachas, capítulos y páginas por semana, calendario de actividad, géneros favoritos y lo más leído.
- Las imágenes pasan por el servidor (
/api/img), solo con URLs firmadas por él (clave endata/secret).
Uso
cp .env.example .env # opcional: ajusta rutas, puerto, usuario…
docker compose up -d --build
# http://<ip-del-servidor>:3352
El contenedor no depende del sistema operativo: imagen Node fijada (node:24.22.2-alpine3.24),
sin dependencias npm, y todo lo propio de la máquina está en .env (ver .env.example).
Sin .env arranca igual: puerto 3352 en todas las interfaces y descargas en ./mangas.
El primer usuario puede registrarse siempre; después el registro queda cerrado salvo
ALLOW_SIGNUP=true en .env.
Qué guardar / mover a otro servidor
| Qué | Dónde | Contenido |
|---|---|---|
| Código | este repositorio | se recrea con git clone |
.env |
raíz del proyecto (no está en git) | rutas, puerto, PUID/PGID, URL pública |
data/ |
raíz del proyecto (no está en git) | manga.db (+ -wal/-shm): usuarios, historial, estadísticas, seguimiento, ajustes; secret: clave del proxy de imágenes |
| Mangas descargados | MANGA_DIR_HOST (aquí /zdata/media/mangas) |
CBZ + portadas |
Pasos en el sistema nuevo:
git clone <repo> manga-reader && cd manga-reader
# copiar .env y data/ desde el servidor anterior (con el contenedor parado), y la carpeta de mangas
id -u; id -g # si no son 1000, ponlos en PUID/PGID del .env
docker compose up -d --build
Si el usuario del host no coincide con PUID/PGID, el contenedor no arranca y el log dice
exactamente qué chown hacer. Si la carpeta de mangas no existe, Docker la crea como root:
créala antes (mkdir -p con tu usuario) para que las descargas funcionen.
Description
Lector de manga autoalojado (MangaDex, LeerCapitulo, M440): descargas CBZ, reescalado HD, modo sin conexión y app instalable.
1.2 MiB
Languages
JavaScript
94.2%
CSS
5.4%
Dockerfile
0.2%
HTML
0.2%