Enviar archivos del teléfono a un servidor, NAS o Raspberry Pi

Última revisión

La mayoría de las herramientas para compartir archivos en el navegador necesitan una pestaña abierta en el lado que recibe. Un servidor doméstico, un NAS, una Raspberry Pi o una máquina virtual en la nube no tienen pantalla ni navegador. El buzón de línea de comandos de tosstome está pensado justo para ese tipo de máquina.

Configura el buzón

En el servidor (Node.js 22 o posterior):

tosstome listen --dir /srv/inbox

Muestra un enlace y un código QR en la terminal:

Cuando el teléfono está en la misma red que el servidor, los archivos van directamente a él por esa red y no salen de ella. Desde cualquier otro lugar van directos si las dos redes lo permiten, o a través de un relé que no guarda nada.

El enlace del buzón no cambia al reiniciar, así que el icono de la pantalla de inicio sigue funcionando. Para mostrarlo de nuevo más tarde, ejecuta tosstome url. Para descartar el enlace anterior y crear uno nuevo, ejecuta tosstome listen --new.

Cómo se protege el buzón

También visible en la red local

tosstome listen --nearby

Con --nearby, el servidor también aparece en la lista “En esta red” de los navegadores de la misma red, así que cualquiera en casa puede enviarle archivos sin el enlace. Esos archivos van a una subcarpeta nearby/ aparte, porque cualquier persona de esa red puede enviarlos.

Ejecútalo como servicio

Para una máquina que deba aceptar archivos siempre, ejecuta el comando con lo que mantenga activos tus otros servicios, como una unidad de systemd, un contenedor de Docker o tmux. Añade --json para obtener un evento JSON por línea (ready, offer, file, error), útil para registros o scripts.

[Unit]
Description=tosstome inbox
After=network-online.target

[Service]
ExecStart=/usr/bin/env tosstome listen --dir /srv/inbox --json
Restart=always
User=media

[Install]
WantedBy=multi-user.target

Enviar desde la terminal de otra computadora

tosstome send report.pdf photos.zip --to "INBOX_LINK"

Pon el enlace entre comillas, porque contiene un # que los shells tratan como comentario.

Preguntas

¿El servidor necesita una IP pública o puertos abiertos?

No. El buzón abre una conexión WebSocket saliente hacia toss2.me y espera allí, así que funciona detrás de routers domésticos, NAT y firewalls que permitan HTTPS saliente.

En casa, ¿los archivos pasan por internet?

No. Solo el breve establecimiento de la conexión pasa por toss2.me. Cuando el teléfono y el servidor están en la misma red, los archivos van directamente entre ellos por WebRTC, así que la velocidad depende de tu Wi-Fi o Ethernet. La página indica si una transferencia fue directa o por el relé.

¿Qué pasa si el servidor está desconectado cuando envío?

No se envía nada y no se guarda nada. La página del teléfono avisa de que el buzón está desconectado.

¿Otras personas pueden enviar a mi buzón?

Solo quienes tengan el enlace. Si se filtra, ejecuta tosstome listen --new para reemplazarlo; el enlace anterior deja de funcionar.

¿Hay un límite de tamaño de archivo?

tosstome no impone ningún límite. El navegador que recibe mantiene el archivo en memoria hasta que lo guardas, así que para archivos de varios gigabytes conviene más recibir con el buzón de línea de comandos, que escribe directamente en el disco.

Relacionado

Pruébalo ahora

Abre toss2.me en dos dispositivos. Sin app, sin cuenta y sin guardar nada.

Enviar un archivo ahora