WebDAV поддерживается сервером Seafile. Нужно только его настроить. У меня используется nginx, поэтому понадобится настроить ещё и его.
Ссылки
Мануал:
https://manual.seafile.com/extension/webdav.html
Конфигурация WebDAV
Файл конфигурации /conf/seafdav.conf, настроим его:
[WEBDAV]
enabled = true
host = 0.0.0.0
port = 8080
fastcgi = true
share_name = /seafdav
Перезапускаем seafile:
service seafile restart
Конфигурация Nginx
Добавляем в config Nginx новый location:
location /seafdav {
fastcgi_pass 127.0.0.1:8080;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
client_max_body_size 0;
proxy_connect_timeout 36000s;
proxy_read_timeout 36000s;
proxy_send_timeout 36000s;
send_timeout 36000s;
# This option is only available for Nginx >= 1.8.0. See more details below.
proxy_request_buffering off;
access_log /var/log/nginx/seafdav.access.log;
error_log /var/log/nginx/seafdav.error.log;
}
Перезапускаем Nginx:
service nginx restart
Добавляем WebDAV диск в Windows
Нажимаем правой кнопкой на "Мой компьютер", "Подключить сетевой диск".
Открывается мастер подключений.
Указываем букву для диска, URL к папке /seafdav вашего облака. При желании выберите галку для восстановления подключения при входе в систему. Также выберите галку "Использовать другие учётные данные". Готово.
Укажите логин и пароль от seafile. OK.
Ваше домашнее облако подключено как сетевой диск.
Примечание про Fastcgi
Начиная с версии 7.1.x Seafile не поддерживает Fastcgi, только Wsgi. Поэтому конфиги будут такие:
Для Nginx:
location /seafdav {
proxy_pass http://127.0.0.1:8080/seafdav;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Forwarded-Proto $scheme;
client_max_body_size 0;
access_log /var/log/nginx/seafdav.access.log;
error_log /var/log/nginx/seafdav.error.log;
proxy_connect_timeout 36000s;
proxy_read_timeout 36000s;
proxy_send_timeout 36000s;
send_timeout 36000s;
# This option is only available for Nginx >= 1.8.0. See more details below.
proxy_request_buffering off;
}
Для Apache:
<Location /seafdav>
ProxyPass "http://127.0.0.1:8080/seafdav"
</Location>