155 - Adios memorias USB
Ha llegado el momento de que digas adios memorias USB. Puedes utilizar un servicio en la nube o montar el tuyo con WebDav, en una Raspberry Pi o en un VPS
El episodio del podcast de hoy trata de como tener una carpeta en la nube, en tu propia nube, mas que como compartir la carpeta. Esto de llevar toda tu información en memorias USB, comúnmente denominados pinchos es algo que debería ser catalogado como anacrónico. Así que dile adios a tus memorias USB.
Sin embargo esto de llevar memorias USB, todavía es algo relativamente común hoy en día. Pero te puedo asegurar, que en la mayoría de los casos ya no es necesario. Si, ya no es necesario llevar memorias USB, porque puedes recurrir a los servicios en la nube.
Por un lado existen decenas de servicios que te permiten almacenar información y acceder a ella desde cualquier parte del mundo. Por otro lado siempre puedes montar tu propio servicio, tal y como te he comentado en algún que otro podcast, como pueden ser el 22 sobre tu propia nube en una Raspberry Pi, el 47 sobreSincronización de dispositivos en la nube, o incluso el 152 sobre tu servidor virtual. Y si no lo quieres oír, siempre tienes el tutorial sobre tu propia nube en la Raspberry.
Por supuesto, que alojar toda tu información en la nube, tiene sus problemas, sobre todo desde el punto de vista de la seguridad. En este sentido, dediqué un capítulo del podcast, precisamente a este tema, en concreto el número 31 titulado La seguridad está por las nubes. En ese episodio te hablaba sobre como podías cifrar tu información, para que, aunque estuviera alojada en un servicio público, no fuera legible por ojos extraños. O por lo menos no fuera tan legible, o al menos poner las cosas lo mas difíciles que sea posible.
En este episodio del podcast, igualmente te quiero contar como puedes tener un directorio en la nube, para que esté accesible desde todas partes y desde cualquier dispositivo. Así en concreto, te contaré como puedes acceder a este directorio tanto desde Android, como desde Linux Mint o Ubuntu, y de esta manera poder olvidarte de memorias USB.
Y es que, si tienes pocos recursos en tu Android, quiero decir, poca memoria, esta es una solución fantástica, para solo llevar lo que necesites. De la misma manera, allí puedes guardar información para acceder a ella, siempre que la necesites.
Tener una carpeta en la nube o adiós memorias USB
En este caso, te voy a contar como puedes montar un servicio en tu VPS, en tu Raspberry Pi, en tu NAS o en cualquier otro servidor, para poder acceder posteriormente a un directorio desde cualquier dispositivo, ya sea Linux Mint, Ubuntu o Android, y de esta manera decirle adiós a tus memorias USB. Este servicio es WebDav
¿Pero que es eso de WebDav? Es un protocolo que te permite gestionar archivos de forma remota, como pude ser escribir, copiar, eliminar y modificar.
¿Porque no utilizar un servicio de terceros? Esto es como todo, tiene sus ventajas y sus inconvenientes. En el caso de que tengas una Raspberry Pi o un servidor, montar un servicio de WebDav, vas a ver que es coser y cantar. No tiene ninguna complicación, y el mantenimiento de esto es nulo o prácticamente.
De hecho para facilitar la gestión de WebDav lo voy a montar utilizando docker, junto con traefik, para mi comodidad. Pero de cualquier manera, también te indicaré como lo puedes hacer sin traefik.
¿Y que ventajas aporta sobre servicios de terceros? Que tu tienes la información. Solo tu.
¿Y porque no montar un NextCloud u otro servicio similar? NextCloud está compuesto de muchas patas, y una de ellas es la posibilidad de acceder vía NextCloud. Sin embargo, montar todo un NextCloud para únicamente tener un directorio en la nube… Es demasiado. Verás que WebDav es un servicio que apenas consume recursos, y es muy sencillo de mantener.
Montando WebDav en la RPi o en un VPS
Mi recomendación es que instales WebDav utilizando docker, que es realmente sencillo. Así, utilizando docker-compose, el archivo será el siguiente,
version: '3'
services:
webdav:
image: bytemark/webdav:2.4
container_name: webdav
restart: always
ports:
- 80:80
environment:
AUTH_TYPE: Digest
USERNAME: ${USERNAME}
PASSWORD: ${PASSWORD}
volumes:
- ./dav:/var/lib/dav
networks:
proxy:
external: true
Los datos de usuario y contraseña, los he puesto en un fichero aparte .env
que se encuentra en la misma ruta que este. El contenido de ese arhivo es,
USERNAME=usuario
PASSWORD=contraseña
Donde debes cambiar usuario y contraseña. Encuentro esta solución mucho más cómoda que tenerlo todo en el mismo archivo yml
.
Con esta solución de WebDav, el problema es que no tienes la conexión cifrada, con lo que de nuevo, cualquier amigo de lo ajeno, puede hacer de las suyas.
Lo mas sensato es utilizar una conexión cifrada, y para ello, yo de nuevo, he recurrido a traefik, que me pone las cosas muy sencillas.
La configuración en el caso de que utilizas traefik es tan sencilla como lo que puedes ver a continuación,
version: '3'
services:
webdav:
image: bytemark/webdav:2.4
container_name: webdav
restart: unless-stopped
networks:
- proxy
ports:
- 8443:443
- 8081:80
volumes:
- ./dav:/var/lib/dav
environment:
environment:
AUTH_TYPE: Digest
USERNAME: ${USERNAME}
PASSWORD: ${PASSWORD}
labels:
- "traefik.enable=true"
- "traefik.http.routers.webdav.entrypoints=http"
- "traefik.http.routers.webdav.rule=Host(`webdav.servicio.duckdns.org`)"
- "traefik.http.middlewares.webdav-https-redirect.redirectscheme.scheme=https"
- "traefik.http.routers.webdav.middlewares=webdav-https-redirect"
- "traefik.http.routers.webdav-secure.entrypoints=https"
- "traefik.http.routers.webdav-secure.rule=Host(`webdav.servicio.duckdns.org`)"
- "traefik.http.routers.webdav-secure.tls=true"
- "traefik.http.routers.webdav-secure.tls.certresolver=myresolver"
networks:
proxy:
external: true
En este caso me estoy apoyando en DuckDNS para resolver el problema de la IP dinámica que tengo en casa, tal y como te cuento en el artículo sobre una puerta a tu Raspberry teniendo IP dinámica
Pero de cualquier forma, lo podrías hacer utilizando un servidor virtual alojado en cualquier proveedor que te proporcione servicios de alojamiento de VPS.
Como ves, sea con una solución o con otra, esto es realmente sencillo y fácil. Una vez todo preparado solo te queda levantar el contenedor,
docker-compose up -d
Perfecto, ya tienes tu directorio disponible para acceder desde donde quieras…
Pero, ¿como acceder a esa carpeta desde cualquier lugar?
Android
En Android tienes diferentes opciones. Pero, quiero distinguir entre dos opciones básicas,
- la primera es que solo quieres acceder al contenido, y tu descargas o utilizas lo que necesites
- el segundo caso es que quieres sincronizar tu contenido. Esta sincronización, puede ser del móvil al servidor, del servidor al móvil o bidireccional.
Aquí depende de tus necesidades, de tus requerimientos o de las posibilidades de tus dispositivos
Si por ejemplo, tienes un móvil con poca memoria, a lo mejor necesitas los dos. Uno que te permite extraer toda la información del móvil, haciendo una sincronización del móvil hacia el servidor
Y una segunda que te permita acceder a toda la información de esa carpeta en la nube, de forma que solo descargarás aquello que necesites.
Sea como fuere. Para el caso del acceso, puedes utilizar, Cx Explorador de Archivos
Mientras que para el caso de la sincronización, tienes una solución muy interesante que es FolderSync. Esta última tiene una versión gratuita y otra de pago. La diferencia entre una y otra, radica en que la versión gratuita o Lite, tiene anuncios, solo permite dos cuentas, y no tiene filtros de sincronización.
Linux Mint y Ubuntu
En el caso tanto de uno como de otro, puedes acceder a ese directorio compartido en la nube, desde el gestor de archivos. Simplemente selecciona la opción Archivo > Conectarse a un servidor...
Esto te muestra un cuadro de diálogo donde tienes que introducir la dirección del servidor, el tipo de conexión, la carpeta, y el nombre de usuario y contraseña. Y con esto ya lo tendrías…. sencillo, fácil e intuitivo.
¿Y si quieres acceder desde el terminal?
En este caso mi recomendación es que lo montes en el /etc/fstab
cat << EOF | sudo tee -a /etc/fstab
# personal webdav
https://webdav.servicio.duckdns.org /mnt/dav davfs _netdev,noauto,user,uid=lorenzo,gid=lorenzo 0 0
EOF
A continuación guarda tus credenciales de usuario y contraseña que introdujiste anteriormente,
cat << EOF | sudo tee -a /etc/davfs2/secrets
https://webdav.servicio.duckdns.es usuario contraseña
EOF
Para poder utilizar WebDav sin necesidad de ganar derechos de administrador, es necesario realizar un serie de pasos adicionales.
- Reconfigurar davfs2
sudo dpkg-reconfigure davfs2
- Añadir tu usuario al grupo
davfs2
consudo usermod -a -G davfs2 $USER
- Ejecuta la siguiente instrucción para evitar tener que salir y entrar de la sesión
sudo newgrp docker
A partir de aquí la cuestión es coser y cantar. Para montar la carpeta en la nube, solo tienes que ejecutar con tu usuario
mount /mnt/dav
Mientras que para desmontarla,
umount /mnt/dav
Espero que te haya gustado este nuevo episodio del podcast. Si puedes, te agradecería una valoración en iVoox y/o en Apple Podcast.
Más información,
Imagen de portada Esa Riutta en Pixabay
Hola, es necesario tener Apache montado?
Llevo dándole vueltas bastante tiempo y siempre que lanzo el contenedor está continuamente reiniciandose.
Con una Raspberry Pi 4 y recien instalado el SO, docker y docker-compose, se reinicia constantemente el contenedor
Buenos días, me parece interesante su artículo “Adiós memorias USB” y la recomendación de montar un servicio de WebDAV.
Pero está ud. hablando para expertos en informática, porque yo como simple usuario me quedo a dos velas con sus informaciones de cómo hacerlo.
Un saludo