194 - Compartir archivos desde tu Raspberry o VPS

194 - Compartir archivos desde tu Raspberry o VPS

En este podcast te hablo de dos herramientas para compartir archivos desde tu Raspberry o VPS como son FileRun y Pydio. Sus ventajas e inconvenientes.

1:25
-3:15

En el episodio 138 del podcast te hablé sobre la alternativa a Dropbox para tu Raspberry. La cuestión, que desde aquel episodio hasta el momento actual, he estado probando diferentes alternativas, para compartir archivos desde tu Raspberry o VPS.

Lo cierto es que Seafile, que es el producto del que hablaba en ese episodio del podcast, funciona razonablemente bien. Sin embargo, como te comentaré a lo largo del podcast, para mis necesidades resulta que tiene demasiadas características que yo no necesito.

Ciertamente, lo que busco es un producto que me permita compartir contigo, documentos, básicamente, libros electrónicos. Así, en este episodio te voy a comentar las dos soluciones que estoy probando.

Compartir archivos desde tu Raspberry o VPS

Compartir archivos desde tu Raspberry o VPS

En que ando metido

Como todos los jueves te cuento en que ando metido para que sepas que es lo que encontrarás los próximos días en atareao.es.

Artículos

Respecto al tema de los artículos, la semana pasada, inicié un nuevo tutorial sobre diálogos para scripts en Bash. La cuestión es que no siempre tenemos que recurrir a tirar un script desde la línea de comandos. En ocasiones, nos resulta mas cómodo, ejecutar ese script utilizando ya sea un diálogo desde la propia consola, o bien, desde el interfaz gráfico.

Las razones para esto son muchas y variadas. Por un lado, simplemente por nuestra comodidad, para no tener que lidiar con opciones en la línea de comandos. Por otro lado, en el caso de que lo tenga que utilizar otro usuario, y no queramos enfrentarlo al terminal. Esto sería una muy buena solución.

En este primer capítulo del tutorial, te presento la herramienta dialog, que desde luego, si eres un veterano de Linux, seguro que la conoces de sobra, pero en otro caso, es un buen momento para conocerlo.

Por supuesto, que esto no es mas que el primero de los capítulos del tutorial, y en los siguientes encontrarás otras herramientas para crear diálogos, esta vez con interfaz gráfica, como la entendemos todos.

Por otro lado, siguiendo con el tutorial de Ansible, en este nuevo capítulo me centro en los bloques, que te van a permitir aumentar la funcionalidad de tus playbooks.

Porque compartir archivos desde tu Rasbperry o VPS

Hace unos pocos días Ángel de uGeek, publicó un artículo sobre FileRun como alternativa a NextCloud. Este fue el detonante que hizo replantearme el hecho de si Seafile es la herramienta que estaba buscando.

¿Para que compatir archivos?

Como sabes atareao.es se soporta en parte debido a tus donaciones, que tienen una doble misión,

  • Una parte está clara, la que ya he mencionado, la de soportar este proyecto
  • Pero, por otro lado, me sirve para saber que lo que estoy haciendo te gusta, te es de utilidad y te sirve. Porque como suelo pensar, dar un like en Twitter cuesta relativamente poco, dejar un comentario en atareo.es, cuesta un poco mas. Sin embargo, sacar la cartera y hacer una donación, con independencia del importe, eso si que cuesta… cuesta mucho. Esta es la razón, mas que ninguna otra, para pedirte una donación.

Y ¿porque te cuento esto? Porque a los que donáis, os envío un ebook, o varios. Por ahora, solo he enviado el primero, pero estoy trabajando para poder enviaros un segundo.

Por cierto, si no te ha llegado, no dudes en reclamarlo, que te lo haré llegar de inmediato. Si bien, no te se decir exactamente con que servicio.

¿Y como enviar esto? Si, lo podría poner en un Dropbox, o en cualquier otro servico de la nube… pero esto iría por completo en contra de lo que promulgo. Por varias razones.

Tener una Raspberry o un VPS es algo relativamente económico… dentro de lo que cabe, por supuesto, y con permiso de la maldita inflación. Si tienes esos medios, ya puedes hospedar una página web, tu página web. Y ya que tienes la página puedes añadir otros servicios, como es el caso de un servicio para compartir archivos desde tu Raspberry o VPS.

Esto siempre planteado desde el punto de que no vas a compartir archivos desde tu Raspberry o VPS de forma puntual, no va a ser el objeto principal de ese dispostivo. Si fuera ese, es posible que tuvieras que plantearte una solución alternativa.

Infraestructura

Si quieres compartir archivos desde tu Rasbperry en casa, necesitarás primero poder salir de casa. Y no me refiero a ti, por supuesto, sino a que tu servicio de compartir archivos, tiene que estar disponibles desde internet. Para ello, necesitarás abrir los puertos correspondientes del router.

Si tienes una IP dinámica puedes recurrir a un servicio como DuckDNS, tal y como comento en el episodio 142 del podcast en el que te hablo sobre como puedes tener tus contenedores accesibles desde Internet.

Llegados a este punto ya puedes compartir archivos desde tu Raspberry o VPS en las mismas condiciones. Ahora, para continuar, te recomiendo que instales todo por Docker. Si no conoces esta tecnología, te recomiendo que sigas el tutorial sobre Docker.

Por supuesto, para tener todo esto en marcha, y no solo el servicio que te permita compartir archivos desde tu Rasbperry o VPS, es decir, si también tienes Web, u otros servicios, todo ello deberá estar disponible de la misma manera. Para ello, te recomiendo Traefik y en este sentido te dejo, la configuración que tengo para ambos servicios que comentaré.

Servicios para compartir archivos desde tu Raspberry o VPS

Además del servicio que he comentado anteriormente, Seafile, actualmente, estoy buscando otras alternativas que sean mas ligeras, pero que me permitan compartir archivos de una forma realmente sencilla. Los dos alternativas que estoy probando son FileRun, como he comentado anteriormente, y Pydio.

FileRun

Lo que no me termina de convencer de esta solución es que no es OpenSource. No es que me vaya a poner a estudiar el código de este servicio. Sin embargo, siempre me gusta saber que en caso de necesidad, siempre tengo la posibilidad de modificar el código para adaptarlo a mis necesidades. Simplemente es saber que tengo la posibilidad, aunque también tengo la certeza de que es muy difícil que lo haga… aunque nunca se sabe.

Sin embargo, a pesar de este inconveniente, tiene otras ventajas, que puestas en la balanza me hacen dudar seriamente.

  • No necesitas importar nada. Simplemente tienes que apuntar donde están tus archivos para empezar a compartir.
  • Te permite recibir archivos de otros. Por ejemplo, archivos pesados o incluso colecciones de archivos o fotos. Imagina que quieres que te envíen todas las fotos de la boda de tu hermana…, que mejor forma de hacerlo que con este sistema.
  • Te permite tener usuarios enviados
  • Podrás llevar tus archivos donde quieras.
  • Tiene aplicación para móvil
  • Puedes instalar también aplicación para escritorio
  • También tienes la posibilidad de acceder a los archivos utilizando WebDav
  • Es posible integrarlo con otras herramientas mediante plugins. Por ejemplo, Google Docs, Zoho, OnlyOffice
  • Tienes la opción de añadir mas características mediante complementos.
  • Otra característica que lo hace realmente interesante es el control de versiones.
  • Se trata de un servicio pensado en la seguridad, con determinadas características que lo hacen ideal.
Docker
version: '3'

services:
  db:
    image: mariadb:10.1
    container_name: filerun_db
    env_file:
      - filerun.env
    volumes:
      - ./db:/var/lib/mysql
    networks:
      - internal

  web:
    image: afian/filerun
    container_name: filerun_app
    env_file:
      - filerun.env
    depends_on:
      - db
    links:
      - db:db
    ports:
      - 7080:80
    volumes:
      - ./html:/var/www/html
      - ./files:/user-files
    networks:
      - internal
      - proxy
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.filerun.entrypoints=http"
      - "traefik.http.routers.filerun.rule=Host(`filerun.tu-sitio-web.es`)"
      - "traefik.http.middlewares.filerun-https-redirect.redirectscheme.scheme=https"
      - "traefik.http.routers.filerun.middlewares=filerun-https-redirect"
      - "traefik.http.routers.filerun-secure.entrypoints=https"
      - "traefik.http.routers.filerun-secure.rule=Host(`filerun.tu-sitio-web.es`)"
      - "traefik.http.routers.filerun-secure.tls=true"
      - "traefik.http.routers.filerun-secure.tls.certresolver=myresolver"

networks:
  internal:
  proxy:
    external: true

Pydio Cells

La otra opción que estoy probando es Pydio Cells. Es un servicio pensado para colaborar con otros. Esta herramienta, me parece aún demasiado compleja de utilizar, mas que FileRun, y este es el principal inconveniente que le encuentro. Como ventajas,

  • Tiene un sistema de compartir archivos muy bien pensado, y sobre todo orientado a compartir de forma segura.
  • Te permite subir, descargar y compartir archivos de gran tamaño. Con un protocolo pensado para esto, permitiendo archivos de hasta 5TB… quien lo iba a decir hace tan solo unos pocos años.
  • Puedes compartir archivos tanto dentro como fuera.
  • Los enlaces públicos puedes protegerlos con contraseña, por tiempo de expiración, como limitando el número de descargas.
  • Dependiendo de como lo tengas instalado, te permite trabajar con otros usuarios de forma simultánea sobre un mismo documento.
  • Al igual que sucede con FileRun, también tiene un sistema de control de versiones.
  • Tiene un sistema de chat, para poder trabajar y compartir con tus compañeros en tiempo real. Precisamente, este es uno de los problemas de los que me quejaba inicialmente. Tiene demasiadas características, que actualmente, a mi no me hacen ninguna falta.

Docker

version: '3'

services:
  db_pydio:
    image: mariadb:10.1
    container_name: pydio_db
    env_file:
      - pydio.env
    volumes:
      - ./db:/var/lib/mysql
    networks:
      - internal

  pydio:
    image: pydio/cells:latest
    container_name: pydio
    restart: unless-stopped
    depends_on:
      - db_pydio
    links:
      - db_pydio:db_pydio
    networks:
      - proxy
      - internal
    volumes:
      - ./cells:/var/cells
      - ./data:/var/cells/data
    ports:
      - 8200:80
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.pydio.entrypoints=http"
      - "traefik.http.routers.pydio.rule=Host(`pydio.tu-sitio-web.es`)"
      - "traefik.http.middlewares.pydio-https-redirect.redirectscheme.scheme=https"
      - "traefik.http.routers.pydio.middlewares=pydio-https-redirect"
      - "traefik.http.routers.pydio-secure.entrypoints=https"
      - "traefik.http.routers.pydio-secure.rule=Host(`pydio.tu-sitio-web.es`)"
      - "traefik.http.routers.pydio-secure.tls=true"
      - "traefik.http.routers.pydio-secure.tls.certresolver=myresolver"

networks:
  internal:
  proxy:
    external: true

Conclusión

Estas son las dos opciones que estoy probando actualmente… Por supuesto, soy todo oídos, si conoces alguna otra alternativa a Pydio, FileRun o Seafile, que hayas probado o no, me comentas, para que le de un tiento, a ver si es la solución definitiva que ando buscando o no.


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.

Imagen de portada de Kelly Sikkema en Unsplash

Deja una respuesta

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