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.
El artículo Serve, comparte archivos estáticos en tu red local de manera sencilla ha sido originalmente publicado en Ubunlog.