FilePizza: Comparte archivos al instante, gratis y privado desde tu navegador

FilePizza: Comparte archivos al instante, gratis y privado desde tu navegador

FilePizza: envía archivos de gran tamaño directamente desde tu navegador

Si sigues el blog, sabrás que enviar archivos grandes sin pasar por correo, memorias USB o servicios que te obligan a subir primero el contenido a la nube es un tema que hemos tratado ampliamente.

Hoy toca hablar de otra alternativa que merece un hueco en tu caja de herramientas: FilePizza.

Su lema lo dice todo: transferencias de archivos peer-to-peer en tu navegador.

¿Qué es FilePizza?

FilePizza es una aplicación web gratuita y de código abierto que permite enviar archivos de un navegador a otro sin que el contenido pase ni se almacene en ningún servidor intermedio. Fue creada por Alex Kern y Neeraj Baid en la Universidad de California en Berkeley (cuentan que mientras comían una pizza Sliver, de ahí el nombre).

El proyecto está alojado en GitHub, cuenta con más de 10.000 estrellas y se distribuye bajo licencia BSD de 3 cláusulas. Existe una instancia pública en file.pizza lista para usar, pero también puedes montar la tuya propia.

¿Cómo funciona? WebRTC de nuevo

Igual que en mis artículos sobre WebWormhole y Toffeshare, el secreto es WebRTC, la API de comunicación en tiempo real que incorporan los navegadores modernos y que permite conectar dos dispositivos de igual a igual (peer-to-peer, p2p).

La diferencia con los servicios tradicionales es clara:

Servicio tradicional WebRTC (P2P)
Subes el archivo al servidor El archivo sale directamente de tu navegador
El receptor lo descarga del servidor El receptor lo recibe directamente de tu navegador
Tu archivo queda almacenado en un tercero No se almacena en ningún servidor intermedio
Hay que esperar a que termine la subida La transferencia empieza en cuanto el receptor abre el enlace

Al eliminar el paso previo de subida, la transferencia es más rápida y más privada.

Cómo enviar un archivo con FilePizza

El uso es muy sencillo:

  1. Entra en file.pizza.
  2. Arrastra uno o varios archivos al recuadro (o pulsa para seleccionarlos).
  3. FilePizza genera un enlace, uno largo y otro corto, que puedes copiar y compartir por el medio que prefieras.
  4. Quien reciba el enlace lo abre en su navegador y la descarga comienza directamente desde tu equipo.
  5. Mantén tu pestaña abierta hasta que la transferencia termine.

Como ves, aquí no hay frases secretas ni códigos QR como en WebWormhole: basta con compartir una URL.

Características de FilePizza

La segunda versión del proyecto incorpora mejoras importantes:

  • Nueva interfaz con modo oscuro.
  • Compatible con la mayoría de navegadores móviles, incluido Safari en iOS.
  • Transferencias directas entre el navegador de quien envía y el de quien recibe, con handshakes más rápidos.
  • El que envía puede ver el progreso y detener la transferencia cuando quiera.
  • Protección con contraseña y sistema de reportes para mayor seguridad.
  • Varios archivos a la vez: quien descarga los recibe en un único archivo ZIP.
  • Descargas en streaming mediante Service Worker.
  • Almacenamiento opcional del estado del servidor con Redis.

Preguntas frecuentes

Estas son las respuestas de los propios creadores en su FAQ, que merece la pena tener presentes:

  • ¿Qué tamaño pueden tener los archivos? El que tu navegador pueda manejar. No hay un límite impuesto por el servicio.
  • ¿Pueden descargar varias personas a la vez? Sí, basta con compartir el enlace con todas ellas.
  • ¿Qué pasa si cierro el navegador? Los enlaces dejan de funcionar. Si alguien ya había completado la descarga, seguirá compartiendo con los que aún no hayan terminado, pero no se podrán iniciar descargas nuevas.
  • ¿Está cifrado? Sí. Las comunicaciones WebRTC se cifran automáticamente con DTLS, y además puedes añadir una contraseña opcional a tu envío.

Alójalo tú mismo: FilePizza con Docker

Una de las ventajas de ser software libre es que puedes autoalojarlo. El repositorio incluye un Dockerfile y ficheros docker-compose. Estos son los comandos que indica el proyecto alojado en Github:

git clone https://github.com/kern/filepizza.git
cd filepizza
pnpm install

# Modo desarrollo
pnpm dev

# Compilar y ejecutar
pnpm build
pnpm start

# Con Docker
pnpm docker:build
pnpm docker:up
pnpm docker:down

El servidor se personaliza con variables de entorno, entre ellas:

Variable Para qué sirve
REDIS_URL Instancia de Redis para guardar los metadatos de los canales. Si no se define, usa memoria.
COTURN_ENABLED Con valor true, activa TURN para conectar equipos detrás de NAT.
TURN_HOST / TURN_REALM Servidor y realm TURN.
STUN_SERVER Servidor STUN a usar cuando TURN no está activado.
PEERJS_HOST / PEERJS_PATH Servidor PeerJS propio, si no quieres usar el predeterminado.

Si te interesa la parte técnica: está construido con Next.js, React, TypeScript, Tailwind y PeerJS para la capa WebRTC.

Ten en cuenta

Como en cualquier servicio p2p, hay detalles prácticos que conviene conocer:

  • Quien envía debe mantener la pestaña abierta y el equipo encendido mientras dure la transferencia. Si el emisor se desconecta, el enlace deja de funcionar.
  • Aunque el contenido de los archivos no pasa por servidores, para que los dos navegadores se encuentren hace falta un servicio de señalización (PeerJS) y un servidor STUN. Con la instancia pública se usan los predeterminados del proyecto; si quieres controlar también esa parte, la solución es autoalojarlo.
  • La velocidad dependerá siempre de la conexión de subida de quien envía.
  • Para archivos realmente importantes, conserva siempre una copia de seguridad: no hay copia en la nube a la que recurrir si algo se interrumpe.

FilePizza frente a otras alternativas p2p

Ya hemos visto varias herramientas basadas en WebRTC en el blog. Cada una tiene su punto fuerte:

  FilePizza WebWormhole Toffeshare
Cómo se conectan Enlace (URL) Frase única y código QR Enlace
Varios archivos Sí, descarga en ZIP Sí Un archivo cada vez (o comprimido previamente)
Contraseña opcional Sí No No
Varios receptores Sí Conexión entre dos dispositivos —
Autoalojable Sí (Docker) — —
Extra Modo oscuro, progreso y cancelación Extensiones para Chrome y Firefox, transferencia en ambos sentidos Aplicación para Android

Mi recomendación: FilePizza si quieres compartir un enlace con una o varias personas, y WebWormhole si prefieres emparejar dos dispositivos propios con una frase o un QR.

Más herramientas para enviar archivos de gran tamaño gratis

Este tema da para mucho. Si FilePizza no te convence o necesitas alternativas que no sean p2p puro, repasa estas publicaciones:

Y puedes ver todas las entradas de la categoría Compartir archivos.

Conclusión

FilePizza demuestra que para enviar un archivo grande a otra persona no hace falta subirlo a ningún sitio: con un navegador, un enlace y WebRTC es suficiente. Es gratuito, de código abierto, funciona en móvil y escritorio, admite contraseña y, si quieres tener el control total, puedes desplegarlo en tu propio servidor.

Ya sabes: la próxima vez que un correo electrónico te rechace un adjunto, tienes una pizza esperando. 🍕

Enlaces de interés