VERT.sh, el conversor de archivos que rompe con la nube: código abierto, conversión local con WebAssembly y “daemon” para vídeo

El mundo está lleno de conversores de archivos “rápidos y gratuitos” que acaban atrapando al usuario entre anuncios, límites de tamaño y esperas eternas. VERT.sh propone lo contrario: un conversor de archivos de código abierto, sin límites de tamaño, que convierte en local con WebAssembly (WASM) y, cuando se trata de vídeo, permite usar un servidor propio para exprimir FFmpeg sin sacar tus ficheros de tu equipo. Es un proyecto AGPL-3.0, escrito en Svelte y TypeScript, con una instancia pública en vert.sh y un repositorio activo que ya supera el medio millar de commits.

La promesa es directa: privacidad, velocidad y control. Para imágenes, audio y documentos, el navegador ejecuta la conversión en tu dispositivo; para vídeo, el equipo detrás de VERT ofrece un enfoque híbrido: por defecto se sube a un servidor (en su instancia oficial usa GPU RTX 4000 Ada) durante 1 hora como máximo, pero puedes autoalojar el componente de vídeo, llamado vertd, y así mantener un flujo completamente local si lo prefieres.


Qué es VERT y a quién le interesa

VERT es una interfaz web de conversión de archivos que no impone límites de tamaño ni de cantidad y apuesta por una experiencia limpia: sin anuncios ni ventanas modales intrusivas. Funciona con WASM para procesar en el propio navegador imágenes, audio y documentos, y llama a un daemon de vídeovertd— cuando hay que tratar contenedores y códecs pesados.

Está orientado a cualquier usuario, pero brilla especialmente en tres escenarios:

  1. Usuarios preocupados por la privacidad que no quieren subir documentos, fotografías o audios a servicios de terceros.
  2. Equipos técnicos que necesitan un conversor reproducible, versionable y autoalojable (Docker listo, licencia AGPL).
  3. Creativos o periodistas que trabajan con muchos formatos —incluidos RAWs de cámara o documentos estructurados— y requieren flujos rápidos y sin fricción.

Qué convierte y cómo lo convierte

VERT declara soporte para más de 250 formatos. De forma resumida:

  • Imágenes (local): PNG, JPEG/JPG, WebP, GIF, SVG, JXL, AVIF, HEIC/HEIF*, ICO, BMP… y una larga lista que incluye RAWs de cámaras (NEF, CR2, ARW, DNG, RW2, RAF, ORF, PEF, CR3, etc.), además de formatos gráficos profesionales como PSD, EPS o EXR.
  • Audio (local): MP3, WAV, FLAC, OGG/OGA/OPUS, AAC/ALAC/M4A, WMA, AMR, AC3, AIFF… y otros contenedores compatibles.
  • Documentos (local): DOCX, DOC, MD, HTML, RTF, CSV/TSV, JSON, RST, EPUB, ODT y DocBook.
  • Vídeo (servidor o vertd): MKV, MP4, WEBM, AVI, WMV, MOV, GIF, TS/MTS/M2TS, MPG/MPEG, FLV/F4V, VOB, M4V, 3GP/3G2, MXF, OGV, RM/RMVB*, H.264, DIVX, SWF, AMV, ASF, NUT, entre otros.

* Ciertos formatos llevan asterisco en la lista del proyecto; en la práctica, el soporte real puede depender de los códecs y utilidades que se compilen para WASM o que proporciones en el backend de vídeo.

Para imágenes, audio y documentos, VERT se apoya en los referentes de siempre, compilados o integrados para ejecución local:

  • ImageMagick para imágenes.
  • FFmpeg para audio.
  • Pandoc para documentos.

Para vídeo, el equipo ofrece dos opciones:

  • Instancia oficial: subidas rápidas a un servidor con RTX 4000 Ada; el fichero se elimina automáticamente a la hora o tras la descarga.
  • Autoalojamiento con vertd: un wrapper de FFmpeg en Rust que se ejecuta en tu equipo o en un servidor propio. La UI de VERT se conecta a vertd vía HTTP para lanzar la conversión, aprovechando toda la capacidad de CPU/GPU local. Puerto por defecto: 24153 (http://localhost:24153).

Arquitectura y stack: Svelte + TypeScript + WASM

El frontend está construido en Svelte y TypeScript, con Vite como bundler y Tailwind para estilos. Gracias a WebAssembly, la página ejecuta bibliotecas nativas dentro del sandbox del navegador, sin plugins. Esto evita latencias de subida/bajada y, sobre todo, reduce la exposición de datos: un PNG o un DOCX no abandona tu equipo para convertirse en WebP o PDF.

En telemetría, el proyecto usa Plausible (analítica privada y agregada) y la propia UI permite desactivarla. Variables de entorno (.env) como PUB_PLAUSIBLE_URL o PUB_HOSTNAME facilitan la integración o su completa omisión en despliegues propios.


Autoalojamiento: de “clonar y arrancar” a producción con Docker y NGINX

El repositorio ofrece un flujo de trabajo claro:

Requisitos

  • Bun (gestor/runner para el workspace JavaScript del proyecto).

Clonado e instalación

git clone https://github.com/VERT-sh/VERT
cd VERT/
bun i
Lenguaje del código: PHP (php)

Desarrollo

bun dev
# UI en http://localhost:5173
Lenguaje del código: PHP (php)

Build de producción

  1. Crea .env en la raíz con, por ejemplo:
PUB_HOSTNAME=example.com
PUB_PLAUSIBLE_URL=https://plausible.example.com
PUB_ENV=production
PUB_VERTD_URL=https://vertd.vert.sh
Lenguaje del código: JavaScript (javascript)
  1. Compila:
bun run build
  1. Sirve la carpeta build/ con NGINX u otro servidor web.
    El repo incluye Dockerfile y docker-compose.yml, además de una configuración de NGINX lista para adaptar. Para despliegues mixtos (UI + vertd propio), basta con exponer vertd en la red interna y apuntar la UI a la URL del daemon (p. ej., http://vertd:24153) desde Ajustes.

Videoconversión local con vertd

  • Descarga el release de vertd para tu plataforma.
  • Ejecuta el servicio (por defecto escucha en 24153/TCP).
  • En VERT → Settings, establece Instance URL a http://localhost:24153 (o la IP/puerto donde corre tu daemon).

Este esquema permite que tus vídeos no salgan de tu infraestructura. En laboratorios o entornos desconectados, es una ventaja evidente.


Rendimiento y UX: por qué WASM marca la diferencia

La conversión en el navegador evita las dos esperas clásicas de los conversores en la nube: subir y descargar. Si lo piensas en términos de experiencia:

  • Imágenes: transformar lotes de PNG a WebP/AVIF o redimensionar sin enviar nada fuera.
  • Audio: pasar de WAV a FLAC o MP3 en segundos, con presets y parámetros ajustables.
  • Documentos: de DOCX a PDF o EPUB con Pandoc, sin exponer contenido sensible.

WASM no es magia: consume CPU y memoria del cliente. Pero, en la práctica, esa carga local suele ser menor que el tiempo perdido esperando a que un servicio reciba, procese y devuelva tus archivos. Y si tu máquina es potente, notas la diferencia. En vídeo, donde el cómputo es mucho mayor, vertd libera a la UI del navegador y te deja utilizar FFmpeg con todo lo que da de sí.


Licencia, comunidad y mantenimiento

El proyecto está bajo AGPL-3.0, lo que garantiza que forks y servicios derivados que expongan la aplicación vía red deban compartir las mejoras con la comunidad. El repositorio refleja desarrollo activo en 2024–2025 con CI, documentación (docs/), configuración de NGINX y Docker, archivos de localización y un enfoque claro en calidad de vida (caching workers, arreglos de navegación, etc.).

En la parte social, Discord y la instancia pública vert.sh sirven de puerta de entrada para usuarios no técnicos, mientras que la guía de Docker y los ejemplos de .env permiten a administradores desplegar en minutos.


Privacidad: qué datos se tocan y cuáles no

  • Imágenes, audio y documentos: se convierten en tu navegador. No hay subida.
  • Vídeo en la instancia oficial: se sube temporalmente a un servidor (hasta 1 hora sin convertir o 1 hora desde la conversión, o hasta que lo descargues). Después se elimina.
  • Vídeo con vertd propio: no sales de tu equipo o de tu red.
  • Analítica: Plausible, anónima y agregada, y opt-out desde Ajustes. Los despliegues autoalojados pueden apuntar a su propio Plausible o no usarlo.

Para empresas y administraciones con requisitos estrictos de soberanía de datos, esta arquitectura es una ventaja clara frente a los típicos SaaS de conversión.


Qué no es VERT (y por qué está bien que no lo sea)

VERT no pretende ser un editor multimedia ni un flujo de transcoding con colas distribuidas. Es un conversor con interfaz sencilla y parámetros de salida; no es un DAM ni un pipeline de postproducción. Tampoco intenta hacer vídeo en el navegador a toda costa (donde WASM suele quedarse corto): admite la realidad y ofrece vertd para hacerlo bien.


Casos de uso reales

  • Gabinetes de prensa: convertir al vuelo imágenes AVIF/WebP a JPEG para webs legacy; pasar de DOC a PDF sin enviar documentos sensibles a terceros.
  • Desarrolladores: generar sprites, ICO/ICNS, o normalizar logos a SVG/PNG sin depender de plugins.
  • Equipos legales/financieros: transformación CSV/TSV/JSON y maquetación rápida con Pandoc.
  • Edición de vídeo: extraer audio de MP4 o convertir movimientos a formatos estándar, usando vertd en un nodo con GPU.

Por qué importa en 2025

Mientras la web se “ensilosiza” detrás de paywalls y SaaS poco transparentes, proyectos como VERT reivindican herramientas abiertas que el usuario puede comprender, auditar y ejecutar. No sólo por ideología: evita cuellos de botella de red y reduce riesgos de fuga de datos. El combo WASM + FFmpeg/Pandoc/ImageMagick ofrece un camino práctico: lo local cuando tiene sentido y un backend propio cuando hace falta músculo.


Preguntas frecuentes (FAQ)

¿Cómo convertir vídeo 100 % en local con VERT sin usar servidores externos?
Descarga y ejecuta vertd (el wrapper de FFmpeg en Rust) en tu equipo o servidor. En Ajustes de la UI, establece Instance URL a http://localhost:24153 (o la IP:puerto donde corre vertd). A partir de ahí, las conversiones de vídeo no saldrán de tu máquina o de tu red.

¿Qué formatos de archivos soporta VERT para uso profesional (imágenes, audio, documentos y vídeo)?
VERT declara 250+ formatos. Entre los más usados: PNG, JPEG, WebP, AVIF, HEIC/HEIF, PSD, EXR, RAWs de cámara en imágenes; MP3, WAV, FLAC, OGG/OPUS, AAC/ALAC en audio; DOCX, DOC, PDF (vía Pandoc), RTF, CSV/TSV, EPUB, ODT en documentos; y MP4, MKV, WEBM, MOV, AVI, WMV en vídeo. La lista completa está en la UI y el README del proyecto.

¿Es VERT apto para empresas que necesitan privacidad y cumplimiento normativo?
Sí. Imágenes, audio y documentos se procesan en el navegador sin subirlos. Para vídeo, basta con autoalojar vertd para mantener todo dentro. La analítica con Plausible es opcional y anónima; puedes desactivarla o apuntarla a tu propio endpoint. El código está bajo AGPL-3.0, auditable.

¿Cómo se despliega VERT en un servidor Linux con Docker y NGINX?
Clona el repo, crea la .env con PUB_HOSTNAME, PUB_ENV, PUB_VERTD_URL, etc., ejecuta bun run build y sirve la carpeta build/ con NGINX. Alternativamente, usa el Dockerfile y docker-compose incluidos. Si alojas vertd, expón el 24153/TCP y apunta la UI a su URL desde Ajustes.


En un mercado saturado de conversores opacos, VERT.sh recuerda que otra forma es posible: rápida, privada y tuya. Para quienes trabajan a diario con archivos y no quieren negociar con la nube cada conversión, es un soplo de aire fresco con el control allí donde debe estar: en tu máquina.

Suscríbete al boletín SysAdmin

Este es tu recurso para las últimas noticias y consejos sobre administración de sistemas, Linux, Windows, cloud computing, seguridad de la nube, etc. Lo enviamos 2 días a la semana.

¡Apúntate a nuestro newsletter!


– patrocinadores –

Noticias destacadas

– patrocinadores –

¡SUSCRÍBETE AL BOLETÍN
DE LOS SYSADMINS!

Scroll al inicio
×