49 lines
1.9 KiB
YAML
49 lines
1.9 KiB
YAML
services:
|
|
webdav:
|
|
image: ghcr.io/hacdias/webdav:latest
|
|
container_name: ${SERVICE_NAME}
|
|
restart: unless-stopped
|
|
command: ["-c", "/config.yml"]
|
|
user: "1000:1000"
|
|
read_only: true
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
cap_drop:
|
|
- ALL
|
|
pids_limit: 100
|
|
mem_limit: 512m
|
|
environment:
|
|
WEBDAV_USER: ${WEBDAV_USER}
|
|
WEBDAV_PASSWORD: ${WEBDAV_PASSWORD}
|
|
networks:
|
|
- traefik_network
|
|
volumes:
|
|
- /srv/docker/webdav/config.yml:/config.yml:ro
|
|
- /srv/docker/webdav/data:/data
|
|
labels:
|
|
### Auto create icon on Flame dashboard
|
|
- flame.type=application
|
|
- flame.name=${SERVICE_NAME}
|
|
- flame.url=https://${SERVICE_NAME}.${DOMAIN_NAME}
|
|
- flame.icon=https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/webdav.png
|
|
### Traefik
|
|
- traefik.enable=true
|
|
- traefik.http.routers.${SERVICE_NAME}.entrypoints=websecure
|
|
- traefik.http.routers.${SERVICE_NAME}.rule=Host(`${SERVICE_NAME}.${DOMAIN_NAME}`)
|
|
- traefik.http.routers.${SERVICE_NAME}.tls=true
|
|
- traefik.http.routers.${SERVICE_NAME}.tls.certresolver=cloudflare
|
|
- traefik.http.routers.${SERVICE_NAME}.middlewares=real-ip@file,crowdsec-bouncer@file,rate-limit@file
|
|
- traefik.http.routers.${SERVICE_NAME}.service=${SERVICE_NAME}
|
|
- traefik.http.services.${SERVICE_NAME}.loadbalancer.server.port=6060
|
|
### Monitor with uptime-kuma
|
|
- kuma.monitoring.group.name=Docker Containers
|
|
- kuma.${SERVICE_NAME}.docker.parent_name=monitoring
|
|
- kuma.${SERVICE_NAME}.docker.name=${SERVICE_NAME}
|
|
- kuma.${SERVICE_NAME}.docker.type=docker
|
|
- kuma.${SERVICE_NAME}.docker.docker_container=${SERVICE_NAME}
|
|
- kuma.${SERVICE_NAME}.docker.docker_host=1
|
|
- 'kuma.${SERVICE_NAME}.docker.tag_names=[{"name": "docker_tag"}]'
|
|
|
|
networks:
|
|
traefik_network:
|
|
external: true |