Os he explicado varias formas de montar un servidor WebDAV.
El modo que os explicaré hoy con rclone, es el más fácil, rápido y seguro de todos los que os he explicado.
Además este modo tiene una característica importante, puedes utilizar una nube pública ya sea cifrada o no para servirla a través de tu servidor WebDAV.
Hay dos formas de crear el usuario y contraseña. Una sería añadir el usuario y contraseña como unas variables en el docker-compose, la otra es creando un archivo htpasswd, donde esta información estará cifrada.
Lo primero que necesitamos, es instalar el paquete apache2-utils, para utilizar htpasswd y crear el hash de la contraseña.
Una vez instalado, voy a crear el usuario angel y la contraseña 1234, como ejemplo.
La terminal me devuelve:
Esto lo copiaré en el archivo htpasswd
, donde guardaré todas mis contraseñas para acceder a la nube.
Recuerda que puedo crear tantos usuarios y contraseñas como desee
En mi caso, para no montar tantos volúmenes, guardaré el archivo htpasswd
en la misma ruta que el archivo rclone.conf
.
Voy a montar un servidor WebDAV con almacenamiento local, osea, todos los archivos y directorios de mi servidor WebDAV, estarán en mi Raspberry, Servidor o VPS.
rclone-webdav-server:
container_name: webdav
image: rclone/rclone
ports:
- 100:80
command:
- "--config"
- "/root/.config/rclone/rclone.conf"
- "--verbose"
- "serve"
- "webdav"
- "local:/webdav" # El almacenamiento del servidor, está en el directorio local /webdav
- "--addr"
- "0.0.0.0:80"
- "--htpasswd" # habilitar el usuario y contraseña
- "/root/.config/rclone/htpasswd" # ruta del archivo donde está el usuario y hash de la contraseña
- "-v"
- "--log-file"
- "/webdav.log"
volumes:
- $HOME/.config/rclone:/root/.config/rclone/:ro
- /webdav:/webdav # Crea un volumen que comparte el directorio /webdav dentro del docker, con /webdav en local
- $HOME/docker/webdav/webdav.log:/webdav.log # logs de acceso
environment:
- TZ=Europe/Madrid
Sustituye:
En este caso, voy a utilizar la nube pública como almacenamiento de mis archivos. Mi servidor WebDAV servirá estos archivos.
En mi caso, he cifrado todos los archivos de la nube pública, así tengo más privacidad.
La nube que tengo configurada en rclone es drive:
.
rclone-webdav-server:
container_name: webdav
image: rclone/rclone
ports:
- 100:80
command:
- "--config"
- "/root/.config/rclone/rclone.conf"
- "--verbose"
- "serve"
- "webdav"
- "drive:"
- "--addr"
- "0.0.0.0:80"
- "--htpasswd"
- "/root/.config/rclone/htpasswd"
- "-v"
- "--log-file"
- "/webdav.log"
volumes:
- $HOME/.config/rclone:/root/.config/rclone/:ro
- $HOME/docker/webdav/webdav.log:/webdav.log
environment:
- TZ=Europe/Madrid
En el docker-compose anterior, tenemos que añadir la opción -v
y --log-file
para crear un archivo de texto plano donde se guardarán todos los logs.
También crearemos un volumen para guardar el archivo de texto plano. Como ves en el ejemplo, lo he nombrado como webdav.log
.
Recuerda consultar los logs en caso de errores al montar la nube.
Publicado por Angel el Tuesday 11 May del 2021
También te puede interesar:
Powered by org-bash-blog
Written in OrgMode with Emacs and converted to HTML with Pandoc
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional.