ninoandClaude Opus 5.5 af90d34c95 Docker autónomo: configuración del host en .env e imagen fijada
- Puertos, carpeta de mangas, PUID/PGID, URL pública y registro se
  configuran en .env (plantilla en .env.example); sin .env arranca con
  valores portables (0.0.0.0:3352, ./mangas).
- Publicar en 0.0.0.0 evita fallar al arrancar si la IP de la LAN o de
  Tailscale aún no existe; el acceso lo siguen limitando las reglas
  DOCKER-USER del host.
- Imagen base fijada a node:24.22.2-alpine3.24 (node:sqlite es experimental).
- ALLOW_SIGNUP=false por defecto (el primer usuario puede registrarse igual).
- Comprobación de permisos al arrancar con mensaje claro (chown / PUID).
- README: qué guardar y cómo mover el servicio a otro servidor.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 00:59:55 -06:00

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.xml en 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 en data/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.

S
Description
Lector de manga autoalojado (MangaDex, LeerCapitulo, M440): descargas CBZ, reescalado HD, modo sin conexión y app instalable.
Readme
1.2 MiB
Languages
JavaScript 94.2%
CSS 5.4%
Dockerfile 0.2%
HTML 0.2%