Inicio Servidor webdav con caddy
Entrada
Cancelar

Servidor webdav con caddy

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

Esta entrada está licenciada bajo CC BY 4.0 por el autor.