Incredibly secure, fast and light WebDav Server, built from Alpine image - bare minimum with no bells and whistles. The image is only around 5.3 MB in size and the container takes around 10 MB of memory.
This is a fork of https://github.com/maltokyo/docker-nginx-webdav with the following changes:
Different tags mean different versions. All tags on Dockerhub have passed the internal tests. Usually you want to go with the nightly
version to get the newest Alpine Linux base.
Overview of tag dates:
Tag | Date |
---|---|
nightly | |
master | |
latest |
The meanings of the tags:
Tag | Meaning |
---|---|
nightly | Nightly build of the master branch, usually up-to-date Alpine Linux verison. |
master | Last master branch commit. Same features as nightly , but based on an older Appine Linux. |
latest | Latest release per Github tag, not necessarily the most up-to-date Alpine Linux version! |
v1.0.0 | Version snapshot of the past. Used to go back to a previous well-known state. |
$ docker run --name keepass-webdav -p 80:80 -v /path/to/your/keepass/files/:/media/data -d sfuhrm/docker-nginx-webdav
Or use the docker-compose file included in this repository.
No built-in TLS support. Reverse proxy with TLS recommended.
/media/data
- served directory, needs to be accessible to thenginx
user with uid100
and gid101
.
To restrict access to only authorized users (recommended), you can define two environment variables: $USERNAME
and $PASSWORD
$ docker run --name webdav -p 80:80 -v /path/to/your/shared/files/:/media/data -e USERNAME=webdav -e PASSWORD=webdav -d sfuhrm/docker-nginx-webdav
If you want to pass username and password in files like Docker secrets, you can define two environment variables: $USERNAME_FILE
and $PASSWORD_FILE
Or use docker-compose example with secret
version: "3.9" name: webdav secrets: USERNAME_SC: file: <path-to-your-secret>/username.secret.txt PASSWORD_SC: file: <path-to-your-secret>/password.secret.txt services: docker-nginx-webdav: #image: sfuhrm/docker-nginx-webdav build: . container_name: webdav restart: unless-stopped security_opt: - no-new-privileges:true ports: - "80:80" volumes: - "<path-you-want-to-share>:/media/data" secrets: - USERNAME_SC - PASSWORD_SC environment: - USERNAME_FILE=/run/secrets/USERNAME_SC - PASSWORD_FILE=/run/secrets/PASSWORD_SC