Laravel WebDAV Server¶
A WebDAV server package for Laravel powered by SabreDAV and Laravel's filesystem abstraction.
It exposes Laravel storage disks through a WebDAV endpoint and keeps request handling, storage resolution, and authorization explicit.
Start Here¶
Start with Getting Started for installation and the first working setup. Use Configuration Reference when you need the available keys and runtime options quickly.
- Getting Started
- Configuration Reference
- Path Resolution
- Events
- Server Customization
- Authentication & Authorization
- Architecture
- Commands
- Common Questions
- Architectural Decision Records
Overview¶
This package exposes Laravel storage disks through a WebDAV endpoint. It is designed around explicit request orchestration, pluggable authentication and authorization, and configurable storage spaces. Its internal architecture is intended to remain SOLID-compliant and to prefer established design patterns when they fit recurring design problems.
Core characteristics:
- WebDAV server for Laravel, not a Flysystem WebDAV client disk
- storage selection through named
spacekeys - Basic Auth validation through package contracts
- built-in artisan commands for creating, listing, showing, and updating WebDAV account records
- path authorization through
PathAuthorizationInterface, with Laravel Gate/Policy integration by default - optional package and SabreDAV logging through
webdav-server.logging - server customization through documented extension points and additional SabreDAV plugins
- SabreDAV runtime execution isolated behind package boundaries
- SOLID-oriented design with established patterns for recurring architectural problems
Supported WebDAV Operations¶
Supported WebDAV operations:
OPTIONSPROPFINDGETPUTDELETEMKCOL
The package route shape is /webdav/{space}/{path?} and the default client entry point is:
https://your-domain.test/webdav/default
Tested clients:
WinSCPCyberduck- macOS Finder
- Windows Explorer