Blog del Podcast
podcast    GitHub    Twitter  Telegram

Mi alternativa a Nextcloud como nube. Filebrowser, WebDav y Syncthing

Siempre he comentado que una nube como Nextcloud para solo acceder o sincronizar archivos es muy pesada. Existen otros proyectos, mucho más ligeros con lenguajes de programación mucho más modernos, por ejemplo en GO como FileBrowser.

El objetivo por mi parte, ha sido el sumar lo mejor de 2 servicios. 

  1. Mi servidor webdav que utilizo a diario
  2. Anadir una interfaz web, para no estar obligado a utilizar un cliente de administración.

FileBrowser es la herramienta que nos permitirá visualizar nuestros archivos y directorios, a través de un navegador web. FileBrowser no tiene aplicación, es única y exclusivamente para utilizarla desde un navegador web. Eso significa que allá donde haya un navegador web, podremos acceder a nuestros archivos. En dispositivos móviles y tablets, FileBrowser se adapta perfectamente a todo tipo de pantalla, así que es un servicio fantástico. Webdav es el servicio para sincronizar mis archivos con aplicaciones como SimpleTask, Orgzly, FolderSync, X-plore, Solid Explorer o Pure Writer. También envío backups y accedo a archivos con rclone.

FileBrowser tiene una función para compartir archivos o directorios con cualquier persona mediante un link que podemos determinar una duración de validez para su descarga.

FileBrowser también permite crear tantos usuarios como queramos, pero si queremos combinar esta función con WebDav, entonces necesitaremos crear tantos servidores WebDav como usuarios lo necesiten y dirigir el directorio donde estarán los archivos, en mi ejemplo /webdav, por el directorio del usuario de FileBrowser.

FileBrowser + WebDav es la apuesta ganadora como servicios super livianos y sencillos. Podemos ampliar esta apuesta incluyendo algún directorio de nuestra nube mediante Syncthing. En mi caso, no he añadido esta opción en la primera parte del artículo, para no complicar más el tutorial. Lo que está claro, es que es muy recomendable utilizar docker-compose, para esta tarea ya que permite ir incluyendo servicios dentro de nuestra nube igual que lo hariamos con Nextcloud y ganar en diversidad, funcionalidades y potencia.

Partiendo de que el directorio /webdav es compartido con el servicio FileBrowser y Webdab,  personalmente recomiendo ir añadiendo servicios enlazados a determinados directorios como:

Como he comentado antes, el directorio donde irán los archivos de la nube será /webdav. Yo he decidido que sea esta, pero tu puedes personalizarlo al directorio que desees.

Iniciando

Vamos a clonar el repositorio que tengo en GitHub, donde están los archivos de configuración para Filebrowser para que persista la configuración una vez actualicemos el docker.

#+BEGIN_EXAMPLE

git clone https://github.com/uGeek/docker-filebrowser.git

#+END_EXAMPLE

Docker-cli

Filebrowser para ARM

Inicia el docker desde el repositorio que hemos clonado de GitHub. Este directorio es donde se guardarán la configuración y base de datos de FileBrowser.

#+BEGIN_EXAMPLE

docker run --name filebrowser -v /webdav:/srv -v $PWD/filebrowser.db:/database.db -v $PWD/filebrowser.json:/.filebrowser.json -p 80:80 filebrowser/filebrowser

#+END_EXAMPLE

Si da error el arranque del docker, crea una nueva base de datos en blanco filebrowser.db

#+BEGIN_EXAMPLE

touch filebrowser.db

#+END_EXAMPLE

WebDav para ARM

#+BEGIN_EXAMPLE

docker run --name webdav --restartunless-stopped -p 80:80 -v /webdav:/media -e USERNAMEwebdav -e PASSWORDwebdav -e TZEurope/Madrid -e UDI1000 -e GID1000 -d ugeek/webdav:arm

#+END_EXAMPLE

Filebrowser para amd64

Inicia el docker desde el repositorio que hemos clonado de GitHub. Este directorio es donde se guardarán la configuración y base de datos de FileBrowser.

#+BEGIN_EXAMPLE

docker run --name filebrowser -v /webdav:/srv -v $PWD/filebrowser.db:/database.db -v $PWD/filebrowser.json:/.filebrowser.json -p 80:80 filebrowser/filebrowser

#+END_EXAMPLE

Si da error el arranque del docker, crea una nueva base de datos en blanco filebrowser.db

#+BEGIN_EXAMPLE

touch filebrowser.db

#+END_EXAMPLE

WebDav para amd64

#+BEGIN_EXAMPLE

docker run --name webdav --restartunless-stopped -p 80:80 -v /webdav:/media -e USERNAMEwebdav -e PASSWORDwebdav -e TZEurope/Madrid -e UDI1000 -e GID1000 -d ugeek/webdav:amd64

#+END_EXAMPLE

Docker Compose

Si vas a utilizar docker-compose para levantar ambos servicios, renombra el archivos docker-compose_filebrowser+webdav.yml  por docker-compose.yml.

En este caso, voy a utilizar como ejemplo de dominio ugeek en duckdns.org. Vamos a utilizar sed para sustituir la palabra dominio por ugeek. También lo puedes hacer manualmente desde el docker-compose.yml

#+BEGIN_EXAMPLE

sed -i s'|dominio|ugeek|'g docker-compose.yml

#+END_EXAMPLE

Ajustes de Webdav

Ajustes de FileBrowser

Inicia el docker desde el repositorio que hemos clonado de GitHub. Este directorio es donde se guardarán la configuración y base de datos de FileBrowser.

Si da error el arranque del docker, crea una nueva base de datos en blanco filebrowser.db

#+BEGIN_EXAMPLE

touch filebrowser.db

#+END_EXAMPLE

Ya está listo todo para levantar el docker.

Docker para arm y Raspberry Pi

#+BEGIN_EXAMPLE

version: '3'

services:

filebrowser:

image: filebrowser/filebrowser:pi

container_name: filebrowser

restart: unless-stopped

volumes:

Proxy inverso con traefik

#+BEGIN_EXAMPLE

version: '3'

services:

filebrowser:

image: filebrowser/filebrowser:pi

container_name: filebrowser

restart: unless-stopped

volumes:

webdav:

container_name: webdav

image: ugeek/webdav:arm

restart: unless-stopped

volumes:

#+END_EXAMPLE

Docker para amd64

#+BEGIN_EXAMPLE

version: '3'

services:

filebrowser:

image: filebrowser/filebrowser

container_name: filebrowser

restart: unless-stopped

volumes:

webdav:

container_name: webdav

image: ugeek/webdav:amd64

restart: unless-stopped

volumes:

Proxy inverso con traefik

#+BEGIN_EXAMPLE

version: '3'

services:

filebrowser:

image: filebrowser/filebrowser

container_name: filebrowser

restart: unless-stopped

volumes:

webdav:

container_name: webdav

image: ugeek/webdav:amd64

restart: unless-stopped

volumes:

Syncthing

También es posible sincronizar con el exterior de nuestra nube gracias a Syncthing. He tomado de ejemplo dos directorios dentro de /webdav llamado Fotos y dotfiles, pero puedes sincronizar tantos directorios como quieras. Incluso, sincronizar absolutamente todo.

Añade al docker-compose.yml anteriores, estas líneas si quieres añadir Syncthing.

#+BEGIN_EXAMPLE

syncthing:

image: ghcr.io/linuxserver/syncthing

container_name: syncthing

environment:

Fuentes

Publicado por Angel el Sunday 03 January del 2021

También te puede interesar:




Powered by org-bash-blog

Written in OrgMode with Emacs and converted to HTML with Pandoc

Licencia de Creative Commons
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional.