Files
manga-reader/docker-compose.yml
T
ninoandClaude Opus 5.5 bc84a9f6fe Reescalado HD, ficha reorganizada y mejoras del lector
- Reescalado HD con Real-ESRGAN (ncnn-vulkan, GPU por /dev/dri): cola persistente,
  todo lo pendiente, un rango o capítulos elegidos en la lista, con estimación de tiempo.
  La versión HD va a <carpeta>/.hd/ sin tocar el original; marca HD en la lista de
  capítulos y casilla "Versión HD" en el lector.
- Imagen Debian slim (glibc + Mesa Vulkan + cwebp); compose con /dev/dri y RENDER_GID.
- Ficha: acciones principales + menú ⋯, panel "Biblioteca local" (copia local y HD),
  idioma junto a la lista de capítulos.
- Lector: la barra de progreso avanza de derecha a izquierda en der → izq; botón rápido
  páginas ⇄ vertical; en vertical "Ajustar alto" y "Separar páginas" para mangas.

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

49 lines
1.9 KiB
YAML

# Todo lo que depende de la máquina va en .env (ver .env.example).
# Sin .env también arranca: puerto 3352 en todas las interfaces, descargas en ./mangas.
services:
manga-reader:
build: .
image: manga-reader:local
container_name: manga-reader
restart: unless-stopped
# Dueño de ./data y de la carpeta de mangas en el host (id -u / id -g).
user: "${PUID:-1000}:${PGID:-1000}"
environment:
- TZ=${TZ:-America/El_Salvador}
- PORT=3352
- DATA_DIR=/app/data
- MANGA_DIR=/mangas
# Cada cuántas horas se buscan capítulos nuevos de los mangas seguidos.
- CHECK_INTERVAL_HOURS=${CHECK_INTERVAL_HOURS:-3}
# URL con la que se abre la web desde las notificaciones.
- PUBLIC_URL=${PUBLIC_URL:-http://localhost:3352}
# Registro de cuentas nuevas. Con la base vacía el primer usuario siempre puede registrarse.
- ALLOW_SIGNUP=${ALLOW_SIGNUP:-false}
volumes:
# SQLite con usuarios, sesiones, historial, estadísticas y clave del proxy de imágenes.
- ./data:/app/data
# Mangas descargados: <Título>/Capitulo NNNN.cbz + cover.jpg
- ${MANGA_DIR_HOST:-./mangas}:/mangas
# GPU para el reescalado HD (Real-ESRGAN por Vulkan). Sin /dev/dri en el host, borra estas líneas
# y el reescalado queda desactivado. RENDER_GID = grupo "render" del host (getent group render).
devices:
- /dev/dri:/dev/dri
group_add:
- "${RENDER_GID:-render}"
ports:
# 0.0.0.0 no depende de que la IP de la LAN o de Tailscale existan al arrancar.
# Para limitarlo a una interfaz: BIND_IP=192.168.1.141 en .env.
- "${BIND_IP:-0.0.0.0}:${HOST_PORT:-3352}:3352"
read_only: true
tmpfs:
- /tmp
cap_drop:
- ALL
security_opt:
- no-new-privileges:true
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"