# 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: /Capitulo NNNN.cbz + cover.jpg - ${MANGA_DIR_HOST:-./mangas}:/mangas 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"