Serve, comparte archivos estáticos en tu red local de manera sencilla

En el siguiente artículo vamos a echar un vistazo a cómo podemos configurar un servidor de archivos estáticos. Si alguna vez has querido compartir tus archivos o proyectos a través de la red, pero no sabes cómo hacerlo, quizás este artículo te pueda sacar de dudas. Esto lo haremos mediante una utilidad simple llamada “serve”, que nos hará muy sencillo compartir nuestros archivos de forma instantánea a través de nuestra red local.

Utilizando este servidor, podremos acceder a los archivos desde cualquier dispositivo, independientemente del sistema operativo. Todo lo que necesitaremos será un navegador web. Esta utilidad también se puede usar para servir sitios web estáticos. Anteriormente se conocía como “list” y “micro-list”. Pero a día de hoy el nombre ha sido cambiado a “serve”, que parece mucho más adecuado para el propósito de esta utilidad.

Instalar Serve mediante NodeJS

Para instalar Serve, primero debemos instalar NodeJS y NPM (versión 4.X o inferior). Una vez que NodeJS y NPM estén instalados, abriremos una terminal (Ctrl+Alt+T) y ejecutaremos el siguiente comando para instalar Serve.

sudo npm install -g serve

Ya no necesitamos más. Todo listo para empezar a compartir.

Uso de Serve

Servir archivos o carpetas específicos

Por ejemplo, si queremos compartir los contenidos del directorio Documentos. Solo tendremos que escribir en la terminal (Ctrl+Alt+T):

serve Documentos/

Como puede ver en la captura de pantalla anterior, los contenidos del directorio se han servido a través de la red local y podremos acceder a ellos mediante dos URL. Para acceder desde el propio sistema local, todo lo que habrá que hacer es abrir un navegador web y escribir como url http://localhost:5000/.

La utilidad Serve muestra los contenidos del directorio mediante un diseño simple. Podremos realizar descargas haciendo clic con el botón derecho en los archivos y seleccionar ‘Guardar enlace como’ o simplemente visualízarlos en el navegador.

Si buscamos abrir una dirección local automáticamente en el navegador, utilizaremos la opción -o.

serve -o Documentos/

Una vez que se ejecuta el comando anterior, la utilidad Serve abrirá su navegador web automáticamente y mostrará el contenido del elemento compartido.

De forma similar, para acceder al directorio compartido desde un sistema remoto a través de la red local, escribiremos http://10.0.2.15:5000 en la barra de direcciones del navegador. Reemplaza 10.0.2.15 con la IP de tu sistema.

Servir contenido a través de diferentes puertos

La utilidad serve utiliza el puerto 5000 de manera predeterminada. Por lo tanto, hay que asegurarse de que el puerto 5000 esté disponible. En caso de que esté bloqueado por alguna razón, podremos servir los contenidos utilizando un puerto diferente usando la opción -p.

serve -p 1234 Documentos/

El comando anterior servirá los contenidos del directorio de Documentos a través del puerto 1234.

Comparte un solo archivo

Para servir un archivo, en lugar de una carpeta, solo tendremos que darle la ruta hasta el archivo:

serve Documentos/Anotaciones/notas.txt

Sirve todo el directorio $HOME

Abre tu terminal y escribe:

serve

De forma automática se compartirá el contenido de tu directorio $HOME completo a través de la red. Para detener el intercambio, tendremos que pulsar CTRL+C.

Sirve archivos o carpetas de manera selectiva

Es posible que no quieras compartir todos los archivos o directorios, sino solo algunos situados en un directorio. Puedes hacer esto excluyendo los archivos o directorios usando la opción -i.

serve -i Descargas/

El comando anterior servirá a toda la carpeta $HOME excepto el directorio de Descargas.

Servir contenido solo en localhost

Si te interesa servir los contenidos solo en el sistema local, no en toda la red podrás hacerlo utilizando la opción -l:

serve -l Documentos/

Este comando servirá al directorio de Documentos solo en localhost. Esto puede ser útil cuando trabajas en un servidor compartido. Todos los usuarios en el sistema pueden acceder al recurso compartido, pero no los usuarios remotos.

Comparte contenido usando SSL

Como servimos los contenidos a través de la red local, no necesitamos usar SSL. Sin embargo, la utilidad Serve tiene la capacidad de compartir contenido utilizando SSL utilizando la opción -ssl.

serve --ssl Documentos/

Servir contenidos con autenticación

En todos los ejemplos anteriores, hemos servido los contenidos sin ninguna autenticación. Esto quiere decir que cualquier persona en la red puede acceder a ellos. Pero podemos hacer que sea necesario un usuario y contraseña para acceder a algunos contenidos. Para hacerlo, utiliza:

SERVE_USER=entreunosyceros SERVE_PASSWORD=123456 serve --auth

Ahora los usuarios deben escribir el nombre de usuario (entreunosyceros, en este caso) y la contraseña (123456) para acceder a los recursos compartidos.

Otras funciones

La utilidad Serve tiene otras funciones, como desactivar la compresión Gzip, permitir solicitudes desde cualquier origen, evitar copiar la dirección automáticamente al portapapeles, etc. Para más información podemos leer la sección de ayuda ejecutando:

serve help

También podemos conocer más acerca de Serve en su repositorio de GitHub.


Categorías

Ubuntu

Damian Amoedo

Aficionado a la programación. Apasionado del software libre. Dispuesto a aprender de todo para después contarlo.

4 comentarios

  1.   jvsanchis dijo

    Hola Damián,
    Sigo tu blog al que estoy suscrito. Una gran ayuda.
    Acabo de instalar una DiskStation Synology ds115 de una sola Bahía (2tb)
    Puedo guardar archivos mediante “file Station”
    Mi idea era hacer copias de seguridad incrementales con Deja Up/copias de seguridad pero con DiskStation no lo necesito. o tal vez haya una forma de combinar su uso. A lo mejor estoy diciendo una gran tontería pero, ya sabes, los no expertos…Vamos, que me pierdo.
    ¿Qué me aconsejarías o dónde podría encontrar ayuda?
    Muchas gracias

    1.    Damian Amoedo dijo

      Hola.Según he leído en Synology, DiskStation Synology permite realizar copias incrementales. Entonces no veo necesario el uso de Deja Up. Pero vamos que es solo mi opinión, no sé que partido le puedes sacar al uso de Deja Up. Supongo que eso es lo que tienes que valorar tú. Salu2.

  2.   Jimmy Olano dijo

    Necesita node 6.X y npm 2.x de lo contrario no puede ejecutar “bluebird”,
    éste es el mensaje que solicita las versiones necesarias:

    npm WARN engine serve@6.5.5: wanted: {“node”:”>=6.9.0″} (current: {“node”:”4.9.1″,”npm”:”2.15.11″})

    1.    Damian Amoedo dijo

      Es correcto esto que dices, pero he leído en algunos sitios (que ahora mismo no tengo a mano) que la versión npm debe ser menor a la 4.X por que muchos usuarios han tenido problemas. Pero se te agradece la aclaración. Salu2.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.