Ctrl K
ComunidadGuías…
GITHUB · ANALIZADO

file-minify

file-minify es una aplicación web autoalojada para comprimir y convertir archivos multimedia y documentos. Utiliza React en el frontend y Node.js con herramientas como FFmpeg, Ghostscript y LibreOffice en el backend, todo ejecutado dentro de contenedores Docker.

Ficha actualizada 23 sept 2026, 22:16 · upstream 23 sept 2026, 22:04 · release sin release detectada

Ver códigoProblemas y ayudaRepositorio ↗
00

Qué es file-minify

Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.

file-minify es una herramienta autoalojada diseñada para la compresión y conversión eficiente de archivos multimedia y documentos sin necesidad de subirlos a servidores externos. El frontend está construido con React y TypeScript, mientras que el backend utiliza Node.js junto con herramientas nativas como FFmpeg, Ghostscript, ImageMagick y LibreOffice, todo encapsulado en contenedores Docker para facilitar el despliegue.

La aplicación ofrece tres niveles de compresión (menor, equilibrado, mejor calidad) adaptados a cada formato, permitiendo ajustar resolución y bitrate en videos. También convierte documentos de Office a PDF y fusiona múltiples archivos imprimibles en un solo documento ordenable mediante arrastrar y soltar. Un aspecto clave es la privacidad: los metadatos sensibles como la ubicación GPS se eliminan automáticamente y los resultados etiquetan las acciones realizadas.

Desde el punto de vista de seguridad, implementa Helmet, validación por tipo y tamaño de archivo, y límites de tasa de solicitud (600 peticiones cada 15 minutos por IP). Sin embargo, no incluye autenticación ni TLS nativo, por lo que debe exponerse detrás de un proxy inverso que gestione HTTPS. Los archivos temporales se limpian automáticamente tras una hora.

CASOS DE USO
  • Reducir tamaño de videos MP4 para adjuntar a correos electrónicos sin exceder límites.
  • Convertir documentos Word, Excel o PowerPoint en PDF optimizados automáticamente.
  • Fusionar múltiples archivos PDF o imágenes en un único documento ordenado por el usuario.
  • Eliminar metadatos de geolocalización (GPS) de fotografías antes de compartirlas.
  • Optimizar imágenes JPG, PNG y WebP para reducir el ancho de banda en sitios web.
PUNTOS DESTACADOS
  • Procesamiento local: ningún archivo sale del servidor donde se ejecuta la aplicación.
  • Etiquetado de resultados: los archivos descargados incluyen comentarios sobre las transformaciones aplicadas.
  • Honestidad en compresión: si un archivo ya está optimizado, mantiene el original y no lo agranda.
  • Gestión segura de recursos: límites de CPU y memoria definidos en Docker Compose para evitar saturación.
  • API robusta: endpoints claros para operaciones de subida, compresión, conversión y fusión con manejo de errores explícito.
PRECAUCIONES
  • Sin autenticación: cualquier usuario que acceda al puerto puede subir archivos y consumir recursos de codificación.
  • Sin TLS nativo: el servicio no cifra el tráfico por defecto, requiriendo un proxy inverso externo para HTTPS.
  • Archivos temporales legibles: los UUID de los archivos en proceso son predecibles si se adivinan.
  • Dependencia de recursos pesados: requiere instalación de FFmpeg, Ghostscript y LibreOffice dentro del contenedor backend.
VISUAL

Capturas del proyecto

Imágenes reales detectadas en la documentación del repositorio.

One drop of four files: a 43 MB video down to 1.3 MB, a 9.7 MB photo to 1.4 MB, a scanned PDF halved and a Word document turned into a smaller PDF, each labelled with what was doneA dropped video waiting with its settings open: output format, quality, resolution, codec and target size, and a Compress buttonThe merge dialog: three files in page order with drag handles and arrows, a video listed as unable to become a PDF, and a file name fieldThe app on a phone: the savings summary and results for a video and a photoThe landing page: a large drop area with a quality control underneath
01

Perfil de infraestructura

Estimación inicial derivada del repositorio y de los servicios detectados.

CPU4 vCPUrecomendación inicial
MEMORIA4 GBRAM estimada
DISCO10 GBalmacenamiento base
COMPLEJIDADhighnivel de operación
02

Despliegue detectado

Qué señales reales de instalación hemos encontrado.

Docker Compose detectado

Despliegue con Docker Compose (`docker compose up -d --build`). Usa el puerto 3051 para la app y 4001 para la API interna. Configura `.env` para `MAX_FILE_MB`, `PROCESS_TIMEOUT_MIN` y `BACKEND_CPU_SHARES`. El backend no tiene límite de CPU explícito para evitar degradación, pero se recomienda usar `restart: unless-stopped` y health checks. Limpia volúmenes con `docker compose down -v`.

✓Dockerfile
✓Compose
—One-click
03

Stack y dependencias

Componentes inferidos a partir de manifests, configuración y documentación.

FRAMEWORKS
Next.jsReactNode.js
SERVICIOS
No detectados
BASES DE DATOS
No detectadas
PUERTOS
305140014000
05

Puede sustituir a

Relaciones detectadas por el análisis del repositorio y su categoría.

06

Experiencia real de la comunidad

Ayuda a contrastar la estimación automática con instalaciones reales.

Todavía no hay datos comunitarios para este proyecto.