Files
manga-reader/README.md
T
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

65 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Manga Reader
Lector web de manga autoalojado, con las dos fuentes de
[Tanko](https://github.com/Alexandro521/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
```bash
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:
```bash
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.