docker-webdav-nginx
Runs a Nginx WebDav server in Docker
- Source code: GitHub
- Docker container: Docker Hub
- Image base: Debian
- Init system: N/A
- Application: Nginx
- Architecture:
linux/amd64,linux/arm64,linux/arm/v7
Explanation
- Runs a Nginx WebDav server in Docker.
- Exposes two WebDav locations
/public
- No authentication
/restricted
- Authentication if specified (see below)
Requirements
- Requires a WebDav client.
- I've found that not all clients are compatible (e.g., Dolphin doesn't work, but Thunar does).
Docker image information
Docker image tags
latest
: Latest version
X.X.X
: Semantic version (use if you want to stick on a specific version)
Environment variables
Variable |
Required? |
Definition |
Example |
Comments |
WEBDAV_USER |
No |
WebDav username |
user |
user AND pass need to be set for authentication to work |
WEBDAV_PASS |
No |
WebDav password |
password1 |
user AND pass need to be set for authentication to work |
NGINX_CLIENT_MAX_BODY_SIZE |
No (default: 250M) |
Nginx's client_max_body_size |
500M |
Be sure to include the units. Set to 0 to disable. |
Ports
Port on host |
Port in container |
Comments |
Choose at your discretion |
80 |
Nginx |
Volumes
Volume on host |
Volume in container |
Comments |
Choose at your discretion |
/var/www/webdav |
Used to store WebDav files |
Example usage
Below is an example docker-compose.yml file.
version: '3'
services:
webdav:
container_name: docker-webdav-nginx
restart: unless-stopped
environment:
- WEBDAV_USER=user
- WEBDAV_PASS=password1
- NGINX_CLIENT_MAX_BODY_SIZE=500M
networks:
- webdav
ports:
- '8888:80'
volumes:
- 'webdav:/var/www/webdav'
image: loganmarchione/docker-webdav-nginx:latest
networks:
webdav:
volumes:
webdav:
driver: local
Below is an example of running locally (used to edit/test/debug).
# Build the Dockerfile
docker compose -f docker-compose-dev.yml up -d
# View logs
docker compose -f docker-compose-dev.yml logs -f
# Destroy when done
docker compose -f docker-compose-dev.yml down
TODO