Webdav es un protocolo que nos permite manejar y compartir archivos alojados en un servidor como si de una carpeta local se tratara.
Los servidores Apache incorporan el protocolo de forma nativa, pero si usas como proxy inverso caddy, necesitas instalar un módulo no oficial para que webdav funcione.
Instalación.
- Empezamos descargando e instalando la última versión de go.
1 2 3
wget https://go.dev/dl/go1.21.0.linux-amd64.tar.gz rm -rf /usr/local/go && tar -C /usr/local -xzf go1.21.0.linux-amd64.tar.gz export PATH=$PATH:/usr/local/go/bin
-
Añadimos la línea
export PATH=$PATH:/usr/local/go/bin
al archivo/etc/profile
para que fijarlo al PATH. - Si no lo hemos instalado, instalamos caddy.
1 2 3 4 5
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list sudo apt update sudo apt install caddy
- Añadimos el plugin webdav.
1
caddy add-package github.com/mholt/caddy-webdav
-
Creamos el hash con la contraseña de usuario y lo copiamos para poder añadirlo al archivo de configuración con la orden:
caddy hash-password
. - Creamos la carpeta donde vamos a alojar los archivos y le cambiamos el propietario para que caddy pueda manejar lo que haya en dicha carpeta.
1 2
mkdir /var/dav chown caddy:caddy /var/dav
- Añadimos la configuración webdav a
/etc/caddy/Caddyfile
.1 2 3 4 5 6 7 8 9 10 11 12
{ order webdav before file_server } dominio.com { basicauth { usuario hash_que_hemos_creado_antes } webdav * { root /ruta/completa/carpeta/dav prefix /dav } }
- Reiniciamos caddy con
systemctl restart caddy
y listo.
Más información: mholt/caddy-webdav